diff --git a/receiver/src/main.cpp b/receiver/src/main.cpp index e09fefd4d19eb96abd4af1b1b0f39b1e63266974..01e44e8c40ef17941a6b59226245c5dcb62e88c6 100644 --- a/receiver/src/main.cpp +++ b/receiver/src/main.cpp @@ -10,6 +10,7 @@ #include "receiver_data_server/receiver_data_server.h" #include "receiver_data_server/net_server/rds_tcp_server.h" +#include "receiver_data_server/net_server/rds_fabric_server.h" asapo::Error ReadConfigFile(int argc, char* argv[]) { if (argc != 2) { @@ -22,8 +23,17 @@ asapo::Error ReadConfigFile(int argc, char* argv[]) { void AddDataServers(const asapo::ReceiverConfig* config, asapo::SharedCache cache, std::vector<asapo::RdsNetServerPtr>& netServers) { - // Add TCP - netServers.emplace_back(new asapo::RdsTcpServer("0.0.0.0:" + std::to_string(config->dataserver.listen_port))); + auto ds_config = config->dataserver; + auto networkingMode = ds_config.network_mode; + if (std::find(networkingMode.begin(), networkingMode.end(), "tcp") != networkingMode.end()) { + // Add TCP + netServers.emplace_back(new asapo::RdsTcpServer("0.0.0.0:" + std::to_string(ds_config.listen_port))); + } + + if (std::find(networkingMode.begin(), networkingMode.end(), "fabric") != networkingMode.end()) { + // Add Fabric + netServers.emplace_back(new asapo::RdsFabricServer(ds_config.advertise_uri)); + } } std::vector<std::thread> StartDataServers(const asapo::ReceiverConfig* config, asapo::SharedCache cache, diff --git a/receiver/src/receiver_config.cpp b/receiver/src/receiver_config.cpp index f0dffeef0455e5de6c090d99b193ca14747672f8..a3334cbe2f0ef282aace6d2621894e61342863b0 100644 --- a/receiver/src/receiver_config.cpp +++ b/receiver/src/receiver_config.cpp @@ -35,6 +35,7 @@ Error ReceiverConfigFactory::SetConfig(std::string file_name) { (err = parser.GetUInt64("AuthorizationInterval", &config.authorization_interval_ms)) || (err = parser.GetString("PerformanceDbName", &config.performance_db_name)) || (err = parser.Embedded("DataServer").GetString("AdvertiseURI", &config.dataserver.advertise_uri)) || + (err = parser.Embedded("DataServer").GetArrayString("NetworkMode", &config.dataserver.network_mode)) || (err = parser.GetString("LogLevel", &log_level)); if (err) { diff --git a/receiver/src/receiver_data_server/net_server/rds_fabric_server.cpp b/receiver/src/receiver_data_server/net_server/rds_fabric_server.cpp index 43fa3b758de86ca129b2baa3bf408f86622a9075..a559456e5eacdaaded33a5c629f661939eeda05b 100644 --- a/receiver/src/receiver_data_server/net_server/rds_fabric_server.cpp +++ b/receiver/src/receiver_data_server/net_server/rds_fabric_server.cpp @@ -29,6 +29,8 @@ Error RdsFabricServer::Initialize() { return err; } + log__->Info("Started Fabric ReceiverDataServer at '" + server__->GetAddress() + "'"); + return err; } diff --git a/receiver/src/receiver_data_server/net_server/rds_tcp_server.cpp b/receiver/src/receiver_data_server/net_server/rds_tcp_server.cpp index 8d681e9f400213dd9cdd7e354b2c393a7c861717..14c6cc84c69a1e7ab5592b59f41da20daa0528de 100644 --- a/receiver/src/receiver_data_server/net_server/rds_tcp_server.cpp +++ b/receiver/src/receiver_data_server/net_server/rds_tcp_server.cpp @@ -14,9 +14,9 @@ Error RdsTcpServer::Initialize() { if (master_socket_ == kDisconnectedSocketDescriptor) { master_socket_ = io__->CreateAndBindIPTCPSocketListener(address_, kMaxPendingConnections, &err); if (!err) { - log__->Info("data server listening on " + address_); + log__->Info("Started TCP ReceiverDataServer at '" + address_ + "'"); } else { - log__->Error("dataserver cannot listen on " + address_ + ": " + err->Explain()); + log__->Error("TCP ReceiverDataServer cannot listen on " + address_ + ": " + err->Explain()); } } else { err = TextError("Server was already initialized"); diff --git a/receiver/src/receiver_data_server/receiver_data_server_config.h b/receiver/src/receiver_data_server/receiver_data_server_config.h index 46a3594dd645bbe61a4e59753974aeeceb7bdba5..208c87d96eeeb61e2cebaf6ecbb170ac42b518d4 100644 --- a/receiver/src/receiver_data_server/receiver_data_server_config.h +++ b/receiver/src/receiver_data_server/receiver_data_server_config.h @@ -10,6 +10,7 @@ struct ReceiverDataServerConfig { uint64_t nthreads = 0; std::string tag; std::string advertise_uri; + std::vector<std::string> network_mode; }; }