![]() |
User Manual, Developers Guide and API Documentation |
![]() |
00001 /****************************************************************************** 00002 * TCP Listener Binding * 00003 * __________________________________________________________________________ * 00004 * * 00005 * Copyright (C) 2005 * 00006 * Lehrstuhl fuer Kommunikationsnetze (ComNets) * 00007 * Kopernikusstr. 16, D-52074 Aachen, Germany * 00008 * phone: ++49-241-80-27910 (phone), fax: ++49-241-80-22242 * 00009 * email: wns@comnetsrwth-aachen.de, www: http://wns.comnets.rwth-aachen.de/ * 00010 ******************************************************************************/ 00011 00012 #ifndef CONSTANZE_TCPCLIENTLISTENERBINDING_HPP 00013 #define CONSTANZE_TCPCLIENTLISTENERBINDING_HPP 00014 00015 #include <CONSTANZE/Binding.hpp> 00016 #include <CONSTANZE/Generator.hpp> 00017 #include <CONSTANZE/Listener.hpp> 00018 00019 #include <WNS/service/nl/Address.hpp> 00020 #include <WNS/service/tl/Service.hpp> 00021 #include <WNS/service/tl/ConnectionHandler.hpp> 00022 #include <WNS/service/tl/DataHandler.hpp> 00023 #include <WNS/service/tl/Connection.hpp> 00024 #include <WNS/service/tl/PortPool.hpp> 00025 00026 #include <WNS/logger/Logger.hpp> 00027 #include <WNS/module/Base.hpp> 00028 00029 00030 namespace constanze 00031 { 00032 class TcpClientListenerBinding: 00033 public Binding, 00034 public wns::service::tl::ConnectionHandler, 00035 public wns::service::tl::DataHandler 00036 { 00037 public: 00038 TcpClientListenerBinding(int _listenPort); 00039 virtual ~TcpClientListenerBinding() {}; 00040 00041 void 00042 registerTcpService(wns::service::tl::Service* _tcpService); 00043 00044 // from Binding 00045 virtual void 00046 registerComponent(wns::node::component::Component* _component); 00047 00048 virtual void 00049 sendData(const wns::osi::PDUPtr& _data); 00050 00051 virtual void 00052 initBinding(constanze::StartTrigger* _trgger); 00053 00054 virtual void 00055 releaseBinding(constanze::StopTrigger* _trigger); 00056 00057 virtual void 00058 registerListener(constanze::Listener* _listener); 00059 00060 // from ConnectionHandler 00061 00062 virtual void 00063 onConnectionEstablished(wns::service::nl::Address _sourceIpAddress, wns::service::tl::Connection* _newConnection); 00064 00065 virtual void 00066 onConnectionClosed(wns::service::tl::Connection* _connection); 00067 00068 virtual void 00069 onConnectionClosedByPeer(wns::service::tl::Connection* _connection); 00070 00071 virtual void 00072 onConnectionLost(wns::service::tl::Connection* _connection); 00073 00074 // from DataHandler 00075 virtual void 00076 onData(const wns::osi::PDUPtr& _data); 00077 00078 protected: 00079 wns::service::nl::Address ownAddress; 00080 00081 wns::service::tl::Port listenPort; 00082 00083 wns::service::tl::Service* tcpService; 00084 00085 wns::service::tl::ConnectionHandler* connectionHandler; 00086 00087 constanze::Listener* listener; 00088 00089 wns::node::component::Component* component; 00090 00091 00092 00096 wns::logger::Logger log; 00097 00098 virtual std::string printAddress() const; 00099 00100 }; 00101 } //constanze 00102 00103 #endif
1.5.5