#ifndef _GWSOCKETSERVER_H #define _GWSOCKETSERVER_H #include "GWConfig.h" #include "GwLog.h" #include "GwBuffer.h" #include "GwChannelInterface.h" #include class GwSocketConnection; class GwSocketServer: public GwChannelInterface{ private: const GwConfigHandler *config; GwLog *logger; GwSocketConnection **clients=NULL; int listener=-1; int listenerPort=-1; bool allowReceive; int maxClients; int minId; bool createListener(); int available(); public: GwSocketServer(const GwConfigHandler *config,GwLog *logger,int minId); ~GwSocketServer(); void begin(); virtual void loop(bool handleRead=true,bool handleWrite=true); virtual size_t sendToClients(const char *buf,int sourceId, bool partialWrite=false); int numClients(); virtual void readMessages(GwMessageFetcher *writer); }; #endif