You.i Engine
YiSocket.h
Go to the documentation of this file.
1 #ifndef _YI_SOCKET_H_
2 #define _YI_SOCKET_H_
3 
4 #include <framework/YiPredef.h>
5 
11 static const uint32_t s_uDefaultSocketConnectTimeoutMs = 10000;
12 
19 class IYISocket
20 {
21 public:
26  {
32  };
33 
34 public:
35  virtual ~IYISocket() {};
36 
40  virtual bool Connect() = 0;
41 
45  virtual bool Disconnect() = 0;
46 
50  virtual bool IsConnected() const = 0;
51 
55  virtual SOCKET_RESULT Send(const char *pBuffer, size_t uLength) = 0;
56 
61  virtual SOCKET_RESULT Send(const char *pBuffer, size_t uLength, size_t &uSent) = 0;
62 
67  virtual SOCKET_RESULT Receive(char *pBuffer, size_t uLength, size_t &uReceived) = 0;
68 
72  virtual uint64_t GetTotalBytesSent() const = 0;
73 
77  virtual uint64_t GetTotalBytesReceived() const = 0;
78 
85  virtual void SetConnectionTimeoutMs(uint32_t uTimeoutMs) = 0;
86 
90  virtual uint32_t GetConnectionTimeoutMs() const = 0;
91 
98  virtual bool SetSocketBlockingEnabled(bool bBlocking) = 0;
99 
103  static inline bool SOCKET_OPERATION_SUCCEEDED(SOCKET_RESULT eResult)
104  {
105  return ((eResult == IYISocket::YI_SOCKET_SUCCESS) || (eResult == IYISocket::YI_SOCKET_WOULD_BLOCK));
106  }
107 };
108 
113 #endif /* _YI_SOCKET_H_ */
SOCKET_RESULT
Possible return values from socket operations.
Definition: YiSocket.h:25
virtual ~IYISocket()
Definition: YiSocket.h:35
Definition: YiSocket.h:29
virtual uint64_t GetTotalBytesSent() const =0
virtual SOCKET_RESULT Send(const char *pBuffer, size_t uLength)=0
Definition: YiSocket.h:27
virtual bool Connect()=0
Definition: YiSocket.h:30
virtual void SetConnectionTimeoutMs(uint32_t uTimeoutMs)=0
virtual bool Disconnect()=0
Definition: YiSocket.h:31
virtual bool IsConnected() const =0
virtual SOCKET_RESULT Receive(char *pBuffer, size_t uLength, size_t &uReceived)=0
Definition: YiSocket.h:28
virtual uint64_t GetTotalBytesReceived() const =0
The IYISocket defines the interface to be implemented by any class fulfilling sockets services...
Definition: YiSocket.h:19
virtual bool SetSocketBlockingEnabled(bool bBlocking)=0
virtual uint32_t GetConnectionTimeoutMs() const =0
static bool SOCKET_OPERATION_SUCCEEDED(SOCKET_RESULT eResult)
Definition: YiSocket.h:103