UniSet @VERSION@
OmniNamesManager.h
1/*
2 * Copyright (c) 2026 Pavel Vainerman.
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License as
6 * published by the Free Software Foundation, version 2.1.
7 */
8// -------------------------------------------------------------------------
9#ifndef OmniNamesManager_H_
10#define OmniNamesManager_H_
11// -------------------------------------------------------------------------
12#include <memory>
13#include <string>
14#include <Poco/Process.h>
15#include "Debug.h"
16// -------------------------------------------------------------------------
17namespace uniset
18{
30 {
31 public:
34
35 // Configuration
36 void setPort(int port);
37 int getPort() const;
38
39 void setLogDir(const std::string& dir);
40 std::string getLogDir() const;
41
42 void setConfFile(const std::string& confFile);
43
49 bool start(bool runAdminCreate = true);
50
55 void stop(size_t timeout_msec = 5000);
56
58 bool isRunning() const;
59
61 bool wasStartedByUs() const;
62
64 bool waitReady(size_t timeout_msec = 5000);
65
67 bool runAdminCreate();
68
70 static int calcPortFromUID(int defaultPort = 2809);
71
73 static std::string getDefaultLogDir();
74
75 // Logging
76 std::shared_ptr<DebugStream> log();
77
78 private:
79 bool checkTcpPort(const std::string& host, int port, size_t timeout_msec = 1000) const;
80 bool isFirstRun() const;
81
82 int port_ = 0;
83 std::string logDir_;
84 std::string confFile_;
85 Poco::Process::PID pid_ = 0;
86 bool startedByUs_ = false;
87
88 std::shared_ptr<DebugStream> mylog;
89 };
90
91} // end of namespace uniset
92// -------------------------------------------------------------------------
93#endif // OmniNamesManager_H_
94// -------------------------------------------------------------------------
Definition OmniNamesManager.h:30
void stop(size_t timeout_msec=5000)
Definition OmniNamesManager.cc:313
bool start(bool runAdminCreate=true)
Definition OmniNamesManager.cc:161
bool wasStartedByUs() const
Check if we started omniNames (vs it was already running)
Definition OmniNamesManager.cc:139
bool waitReady(size_t timeout_msec=5000)
Wait for omniNames to be ready (TCP port listening)
Definition OmniNamesManager.cc:144
bool isRunning() const
Check if omniNames is running on configured port.
Definition OmniNamesManager.cc:131
static std::string getDefaultLogDir()
Get default log directory.
Definition OmniNamesManager.cc:68
static int calcPortFromUID(int defaultPort=2809)
Calculate port from UID (defaultPort + 50000 + UID)
Definition OmniNamesManager.cc:63
bool runAdminCreate()
Run uniset2-admin –create to initialize repository.
Definition OmniNamesManager.cc:257
Definition AccessConfig.h:30