#ifndef CETHERNETNETWORKSERVER_H #define CETHERNETNETWORKSERVER_H #include #include "NetworkProtocol.h" #include #include #include #include class CMasterCtrl; class CNetworkDevicesMgr; class CEthernetDeviceConnection { public: QTcpSocket *mConnectionSocket; CNetworkDevice *mConnectedDevice; }; class CEthernetNetworkServer : public QObject, CNetworkProtocol { Q_OBJECT public: enum eDeviceCreationResult { RES_CREATION_FAILED, RES_CREATION_SUCCESS, RES_CREATION_UNKNOWN_DEVICE }; CEthernetNetworkServer(); ~CEthernetNetworkServer(); QTcpServer *mEthernetNetworkServer; CMasterCtrl *mProgramHandle; CNetworkDevicesMgr *mDevicesMgrHandle; //NetworkProtocol implementation virtual int NewFrameReceived(int DeviceID, int DeviceAddress, int MessageID, int DataSize, QByteArray Data); // QList mNetworkDevices; // QList mEthernetDeviceConnections; // bool IsDeviceRegistered(int DeviceID); // int RegisterNewDevice(CNetworkDevice* Device); int StartServer(int port); int CloseServer(); private: // int FindConnection(CEthernetDeviceConnection* Connection); // CEthernetDeviceConnection *FindConnection(QTcpSocket* socket); int CloseConnection(CEthernetDeviceConnection *Connection); public slots: void EthernetNetworkServerConnected(); void DeviceSocketDataAvail(); void DeviceSocketDisconnected(); }; #endif // CETHERNETNETWORKSERVER_H