User Manual, Developers Guide and API Documentation

TcpClientListenerBinding.hpp

Go to the documentation of this file.
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

Generated on Sat May 26 03:32:14 2012 for openWNS by  doxygen 1.5.5