23 #ifndef _PLUGINS_OPENPRS_UTILS_OPENPRS_SERVER_PROXY_H_
24 #define _PLUGINS_OPENPRS_UTILS_OPENPRS_SERVER_PROXY_H_
26 #include <core/utils/lock_list.h>
27 #include <core/utils/lockptr.h>
29 #include <boost/asio.hpp>
42 const std::string &server_host,
43 unsigned short server_port,
47 void transmit_command(
const std::string &client_name,
const std::string &command);
49 void transmit_command_v(
const std::string &client_name,
const char *format, va_list arg);
51 bool has_kernel(
const std::string &kernel_name);
58 const std::string & str);
65 typedef std::shared_ptr<Mapping> Ptr;
66 Mapping(boost::asio::io_service &io_service,
67 const std::string & server_host,
68 unsigned short server_port,
79 void handle_resolve(
const boost::system::error_code & err,
80 boost::asio::ip::tcp::resolver::iterator endpoint_iterator);
81 void handle_connect(
const boost::system::error_code &err);
82 void start_recv_client();
83 void start_recv_server();
84 void handle_recv_client(
const boost::system::error_code &err);
85 void handle_recv_server(
const boost::system::error_code &err);
88 boost::asio::io_service & io_service_;
89 boost::asio::ip::tcp::resolver resolver_;
91 std::string server_host_;
92 unsigned short server_port_;
94 int client_in_num_completions_;
95 boost::asio::streambuf server_buffer_;
100 std::string client_name;
101 boost::asio::ip::tcp::socket client_socket;
102 boost::asio::ip::tcp::socket server_socket;
107 void handle_accept(Mapping::Ptr mapping,
const boost::system::error_code &error);
108 Mapping::Ptr find_mapping(
const std::string &client_name);
111 boost::asio::io_service io_service_;
112 std::thread io_service_thread_;
113 boost::asio::io_service::work io_service_work_;
114 boost::asio::ip::tcp::acceptor acceptor_;
116 std::string server_host_;
117 unsigned short server_port_;
Fawkes library namespace.