#pragma once
|
#include "IServo.h"
|
#include <string>
|
#include "SocketServer.h"
|
#include <list>
|
|
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<CAcceptClient*> m_clients;
|
std::list<IRemoteEquipment*> m_remoteEquipments;
|
};
|
}
|