Masterctrl/Sources/EthernetNetworkServer.h
J-F Martel f4fc549a8a Dev.
2016-01-15 14:43:58 -05:00

63 lines
1.4 KiB
C++

#ifndef CETHERNETNETWORKSERVER_H
#define CETHERNETNETWORKSERVER_H
#include <QObject>
#include "NetworkProtocol.h"
#include <QTcpServer>
#include <QTcpSocket>
#include <QList>
#include <NetworkDevice.h>
class CMasterCtrl;
class CNetworkDevicesMgr;
class CEthernetDeviceConnection
{
public:
QTcpSocket *mConnectionSocket;
CNetworkDevice *mConnectedDevice;
};
class CEthernetNetworkServer : public QObject, CNetworkProtocol
{
Q_OBJECT
public:
CEthernetNetworkServer();
~CEthernetNetworkServer();
QTcpServer *mEthernetNetworkServer;
CMasterCtrl *mProgramHandle;
CNetworkDevicesMgr *mDevicesMgrHandle;
//NetworkProtocol implementation
virtual int NewFrameReceived(int DeviceID, int DeviceAddress, int MessageID, int DataSize, QByteArray Data);
// QList<CNetworkDevice*> mNetworkDevices;
// QList<CEthernetDeviceConnection*> 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