15#include <unordered_map>
16#include "UniSetTypes.h"
17#include "UniSetObject.h"
18#include "SharedMemory.h"
67 bool init(
int argc,
const char*
const* argv,
const std::string& appName =
"");
88 std::shared_ptr<UniSetObject>
getExtension(
const std::string& name)
const;
103 std::shared_ptr<DebugStream>
log();
111 static void help_print(
int argc,
const char*
const* argv,
const std::string& extName =
"");
117 static bool help_extension(
int argc,
const char*
const* argv,
const std::string& extType);
125 static std::vector<std::string>
parseArgsString(
const std::string& argsStr);
135 const std::shared_ptr<UniXML>& xml,
136 const std::string& appName);
139 static constexpr const char* EXT_SHARED_MEMORY =
"SharedMemory";
140 static constexpr const char* EXT_UNET_EXCHANGE =
"UNetExchange";
141 static constexpr const char* EXT_MBTCP_MASTER =
"MBTCPMaster";
142 static constexpr const char* EXT_MBTCP_MULTIMASTER =
"MBTCPMultiMaster";
143 static constexpr const char* EXT_MB_SLAVE =
"MBSlave";
144 static constexpr const char* EXT_RTU_EXCHANGE =
"RTUExchange";
145 static constexpr const char* EXT_OPCUA_SERVER =
"OPCUAServer";
146 static constexpr const char* EXT_OPCUA_EXCHANGE =
"OPCUAExchange";
147 static constexpr const char* EXT_IO_CONTROL =
"IOControl";
148 static constexpr const char* EXT_LOGIC_PROCESSOR =
"LogicProcessor";
149 static constexpr const char* EXT_MQTT_PUBLISHER =
"MQTTPublisher";
150 static constexpr const char* EXT_WEBSOCKET_GATE =
"UWebSocketGate";
151 static constexpr const char* EXT_BACKEND_CLICKHOUSE =
"BackendClickHouse";
152 static constexpr const char* EXT_DBSERVER_POSTGRESQL =
"DBServerPostgreSQL";
161 std::shared_ptr<UniSetObject> object;
164 bool loadConfig(
const std::string& appName);
165 bool validateExtensions();
166 static std::string getDefaultPrefix(
const std::string& type);
167 bool createExtensions(
int argc,
const char*
const* argv);
169 std::shared_ptr<UniSetObject> createExtension(
170 int argc,
const char*
const* argv,
171 const ExtensionInfo& info);
173 std::shared_ptr<DebugStream> applog;
174 std::shared_ptr<SharedMemory> shm_;
175 std::vector<ExtensionInfo> extensions_;
176 std::unordered_map<std::string, std::shared_ptr<UniSetObject>> extByName_;
178 bool running_ =
false;
179 std::string logfile_;
UniSetUno - Combined application running multiple extensions in single process.
Definition UniSetUno.h:55
void run()
Definition UniSetUno.cc:629
std::shared_ptr< DebugStream > log()
Definition UniSetUno.cc:707
bool isRunning() const
Definition UniSetUno.cc:702
static std::vector< std::string > parseArgsString(const std::string &argsStr)
Definition UniSetUno.cc:913
static bool help_extension(int argc, const char *const *argv, const std::string &extType)
Definition UniSetUno.cc:712
static void help_print(int argc, const char *const *argv, const std::string &extName="")
Definition UniSetUno.cc:829
std::vector< std::string > getExtensionNames() const
Definition UniSetUno.cc:691
std::shared_ptr< SharedMemory > getSharedMemory() const
Definition UniSetUno.cc:676
void stop()
Definition UniSetUno.cc:662
std::shared_ptr< UniSetObject > getExtension(const std::string &name) const
Definition UniSetUno.cc:681
static std::vector< std::string > collectExtensionArgs(const std::shared_ptr< UniXML > &xml, const std::string &appName)
Definition UniSetUno.cc:954
bool init(int argc, const char *const *argv, const std::string &appName="")
Definition UniSetUno.cc:126
Definition AccessConfig.h:30