X-Git-Url: http://developer.intra2net.com/git/?p=libt2n;a=blobdiff_plain;f=src%2Fsocket_client.hxx;h=1d8240005010700b4752a4f1a231a194edc80a54;hp=198e1a7cd262b0a917484b4350d0612a1096beff;hb=b2ba092858a40fc42afba6b529d5b97bcba363e2;hpb=644c4d262aab14ee4ec1cfade83a2e99568098d3 diff --git a/src/socket_client.hxx b/src/socket_client.hxx index 198e1a7..1d82400 100644 --- a/src/socket_client.hxx +++ b/src/socket_client.hxx @@ -24,10 +24,14 @@ namespace libt2n { +/** @brief a connection from client to server using sockets. + Use this class to connect from a client to a server. + */ class socket_client_connection : public client_connection, public socket_handler { - static const int max_retries_default=3; + public: + static const int max_retries_default=3; private: void real_write(const std::string& data) @@ -41,12 +45,24 @@ class socket_client_connection : public client_connection, public socket_handler std::string server; int port; + std::ostream* get_logstream(log_level_values level) + { return client_connection::get_logstream(level); } + public: socket_client_connection(const std::string& _server, int _port, int _max_retries=max_retries_default); socket_client_connection(const std::string& _path, int _max_retries=max_retries_default); - void fill_buffer(long long usec_timeout=-1) - { socket_handler::fill_buffer(buffer,usec_timeout); } + /** @brief read data from the socket and copy it into buffer + @param usec_timeout wait until new data is found, max timeout usecs. + -1: wait endless + 0: return instantly + @param usec_timeout_remaining if non-NULL the function will write the + not used time to the given target + @retval true if new data was found (does not mean that the received data + is a complete packet though) + */ + bool fill_buffer(long long usec_timeout=-1, long long *usec_timeout_remaining=NULL) + { return socket_handler::fill_buffer(buffer,usec_timeout,usec_timeout_remaining); } void close(); };