00001 #ifndef QRK_TCPIP_SOCKET_H 00002 #define QRK_TCPIP_SOCKET_H 00003 00013 #include "Connection.h" 00014 #include <memory> 00015 00016 00017 namespace qrk 00018 { 00019 class SocketSet; 00020 00021 00025 class TcpipSocket : public Connection 00026 { 00027 public: 00028 TcpipSocket(void); 00029 00030 00036 TcpipSocket(void* socket); 00037 00038 00045 TcpipSocket(SocketSet* socket_set, void* socket = NULL); 00046 00047 ~TcpipSocket(void); 00048 00049 const char* what(void) const; 00050 00051 bool connect(const char* host, long port); 00052 void disconnect(void); 00053 bool setBaudrate(long baudrate); 00054 long baudrate(void) const; 00055 bool isConnected(void) const; 00056 int send(const char* data, size_t count); 00057 int receive(char* data, size_t count, int timeout); 00058 size_t size(void) const; 00059 void flush(void); 00060 void clear(void); 00061 void ungetc(const char ch); 00062 00063 private: 00064 TcpipSocket(const TcpipSocket& rhs); 00065 TcpipSocket& operator = (const TcpipSocket& rhs); 00066 00067 struct pImpl; 00068 const std::auto_ptr<pImpl> pimpl; 00069 }; 00070 } 00071 00072 #endif /* !QRK_TCPIP_SOCKET_H */