23 #ifndef __PLUGINS_OPENPRS_UTILS_OPENPRS_MP_PROXY_H_ 24 #define __PLUGINS_OPENPRS_UTILS_OPENPRS_MP_PROXY_H_ 26 #include <core/utils/lockptr.h> 28 #include <boost/asio.hpp> 44 const std::string &mp_host,
unsigned short mp_port,
52 typedef std::shared_ptr<Mapping> Ptr;
53 Mapping(boost::asio::io_service &io_service,
54 const std::string &mp_host,
unsigned short mp_port,
63 void disconnect(
const char *where,
const char *reason);
64 void handle_resolve(
const boost::system::error_code& err,
65 boost::asio::ip::tcp::resolver::iterator endpoint_iterator);
66 void handle_connect(
const boost::system::error_code& err);
67 void start_recv_client();
68 void handle_recv_client(
const boost::system::error_code &err);
69 void start_recv_server();
70 void handle_recv_server_reg_reply(
const boost::system::error_code &err);
71 void handle_recv_server_message_pt(
const boost::system::error_code &err);
72 void handle_recv_server_strings_pt(
const boost::system::error_code &err);
74 int read_int_from_socket(boost::asio::ip::tcp::socket &socket);
75 std::string read_string_from_socket(boost::asio::ip::tcp::socket &socket);
76 void write_int_to_socket(boost::asio::ip::tcp::socket &socket,
int i);
77 void write_string_to_socket(boost::asio::ip::tcp::socket &socket, std::string &str);
78 void write_string_newline_to_socket(boost::asio::ip::tcp::socket &socket,
79 const std::string &str);
81 boost::asio::io_service &io_service_;
82 boost::asio::ip::tcp::resolver resolver_;
84 std::string server_host_;
85 unsigned short server_port_;
86 boost::asio::streambuf server_buffer_;
90 int server_in_reg_reply_;
91 int server_in_str_len_;
92 int client_in_msg_type_;
96 std::string client_name;
97 boost::asio::ip::tcp::socket client_socket;
98 boost::asio::ip::tcp::socket server_socket;
104 void handle_accept(Mapping::Ptr mapping,
const boost::system::error_code &error);
107 boost::asio::io_service io_service_;
108 std::thread io_service_thread_;
109 boost::asio::io_service::work io_service_work_;
110 boost::asio::ip::tcp::acceptor acceptor_;
112 std::string mp_host_;
113 unsigned short mp_port_;
116 std::list<Mapping::Ptr> mappings_;
virtual ~OpenPRSMessagePasserProxy()
Destructor.
Fawkes library namespace.
OpenPRSMessagePasserProxy(unsigned short tcp_port, const std::string &mp_host, unsigned short mp_port, fawkes::Logger *logger)
Constructor.
Proxy for the OpenPRS server communication.