23 #ifndef __PLUGINS_OPENPRS_UTILS_OPENPRS_SERVER_PROXY_H_ 24 #define __PLUGINS_OPENPRS_UTILS_OPENPRS_SERVER_PROXY_H_ 26 #include <core/utils/lockptr.h> 27 #include <core/utils/lock_list.h> 29 #include <boost/asio.hpp> 45 const std::string &server_host,
unsigned short server_port,
49 void transmit_command(
const std::string &client_name,
const std::string &command);
51 void transmit_command_v(
const std::string &client_name,
const char *format, va_list arg);
53 bool has_kernel(
const std::string &kernel_name);
65 typedef std::shared_ptr<Mapping> Ptr;
66 Mapping(boost::asio::io_service &io_service,
67 const std::string &server_host,
unsigned short server_port,
78 void handle_resolve(
const boost::system::error_code& err,
79 boost::asio::ip::tcp::resolver::iterator endpoint_iterator);
80 void handle_connect(
const boost::system::error_code& err);
81 void start_recv_client();
82 void start_recv_server();
83 void handle_recv_client(
const boost::system::error_code &err);
84 void handle_recv_server(
const boost::system::error_code &err);
87 boost::asio::io_service &io_service_;
88 boost::asio::ip::tcp::resolver resolver_;
90 std::string server_host_;
91 unsigned short server_port_;
93 int client_in_num_completions_;
94 boost::asio::streambuf server_buffer_;
99 std::string client_name;
100 boost::asio::ip::tcp::socket client_socket;
101 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.