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>
41 const std::string &mp_host,
42 unsigned short mp_port,
51 typedef std::shared_ptr<Mapping> Ptr;
52 Mapping(boost::asio::io_service &io_service,
53 const std::string & mp_host,
54 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);
82 boost::asio::io_service & io_service_;
83 boost::asio::ip::tcp::resolver resolver_;
85 std::string server_host_;
86 unsigned short server_port_;
87 boost::asio::streambuf server_buffer_;
91 int server_in_reg_reply_;
92 int server_in_str_len_;
93 int client_in_msg_type_;
97 std::string client_name;
98 boost::asio::ip::tcp::socket client_socket;
99 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_;
Proxy for the OpenPRS server communication.
OpenPRSMessagePasserProxy(unsigned short tcp_port, const std::string &mp_host, unsigned short mp_port, fawkes::Logger *logger)
Constructor.
virtual ~OpenPRSMessagePasserProxy()
Destructor.
Fawkes library namespace.