LAPTOP-SNT8I5JK\Boounion
2024-12-13 b67e16869a5bfbbde3896a4e5a13f1301f1b978d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#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;
    };
}