User Manual, Developers Guide and API Documentation

DLLFlowIDTarget.hpp

Go to the documentation of this file.
00001 /******************************************************************************
00002  * IPModule   Internet Protocol Implementation                                *
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 IP_IPTABLES_TARGETS_DLLFLOWIDTARGET_HPP
00013 #define IP_IPTABLES_TARGETS_DLLFLOWIDTARGET_HPP
00014 
00015 #include <IP/IPHeader.hpp>
00016 #include <IP/iptables/targets/TargetInterface.hpp>
00017 #include <IP/iptables/IRuleControl.hpp>
00018 
00019 #include <WNS/pyconfig/View.hpp>
00020 #include <WNS/logger/Logger.hpp>
00021 
00022 namespace ip { namespace iptables { namespace targets {
00023 
00024     class DLLFlowIDTarget:
00025         public TargetInterface
00026     {
00027     public:
00028 
00029         DLLFlowIDTarget(const wns::pyconfig::View& _pyco);
00030 
00031         virtual
00032         ~DLLFlowIDTarget();
00033 
00034         virtual TargetResult
00035         mangle(IPCommand*);
00036 
00037         virtual TargetResult
00038         mangle(IPCommand*, wns::service::tl::IUDPHeader*);
00039 
00040         virtual TargetResult
00041         mangle(IPCommand*, wns::service::tl::ITCPHeader*);
00042 
00043         void
00044         setRuleController(ip::iptables::IRuleControl* controller);
00045 
00046         void
00047         ruleErased(wns::service::dll::FlowID flowID);
00048 
00049     private:
00050 
00051         bool
00052         knowsTLFlowID(wns::service::tl::FlowID tlFlowID);
00053 
00054         wns::service::dll::FlowID
00055         getDLLFlowID(wns::service::tl::FlowID tlFlowID);
00056 
00057         typedef wns::container::Registry<wns::service::dll::FlowID, wns::service::tl::FlowID> dllFlowIDList;
00058         wns::logger::Logger log;
00059         ip::iptables::IRuleControl* postroutingChain;
00060         dllFlowIDList knowsFlowIDList;
00061     };
00062 
00063 } // targets
00064 } // iptables
00065 } // ip
00066 #endif // IP_IPTABLES_TARGETS_DLLFLOWIDTARGET_HPP

Generated on Wed May 23 03:32:15 2012 for openWNS by  doxygen 1.5.5