Mercurial > code
comparison C++/SocketTcp.h @ 316:4c0af1143fc4
Add wait operation (no tests yet)
author | David Demelier <markand@malikania.fr> |
---|---|
date | Tue, 03 Mar 2015 18:48:54 +0100 |
parents | c9356cb38c86 |
children | 68ae6d7dea1f |
comparison
equal
deleted
inserted
replaced
315:c9356cb38c86 | 316:4c0af1143fc4 |
---|---|
45 result.resize(n); | 45 result.resize(n); |
46 | 46 |
47 return result; | 47 return result; |
48 } | 48 } |
49 | 49 |
50 inline std::string waitRecv(unsigned count, int timeout) | |
51 { | |
52 std::string result; | |
53 | |
54 result.resize(count); | |
55 auto n = waitRecv(const_cast<char *>(result.data()), count, timeout); | |
56 result.resize(n); | |
57 | |
58 return result; | |
59 } | |
60 | |
50 inline unsigned send(const std::string &data) | 61 inline unsigned send(const std::string &data) |
51 { | 62 { |
52 return send(data.c_str(), data.size()); | 63 return send(data.c_str(), data.size()); |
53 } | 64 } |
54 | 65 |
66 inline unsigned waitSend(const std::string &data, int timeout) | |
67 { | |
68 return waitSend(data.c_str(), data.size(), timeout); | |
69 } | |
70 | |
55 virtual unsigned recv(void *data, unsigned length) = 0; | 71 virtual unsigned recv(void *data, unsigned length) = 0; |
56 | 72 |
73 virtual unsigned waitRecv(void *data, unsigned length, int timeout) = 0; | |
74 | |
57 virtual unsigned send(const void *data, unsigned length) = 0; | 75 virtual unsigned send(const void *data, unsigned length) = 0; |
76 | |
77 virtual unsigned waitSend(const void *data, unsigned length, int timeout) = 0; | |
58 }; | 78 }; |
59 | 79 |
60 /** | 80 /** |
61 * @class SocketTcp | 81 * @class SocketTcp |
62 * @brief End-user class for TCP sockets | 82 * @brief End-user class for TCP sockets |
69 | 89 |
70 SocketTcp accept(); | 90 SocketTcp accept(); |
71 | 91 |
72 SocketTcp accept(SocketAddress &info); | 92 SocketTcp accept(SocketAddress &info); |
73 | 93 |
94 SocketTcp waitAccept(int timeout); | |
95 | |
96 SocketTcp waitAccept(SocketAddress &info, int timeout); | |
97 | |
74 void connect(const SocketAddress &address); | 98 void connect(const SocketAddress &address); |
99 | |
100 void waitConnect(const SocketAddress &address, int timeout); | |
75 | 101 |
76 unsigned recv(void *data, unsigned length) override; | 102 unsigned recv(void *data, unsigned length) override; |
77 | 103 |
104 unsigned waitRecv(void *data, unsigned length, int timeout) override; | |
105 | |
78 unsigned send(const void *data, unsigned length) override; | 106 unsigned send(const void *data, unsigned length) override; |
107 | |
108 unsigned waitSend(const void *data, unsigned length, int timeout) override; | |
79 }; | 109 }; |
80 | 110 |
81 #endif // !_SOCKET_TCP_NG_3_H_ | 111 #endif // !_SOCKET_TCP_NG_3_H_ |