User Manual, Developers Guide and API Documentation

RANG.hpp

Go to the documentation of this file.
00001 /******************************************************************************
00002  * DLLBase (DLL Base classes to create FUN-based DLL)                         *
00003  * __________________________________________________________________________ *
00004  *                                                                            *
00005  * Copyright (C) 2006                                                         *
00006  * Chair of Communication Networks (ComNets)                                  *
00007  * Kopernikusstr. 16, D-52074 Aachen, Germany                                 *
00008  * phone: ++49-241-80-27910 (phone), fax: ++49-241-80-22242                   *
00009  * email: wns@comnets.rwth-aachen.de                                          *
00010  * www: http://wns.comnets.rwth-aachen.de                                     *
00011  ******************************************************************************/
00012 
00013 #ifndef DLL_RANG_HPP
00014 #define DLL_RANG_HPP
00015 
00016 #include <WNS/logger/Logger.hpp>
00017 
00018 #include <WNS/service/dll/DataTransmission.hpp>
00019 #include <WNS/service/dll/Handler.hpp>
00020 #include <WNS/service/dll/FlowID.hpp>
00021 #include <WNS/node/component/Component.hpp>
00022 #include <WNS/container/Registry.hpp>
00023 
00024 #include <WNS/osi/PDU.hpp>
00025 
00026 namespace dll {
00038     class RANG :
00039         virtual public wns::service::dll::UnicastDataTransmission,
00040         virtual public wns::service::dll::Notification,
00041         virtual public wns::service::dll::Handler,
00042         public wns::node::component::Component
00043     {
00044         typedef wns::container::Registry<wns::service::dll::UnicastAddress, wns::service::dll::UnicastDataTransmission*> AccessPointLookup;
00045     public:
00046         RANG(wns::node::Interface*, const wns::pyconfig::View&);
00047         virtual ~RANG(){};
00048 
00049         virtual void
00050         registerFlowHandler(wns::service::dll::FlowHandler*){};
00051 
00052         virtual void
00053         registerIRuleControl(wns::service::dll::IRuleControl*){};
00054 
00057         virtual void
00058         sendData(
00059             const wns::service::dll::UnicastAddress& _peer,
00060             const wns::osi::PDUPtr& _data,
00061             wns::service::dll::protocolNumber protocol,
00062             wns::service::dll::FlowID _dllFlowID = wns::service::dll::NoFlowID);
00064 
00065         virtual wns::service::dll::UnicastAddress
00066         getMACAddress() const { return wns::service::dll::UnicastAddress();}
00067 
00068 
00071         virtual void
00072         registerHandler(wns::service::dll::protocolNumber protocol,
00073                 wns::service::dll::Handler* _dh);
00075 
00079         virtual void onData(const wns::osi::PDUPtr& _data,
00080                     wns::service::dll::FlowID _dllFlowID = wns::service::dll::NoFlowID);
00081 
00087         bool knowsAddress(wns::service::dll::UnicastAddress _sourceMACAddress);
00088 
00089         wns::service::dll::UnicastDataTransmission*
00090         getAccessPointFor(wns::service::dll::UnicastAddress _sourceMACAddress);
00091 
00092         void updateAPLookUp(wns::service::dll::UnicastAddress _sourceMACAddress,
00093                     wns::service::dll::UnicastDataTransmission* _ap);
00094 
00095         void removeAddress(wns::service::dll::UnicastAddress _sourceMACAddress,
00096                            wns::service::dll::UnicastDataTransmission* _ap);
00097 
00098         virtual
00099         void onData(const wns::osi::PDUPtr& _data,
00100                   wns::service::dll::UnicastAddress _sourceMACAddress,
00101                   wns::service::dll::UnicastDataTransmission* _ap,
00102                       wns::service::dll::FlowID _dllFlowID = wns::service::dll::NoFlowID);
00104 
00107         virtual void onNodeCreated();
00108         virtual void onWorldCreated();
00109         virtual void onShutdown();
00111 
00112     protected:
00113         virtual void
00114         doStartup();
00115         AccessPointLookup accessPointLookup;
00116 
00117     private:
00121         typedef wns::container::Registry<wns::service::dll::protocolNumber, wns::service::dll::Handler*> DataHandlerRegistry;
00122 
00127         DataHandlerRegistry dataHandlerRegistry;
00128 
00129         wns::pyconfig::View config;
00130 
00131         bool learnAPfromIncomingData;
00132 
00133         wns::logger::Logger logger;
00134     };
00135 }
00136 
00137 #endif // NOT defined DLL_RANG_HPP
00138 
00139 

Generated on Fri Feb 10 03:32:29 2012 for openWNS by  doxygen 1.5.5