#pragma once #include "IServo.h" #include #include "SocketServer.h" #include namespace BEQ { class CServo : public IServo { public: CServo(); CServo(const char* pszName); ~CServo(); public: virtual void setListener(BEQ::ServoListener listener); virtual int getName(char* pszBuffer, int nMaxCount); virtual int createRemoteEquipment(IRemoteEquipment*& pRemoteEquipment, const char* pszAddr, int port); virtual int connectRemoteEquipment(IRemoteEquipment* pRemoteEquipment); virtual int runOnServerMode(int port); public: int close(); private: bool findRemoteEquipment(IRemoteEquipment* pRemoteEquipment); void addClient(CAcceptClient* pClient); void removeClient(CAcceptClient* pClient); private: std::string m_strName; CSocketServer* m_pServer; ServoListener m_servoListener; AcceptClientListener* m_pClientListener; std::list m_clients; std::list m_remoteEquipments; }; }