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, gmlc::networking::InterfaceTypes baseline,
int tcode>
50 netInfo.server_mode = NetworkBrokerData::ServerModeOptions::SERVER_DEFAULT_ACTIVE;
53 template<
class COMMS, gmlc::networking::InterfaceTypes baseline,
int tcode>
57 netInfo.server_mode = NetworkBrokerData::ServerModeOptions::SERVER_DEFAULT_ACTIVE;
60 template<
class COMMS, gmlc::networking::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, gmlc::networking::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, gmlc::networking::InterfaceTypes baseline,
int tcode>
94 using InterfaceTypes = gmlc::networking::InterfaceTypes;
99 std::lock_guard<std::mutex> lock(dataMutex);
101 case InterfaceTypes::TCP:
102 case InterfaceTypes::IP:
103 case InterfaceTypes::UDP:
104 if (!netInfo.localInterface.empty() && (netInfo.localInterface.back() ==
'*')) {
105 add = gmlc::networking::makePortAddress(
106 netInfo.localInterface.substr(0, netInfo.localInterface.size() - 1),
109 add = gmlc::networking::makePortAddress(netInfo.localInterface,
113 case InterfaceTypes::INPROC:
114 case InterfaceTypes::IPC:
116 if (!netInfo.localInterface.empty()) {
117 add = netInfo.localInterface;
119 add = CoreBroker::getIdentifier();