FLImaging 7.8.25.3
DeviceSocketClient.h
1#pragma once
5
6#include "DeviceSocketBase.h"
7
9namespace FLImaging
10{
12 namespace Devices
13 {
15 class CDeviceSocketClientSyncObject;
16 class CInternalSocketClient;
17
24 class FL_EXPORT CDeviceSocketClient : public CDeviceSocketBase
25 {
26 public:
35
45 CDeviceSocketClient(int64_t i64Socket);
46
54
55
56 virtual const CResult Initialize() override;
57 virtual const CResult Terminate() override;
58
74 virtual const CResult Send(const CDeviceSocketPacket& packet);
75
91 virtual const CResult Send(const CDeviceSocketPacket* pSocketPacket);
92
108 virtual const CResult Recv(CDeviceSocketPacket& packet);
109
125 virtual const CResult Recv(CDeviceSocketPacket* pSocketPacket);
126
136 virtual bool IsThereRecvData() const;
137
149 virtual const Base::CFLString<wchar_t>& GetUserID() const;
150
162 virtual void SetUserID(const Base::CFLString<wchar_t>& strUserID);
163
173 virtual int32_t GetPermission() const;
174
184 virtual void SetPermission(int32_t i32Permission);
185
186
196 virtual int32_t GetConnectionTimeoutSec() const;
197
209 virtual const CResult SetConnectionTimeoutSec(uint32_t u32ConnectionTimeoutSec = 2);
210
211 virtual int64_t GetClassType() const override;
212
213 protected:
214
215 virtual const CResult InternalRecvProxy(CDeviceSocketPacket* pSocketPacket);
216 const CResult InternalRecv(char* pBuffer, int iToRecvByte);
217 const CResult InternalRecvPacketData(CDeviceSocketPacket* pSocketPacket);
218 const CResult InternalSendPacketData(CDeviceSocketPacket* pSocketPacket);
219
220 HANDLE m_hReceivingThreadHandle;
221
222 CDeviceSocketClientSyncObject* m_pSendingSyncObject;
223 CDeviceSocketClientSyncObject* m_pReceivingSyncObject;
224
225 CInternalSocketClient* m_pInternal;
226
227 uint32_t m_u32ConnectionTimeoutSec;
228
229 friend class CDeviceSocketServer;
230 friend class CInternalSocketClient;
231 };
232 }
233}
234
Template type string class.
Definition FLString.h:34
FLImaging module execution result object.
Definition ResultsDef.h:1704
CDeviceSocketBase()
Default constructor.
virtual bool IsThereRecvData() const
Checks the existence of receive data.
virtual const CResult Recv(CDeviceSocketPacket *pSocketPacket)
Packets are received. If a receiving callback function is set, the Recv function cannot be used.
virtual const CResult SetConnectionTimeoutSec(uint32_t u32ConnectionTimeoutSec=2)
Sets the connection timeout value for client connections.
virtual int32_t GetPermission() const
Get permission level.
virtual void SetUserID(const Base::CFLString< wchar_t > &strUserID)
Set User ID.
virtual const Base::CFLString< wchar_t > & GetUserID() const
Get User ID.
virtual int32_t GetConnectionTimeoutSec() const
Retrieves the connection timeout value for client connections.
virtual const CResult Send(const CDeviceSocketPacket &packet)
Send packets.
virtual const CResult Terminate() override
Perform socket shutdown.
virtual const CResult Initialize() override
Perform socket initialization. Socket mode settings and connection information settings must be done ...
virtual const CResult Recv(CDeviceSocketPacket &packet)
Packets are received. If a receiving callback function is set, the Recv function cannot be used.
virtual void SetPermission(int32_t i32Permission)
Set permission level.
virtual int64_t GetClassType() const override
Returns the Type value of Class. The returned value itself has no meaning, but if it is the same type...
virtual ~CDeviceSocketClient()
Default destructor.
virtual const CResult Send(const CDeviceSocketPacket *pSocketPacket)
Send packets.
CDeviceSocketClient()
Default constructor.
CDeviceSocketClient(int64_t i64Socket)
Default constructor.
Socket packet class.
Definition DeviceSocketPacket.h:22
Socket Server Class.
Definition DeviceSocketServer.h:29
Definition AutoFileCleaner.h:19