X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2Fplatform%2Fsockets%2Ftcp.h;h=1693354ea329c42573633419903f6bccb9874e3f;hb=f7115044597c427b5bfb86fe0dec6436ed2752ac;hp=ffc372ccacfcad10e7cb90a7d4c7aff94bfc5849;hpb=071f7a5ccb87f165fa8cf9865ea2e8d9f1b920b6;p=deb_libcec.git diff --git a/src/lib/platform/sockets/tcp.h b/src/lib/platform/sockets/tcp.h index ffc372c..1693354 100644 --- a/src/lib/platform/sockets/tcp.h +++ b/src/lib/platform/sockets/tcp.h @@ -120,6 +120,48 @@ namespace PLATFORM uint16_t m_iPort; }; + class CTcpClientSocket : public CCommonSocket + { + public: + CTcpClientSocket(tcp_socket_t socket) : + CCommonSocket(socket, "tcpclient") {} + + virtual ~CTcpClientSocket(void) {} + + virtual bool Open(uint64_t iTimeoutMs = 0) + { + (void) iTimeoutMs; + return true; + } + + virtual void Close(void) + { + TcpSocketClose(m_socket); + m_socket = INVALID_SOCKET_VALUE; + } + + virtual void Shutdown(void) + { + TcpSocketShutdown(m_socket); + m_socket = INVALID_SOCKET_VALUE; + } + + virtual ssize_t Write(void* data, size_t len) + { + return TcpSocketWrite(m_socket, &m_iError, data, len); + } + + virtual ssize_t Read(void* data, size_t len, uint64_t iTimeoutMs = 0) + { + return TcpSocketRead(m_socket, &m_iError, data, len, iTimeoutMs); + } + + virtual bool IsOpen(void) + { + return m_socket != INVALID_SOCKET_VALUE; + } + }; + class CTcpConnection : public CProtectedSocket { public: