MACE  1.0.0
 All Classes Namespaces Files Functions Variables Enumerations Defines
libs/rpc/include/mace/rpc/raw/tcp/server.hpp
00001 #ifndef _MACE_RPC_RAW_TCP_SERVER_HPP_
00002 #define _MACE_RPC_RAW_TCP_SERVER_HPP_
00003 #include <mace/rpc/tcp/server.hpp>
00004 #include <mace/rpc/raw/tcp/connection.hpp>
00005 
00006 namespace mace { namespace rpc { namespace raw { namespace tcp {
00007 
00008 #ifndef BOOST_NO_TEMPLATE_ALIASES
00009   template<typename Interface, typename IODelegate>
00010   using server = mace::rpc::tcp::server<Interface,mace::rpc::raw::tcp::connection<IODelegate> >;
00011 #else // BOOST_NO_TEMPLATE_ALIASES 
00012 
00022   template<typename Interface, typename IODelegate=mace::rpc::raw_io>
00023   class server : public mace::rpc::tcp::server<Interface,mace::rpc::raw::tcp::connection<IODelegate> > {
00024     public:
00025       typedef mace::rpc::raw::tcp::connection<IODelegate> connection_type;
00026 
00027       template<typename SessionType>
00028       server( const boost::function<boost::shared_ptr<SessionType>()>& sg, uint16_t port )
00029       :mace::rpc::tcp::server<Interface,connection_type>( sg, port ){}
00030 
00031       template<typename SessionType>
00032       server( const boost::shared_ptr<SessionType>& shared_session, uint16_t port )
00033       :mace::rpc::tcp::server<Interface,connection_type>( shared_session, port ){}
00034   };
00035 #endif
00036 
00037 } } } } // mace::rpc::raw::tcp
00038 
00039 #endif // _MACE_RPC_RAW_TCP_SERVER_HPP_