28 typedef std::function<void(
const char* buffer,
size_t len)>
CallBack;
30 AsyncAcceptor(
const std::string& ip,
int thread_num,
int port,
39 Session(boost::asio::io_service* io_service,
CallBack call_back_func);
42 boost::asio::ip::tcp::socket* GetSocket();
52 boost::asio::io_service* io_service_ =
nullptr;
53 boost::asio::ip::tcp::socket client_socket_;
54 size_t data_size_ = 0;
55 size_t need_size_ = 0;
56 size_t current_idx_ = 0;
57 char* recv_buffer_ =
nullptr;
63 void OnAccept(boost::shared_ptr<Session> client_socket,
64 const boost::system::error_code ec);
67 boost::asio::io_service io_service_;
68 boost::asio::ip::tcp::endpoint endpoint_;
69 boost::asio::ip::tcp::acceptor acceptor_;
70 std::unique_ptr<boost::asio::io_service::work> worker_;
72 std::vector<std::thread> worker_thread_;
73 std::vector<boost::shared_ptr<Session>> sessions_;