Move network clients to Resource Manager

This commit is contained in:
Adam Honse 2020-09-22 12:17:54 -05:00
parent c1ac870035
commit 128bfc7792
4 changed files with 23 additions and 20 deletions

View file

@ -101,6 +101,11 @@ NetworkServer* ResourceManager::GetServer()
return(server); return(server);
} }
std::vector<NetworkClient*> ResourceManager::GetClients()
{
return(clients);
}
unsigned int ResourceManager::GetDetectionPercent() unsigned int ResourceManager::GetDetectionPercent()
{ {
return (detection_percent.load()); return (detection_percent.load());

View file

@ -39,7 +39,9 @@ public:
unsigned int GetDetectionPercent(); unsigned int GetDetectionPercent();
const char* GetDetectionString(); const char* GetDetectionString();
NetworkServer* GetServer();
std::vector<NetworkClient*> GetClients();
NetworkServer* GetServer();
void DeviceListChanged(); void DeviceListChanged();
@ -75,7 +77,7 @@ private:
/*-------------------------------------------------------------------------------------*\ /*-------------------------------------------------------------------------------------*\
| Network Clients | | Network Clients |
\*-------------------------------------------------------------------------------------*/ \*-------------------------------------------------------------------------------------*/
//std::vector<NetworkClient*> clients; std::vector<NetworkClient*> clients;
/*-------------------------------------------------------------------------------------*\ /*-------------------------------------------------------------------------------------*\
| Detectors | | Detectors |

18
cli.cpp
View file

@ -22,7 +22,6 @@
using namespace std::chrono_literals; using namespace std::chrono_literals;
static ProfileManager* profile_manager; static ProfileManager* profile_manager;
static NetworkServer* network_server;
static std::string profile_save_filename = ""; static std::string profile_save_filename = "";
enum enum
@ -667,7 +666,7 @@ bool OptionSaveProfile(std::string argument)
return(true); return(true);
} }
int ProcessOptions(int argc, char *argv[], Options *options, std::vector<NetworkClient*> &clients, std::vector<RGBController *> &rgb_controllers) int ProcessOptions(int argc, char *argv[], Options *options, std::vector<RGBController *> &rgb_controllers)
{ {
unsigned int ret_flags = 0; unsigned int ret_flags = 0;
int arg_index = 1; int arg_index = 1;
@ -728,7 +727,7 @@ int ProcessOptions(int argc, char *argv[], Options *options, std::vector<Network
std::this_thread::sleep_for(10ms); std::this_thread::sleep_for(10ms);
} }
clients.push_back(client); ResourceManager::get()->GetClients().push_back(client);
arg_index++; arg_index++;
} }
@ -1030,26 +1029,25 @@ void WaitWhileServerOnline(NetworkServer* srv)
}; };
} }
unsigned int cli_main(int argc, char *argv[], std::vector<RGBController *> &rgb_controllers, ProfileManager* profile_manager_in, NetworkServer* network_server_in, std::vector<NetworkClient*> &clients) unsigned int cli_main(int argc, char *argv[], std::vector<RGBController *> &rgb_controllers, ProfileManager* profile_manager_in)
{ {
profile_manager = profile_manager_in; profile_manager = profile_manager_in;
network_server = network_server_in;
/*---------------------------------------------------------*\ /*---------------------------------------------------------*\
| Process the argument options | | Process the argument options |
\*---------------------------------------------------------*/ \*---------------------------------------------------------*/
Options 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 the server was told to start, start it before returning|
\*---------------------------------------------------------*/ \*---------------------------------------------------------*/
if(options.servOpts.start) if(options.servOpts.start)
{ {
network_server->SetPort(options.servOpts.port); ResourceManager::get()->GetServer()->SetPort(options.servOpts.port);
network_server->StartServer(); ResourceManager::get()->GetServer()->StartServer();
if(network_server->GetOnline()) if(ResourceManager::get()->GetServer()->GetOnline())
{ {
/*---------------------------------------------------------*\ /*---------------------------------------------------------*\
| If the GUI has been started, return from cli_main. | | If the GUI has been started, return from cli_main. |
@ -1058,7 +1056,7 @@ unsigned int cli_main(int argc, char *argv[], std::vector<RGBController *> &rgb_
\*---------------------------------------------------------*/ \*---------------------------------------------------------*/
if((ret_flags & RET_FLAG_START_GUI) == 0) if((ret_flags & RET_FLAG_START_GUI) == 0)
{ {
WaitWhileServerOnline(network_server); WaitWhileServerOnline(ResourceManager::get()->GetServer());
} }
} }
else else

View file

@ -22,12 +22,10 @@
using namespace std::chrono_literals; using namespace std::chrono_literals;
std::vector<NetworkClient*> clients;
/*-------------------------------------------------------------*\ /*-------------------------------------------------------------*\
| Command line functionality and return flags | | Command line functionality and return flags |
\*-------------------------------------------------------------*/ \*-------------------------------------------------------------*/
extern unsigned int cli_main(int argc, char *argv[], std::vector<RGBController *> &rgb_controllers, ProfileManager* profile_manager_in, NetworkServer* network_server_in, std::vector<NetworkClient*> &clients); extern unsigned int cli_main(int argc, char *argv[], std::vector<RGBController *> &rgb_controllers, ProfileManager* profile_manager_in);
enum enum
{ {
@ -108,7 +106,7 @@ bool AttemptLocalConnection(std::vector<RGBController*> &rgb_controllers)
} }
else else
{ {
clients.push_back(client); ResourceManager::get()->GetClients().push_back(client);
success = true; success = true;
} }
@ -162,7 +160,7 @@ int main(int argc, char* argv[])
unsigned int ret_flags = RET_FLAG_START_GUI; unsigned int ret_flags = RET_FLAG_START_GUI;
if(argc > 1) 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(); dlg.AddI2CToolsPage();
} }
if(clients.size() == 0) if(ResourceManager::get()->GetClients().size() == 0)
{ {
dlg.AddServerTab(ResourceManager::get()->GetServer()); dlg.AddServerTab(ResourceManager::get()->GetServer());
} }
dlg.AddClientTab(); 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) if(ret_flags & RET_FLAG_START_MINIMIZED)