![]() |
User Manual, Developers Guide and API Documentation |
![]() |
00001 /****************************************************************************** 00002 * UDP ClientBinding * 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_UDPCLIENTBINDING_HPP 00013 #define CONSTANZE_UDPCLIENTBINDING_HPP 00014 00015 #include <CONSTANZE/UdpBinding.hpp> 00016 #include <CONSTANZE/Generator.hpp> 00017 00018 #include <WNS/service/nl/Service.hpp> 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/PortPool.hpp> 00024 #include <WNS/service/tl/Connection.hpp> 00025 00026 #include <WNS/PyConfigViewCreator.hpp> 00027 #include <WNS/logger/Logger.hpp> 00028 #include <WNS/module/Base.hpp> 00029 00030 00031 namespace constanze 00032 { 00033 class UdpClientBinding: 00034 public Binding, 00035 public wns::service::tl::ConnectionHandler, 00036 public wns::service::tl::DataHandler 00037 { 00038 public: 00039 UdpClientBinding(const wns::pyconfig::View& _pyco); 00040 ~UdpClientBinding(); 00041 00042 // from Binding 00043 virtual void 00044 registerComponent(wns::node::component::Component* _component); 00045 00046 virtual void 00047 sendData(const wns::osi::PDUPtr& _data); 00048 00049 virtual void 00050 initBinding(constanze::StartTrigger* _startTrigger); 00051 00052 virtual void 00053 releaseBinding(constanze::StopTrigger* _stopTrigger); 00054 00055 virtual void 00056 registerListener(constanze::Listener*); 00057 00058 // from ConnectionHandler 00059 virtual void 00060 onConnectionEstablished(wns::service::nl::Address _sourceIpAddress, wns::service::tl::Connection* _newConnection); 00061 00062 virtual void 00063 onConnectionClosed(wns::service::tl::Connection* _connection); 00064 00065 virtual void 00066 onConnectionClosedByPeer(wns::service::tl::Connection* _connection); 00067 00068 virtual void 00069 onConnectionLost(wns::service::tl::Connection* _connection); 00070 00071 // from DataHandler 00072 virtual void 00073 onData(const wns::osi::PDUPtr& _pdu); 00074 00075 protected: 00076 constanze::StartTrigger* startTrigger; 00077 constanze::StopTrigger* stopTrigger; 00078 00079 wns::node::component::Component* component; 00080 00081 wns::pyconfig::View pyco; 00082 00083 wns::service::nl::DNSService* dns; 00084 wns::service::nl::FQDN domainName; 00085 wns::service::nl::FQDN destinationDomainName; 00086 wns::service::nl::Address peerAddress; 00087 wns::service::tl::Port destinationPort; 00088 wns::service::tl::Service* udpService; 00089 wns::service::tl::ConnectionHandler* connectionHandler; 00090 wns::service::tl::Connection* connection; 00091 wns::service::qos::QoSClass qosClass; 00092 00093 virtual std::string 00094 printAddress() const; 00095 00096 constanze::Listener* listener; 00097 00101 wns::logger::Logger log; 00102 00104 long unsigned int packetCounter; 00105 00107 long unsigned int bitCounter; 00108 00109 unsigned int nodeID; 00110 }; 00111 } //constanze 00112 00113 #endif
1.5.5