MACE
1.0.0
|
00001 #ifndef _MACE_RPC_JSON_TCP_SERVER_BASE_HPP_ 00002 #define _MACE_RPC_JSON_TCP_SERVER_BASE_HPP_ 00003 #include <mace/cmt/thread.hpp> 00004 #include <mace/stub/ptr.hpp> 00005 #include <boost/fusion/support/deduce_sequence.hpp> 00006 #include <mace/rpc/json/value_io.hpp> 00007 #include <mace/rpc/json/connection.hpp> 00008 00009 namespace mace { namespace rpc { namespace json { 00010 00011 namespace detail { 00012 class tcp_server_base { 00013 public: 00014 struct session_creator { 00015 virtual ~session_creator(){} 00016 virtual boost::any init_connection( const rpc::json::connection::ptr& ) = 0; 00017 }; 00018 00019 00020 tcp_server_base( session_creator* sc, uint16_t port, mace::cmt::thread* t ); 00021 ~tcp_server_base(); 00022 mace::cmt::thread* get_thread()const; 00023 00024 private: 00025 class tcp_server_base_private* my; 00026 }; 00027 } // namesapce detal 00028 00029 } } } // mace::rpc::json 00030 00031 #endif // _MACE_RPC_JSON_TCP_SERVER_BASE_HPP_