9 #include "../core/CoreTypes.hpp"
10 #include "../core/helicsCLI11.hpp"
11 #include "NetworkBroker.hpp"
18 constexpr
const char* tstr[] = {
"default",
35 constexpr
const char* tcodeStr(
int tcode)
37 return ((tcode >= 0) && (tcode < 15)) ? tstr[tcode] : tstr[15];
40 constexpr
const char* defInterface[] = {
"127.0.0.1",
46 template<
class COMMS, InterfaceTypes baseline,
int tcode>
50 netInfo.server_mode = NetworkBrokerData::ServerModeOptions::SERVER_DEFAULT_ACTIVE;
53 template<
class COMMS, InterfaceTypes baseline,
int tcode>
57 netInfo.server_mode = NetworkBrokerData::ServerModeOptions::SERVER_DEFAULT_ACTIVE;
60 template<
class COMMS, InterfaceTypes baseline,
int tcode>
63 auto app = CoreBroker::generateCLI();
64 CLI::App_p netApp = netInfo.commandLineParser(defInterface[
static_cast<int>(baseline)],
false);
65 app->add_subcommand(netApp);
69 template<
class COMMS, InterfaceTypes baseline,
int tcode>
72 std::lock_guard<std::mutex> lock(dataMutex);
73 if ((netInfo.brokerName.empty()) && (netInfo.brokerAddress.empty())) {
74 CoreBroker::setAsRoot();
76 netInfo.useJsonSerialization = BrokerBase::useJsonSerialization;
77 netInfo.observer = BrokerBase::observer;
84 if (netInfo.portNumber < 0) {
91 template<
class COMMS, InterfaceTypes baseline,
int tcode>
98 std::lock_guard<std::mutex> lock(dataMutex);
100 case InterfaceTypes::TCP:
101 case InterfaceTypes::IP:
102 case InterfaceTypes::UDP:
103 if (!netInfo.localInterface.empty() && (netInfo.localInterface.back() ==
'*')) {
105 netInfo.localInterface.substr(0, netInfo.localInterface.size() - 1),
111 case InterfaceTypes::INPROC:
112 case InterfaceTypes::IPC:
114 if (!netInfo.localInterface.empty()) {
115 add = netInfo.localInterface;
117 add = CoreBroker::getIdentifier();