Add client status update callback to NetworkClient

This commit is contained in:
Adam Honse 2020-05-10 13:41:01 -05:00
parent e2c2b8c1df
commit 15d23d3009
2 changed files with 51 additions and 5 deletions

View file

@ -10,19 +10,26 @@
#include "NetworkProtocol.h"
#include "net_port.h"
#include <mutex>
#include <thread>
#pragma once
typedef void (*NetClientCallback)(void *);
class NetworkClient
{
public:
NetworkClient(std::vector<RGBController *>& control);
void ClientInfoChanged();
const char * GetIP();
unsigned short GetPort();
bool GetOnline();
void RegisterClientInfoChangeCallback(NetClientCallback new_callback, void * new_callback_arg);
void SetIP(const char *new_ip);
void SetName(const char *new_name);
void SetPort(unsigned short new_port);
@ -70,5 +77,9 @@ private:
std::thread * ConnectionThread;
std::thread * ListenThread;
std::mutex ClientInfoChangeMutex;
std::vector<NetClientCallback> ClientInfoChangeCallbacks;
std::vector<void *> ClientInfoChangeCallbackArgs;
int recv_select(SOCKET s, char *buf, int len, int flags);
};