From 128bfc7792dfc283d7ea278313c603da3cdb004a Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Tue, 22 Sep 2020 12:17:54 -0500 Subject: [PATCH] Move network clients to Resource Manager --- ResourceManager.cpp | 5 +++++ ResourceManager.h | 6 ++++-- cli.cpp | 18 ++++++++---------- main.cpp | 14 ++++++-------- 4 files changed, 23 insertions(+), 20 deletions(-) diff --git a/ResourceManager.cpp b/ResourceManager.cpp index 394b4aaf..751e0ab0 100644 --- a/ResourceManager.cpp +++ b/ResourceManager.cpp @@ -101,6 +101,11 @@ NetworkServer* ResourceManager::GetServer() return(server); } +std::vector ResourceManager::GetClients() +{ + return(clients); +} + unsigned int ResourceManager::GetDetectionPercent() { return (detection_percent.load()); diff --git a/ResourceManager.h b/ResourceManager.h index 5b436051..2d3bc0b8 100644 --- a/ResourceManager.h +++ b/ResourceManager.h @@ -39,7 +39,9 @@ public: unsigned int GetDetectionPercent(); const char* GetDetectionString(); - NetworkServer* GetServer(); + + std::vector GetClients(); + NetworkServer* GetServer(); void DeviceListChanged(); @@ -75,7 +77,7 @@ private: /*-------------------------------------------------------------------------------------*\ | Network Clients | \*-------------------------------------------------------------------------------------*/ - //std::vector clients; + std::vector clients; /*-------------------------------------------------------------------------------------*\ | Detectors | diff --git a/cli.cpp b/cli.cpp index e44bb385..e357517c 100644 --- a/cli.cpp +++ b/cli.cpp @@ -22,7 +22,6 @@ using namespace std::chrono_literals; static ProfileManager* profile_manager; -static NetworkServer* network_server; static std::string profile_save_filename = ""; enum @@ -667,7 +666,7 @@ bool OptionSaveProfile(std::string argument) return(true); } -int ProcessOptions(int argc, char *argv[], Options *options, std::vector &clients, std::vector &rgb_controllers) +int ProcessOptions(int argc, char *argv[], Options *options, std::vector &rgb_controllers) { unsigned int ret_flags = 0; int arg_index = 1; @@ -728,7 +727,7 @@ int ProcessOptions(int argc, char *argv[], Options *options, std::vectorGetClients().push_back(client); arg_index++; } @@ -1030,26 +1029,25 @@ void WaitWhileServerOnline(NetworkServer* srv) }; } -unsigned int cli_main(int argc, char *argv[], std::vector &rgb_controllers, ProfileManager* profile_manager_in, NetworkServer* network_server_in, std::vector &clients) +unsigned int cli_main(int argc, char *argv[], std::vector &rgb_controllers, ProfileManager* profile_manager_in) { profile_manager = profile_manager_in; - network_server = network_server_in; /*---------------------------------------------------------*\ | Process the argument options | \*---------------------------------------------------------*/ Options options; - unsigned int ret_flags = ProcessOptions(argc, argv, &options, clients, rgb_controllers); + unsigned int ret_flags = ProcessOptions(argc, argv, &options, rgb_controllers); /*---------------------------------------------------------*\ | If the server was told to start, start it before returning| \*---------------------------------------------------------*/ if(options.servOpts.start) { - network_server->SetPort(options.servOpts.port); - network_server->StartServer(); + ResourceManager::get()->GetServer()->SetPort(options.servOpts.port); + ResourceManager::get()->GetServer()->StartServer(); - if(network_server->GetOnline()) + if(ResourceManager::get()->GetServer()->GetOnline()) { /*---------------------------------------------------------*\ | If the GUI has been started, return from cli_main. | @@ -1058,7 +1056,7 @@ unsigned int cli_main(int argc, char *argv[], std::vector &rgb_ \*---------------------------------------------------------*/ if((ret_flags & RET_FLAG_START_GUI) == 0) { - WaitWhileServerOnline(network_server); + WaitWhileServerOnline(ResourceManager::get()->GetServer()); } } else diff --git a/main.cpp b/main.cpp index 5f9f6f8e..9666c889 100644 --- a/main.cpp +++ b/main.cpp @@ -22,12 +22,10 @@ using namespace std::chrono_literals; -std::vector clients; - /*-------------------------------------------------------------*\ | Command line functionality and return flags | \*-------------------------------------------------------------*/ -extern unsigned int cli_main(int argc, char *argv[], std::vector &rgb_controllers, ProfileManager* profile_manager_in, NetworkServer* network_server_in, std::vector &clients); +extern unsigned int cli_main(int argc, char *argv[], std::vector &rgb_controllers, ProfileManager* profile_manager_in); enum { @@ -108,7 +106,7 @@ bool AttemptLocalConnection(std::vector &rgb_controllers) } else { - clients.push_back(client); + ResourceManager::get()->GetClients().push_back(client); success = true; } @@ -162,7 +160,7 @@ int main(int argc, char* argv[]) unsigned int ret_flags = RET_FLAG_START_GUI; if(argc > 1) { - ret_flags = cli_main(argc, argv, rgb_controllers, &profile_manager, ResourceManager::get()->GetServer(), clients); + ret_flags = cli_main(argc, argv, rgb_controllers, &profile_manager); } /*---------------------------------------------------------*\ @@ -182,16 +180,16 @@ int main(int argc, char* argv[]) dlg.AddI2CToolsPage(); } - if(clients.size() == 0) + if(ResourceManager::get()->GetClients().size() == 0) { dlg.AddServerTab(ResourceManager::get()->GetServer()); } dlg.AddClientTab(); - for(std::size_t client_idx = 0; client_idx < clients.size(); client_idx++) + for(std::size_t client_idx = 0; client_idx < ResourceManager::get()->GetClients().size(); client_idx++) { - dlg.AddClient(clients[client_idx]); + dlg.AddClient(ResourceManager::get()->GetClients()[client_idx]); } if(ret_flags & RET_FLAG_START_MINIMIZED)