00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef CONEXUSNSPR_TCPSERVER_H
00020 #define CONEXUSNSPR_TCPSERVER_H
00021
00022 #include <conexus/endpointserver.h>
00023 #include <conexus/nspr_tcp.h>
00024
00025 namespace Conexus
00026 {
00027
00028 namespace NSPR
00029 {
00030
00036 class TCPServer: public Conexus::EndpointServer
00037 {
00038 public:
00039 typedef ConexusPointer<TCPServer> pointer;
00040
00041 TCPServer(uint16_t port=0);
00042
00043 static TCPServer::pointer create(uint16_t port=0);
00044
00045 virtual ~TCPServer();
00046
00047 virtual Conexus::IPv4::Address& local_interface();
00048
00049 virtual void set_local_interface(Conexus::IPv4::Address addr);
00050
00051 virtual void start();
00052 virtual void start(bool use_dispatcher);
00053 virtual void stop();
00054
00055 virtual const std::string& object_type() { static std::string s("Conexus::NSPR::TCPServer"); return s; }
00056
00057 protected:
00058 TCP m_tcp_listener;
00059 Conexus::IPv4::Address m_local_interface;
00060
00061
00062 virtual void service_thread_main();
00063
00064
00065 };
00066
00067 }
00068
00069 }
00070
00071 #endif