00001 #ifndef _BOOST_RPC_DETAIL_SERVER_BASE_HPP_
00002 #define _BOOST_RPC_DETAIL_SERVER_BASE_HPP_
00003 #include <boost/asio.hpp>
00004 #include <boost/enable_shared_from_this.hpp>
00005 #include <boost/function.hpp>
00006
00007 namespace boost { namespace cmt { namespace asio {
00008 typedef boost::asio::ip::tcp::socket tcp_socket;
00009 typedef boost::shared_ptr<tcp_socket> tcp_socket_ptr;
00010
00026 class acceptor : public boost::enable_shared_from_this<acceptor> {
00027 public:
00028 typedef boost::shared_ptr<acceptor> ptr;
00029 typedef boost::function<void(const tcp_socket_ptr,boost::system::error_code)> handler;
00030
00031 acceptor();
00032 ~acceptor();
00033
00034 void listen( uint16_t port, const handler& on_con );
00035
00036 private:
00037 class acceptor_private* my;
00038 };
00039
00040 } } }
00041
00042 #endif // _BOOST_RPC_DETAIL_SERVER_BASE_HPP_