2 * @brief TCPService class header. This class represents a TCP client.
6 * @copyright Intra2net AG
14 #include "ip_service.h"
16 #include <boost/shared_ptr.hpp>
17 #include <boost/asio.hpp>
18 #include <boost/asio/ssl.hpp>
20 typedef boost::asio::ssl::stream<boost::asio::ip::tcp::socket> SSLStream;
22 class TCPService : public IPService
27 boost::shared_ptr<SSLStream> Socket;
28 // IOService has to be a member, otherwise the socket.close() operation will throw "mutex: Invalid argument"
29 // Bug in boost::asio ? Cause no docs found concerning this issue. The socket.close() operation is trying to clean up io_service.
30 boost::asio::io_service IOService;
34 //typedef boost::shared_ptr<TCPService> Ptr;
40 virtual void connect(const std::string& _hostname, const std::string& _port);
42 std::string read_from_socket();
44 void write_to_socket(const std::string& data);