User Manual, Developers Guide and API Documentation

ACKSwitch.hpp

Go to the documentation of this file.
00001 /*******************************************************************************
00002  * This file is part of openWNS (open Wireless Network Simulator)
00003  * _____________________________________________________________________________
00004  *
00005  * Copyright (C) 2004-2009
00006  * Chair of Communication Networks (ComNets)
00007  * Kopernikusstr. 5, D-52074 Aachen, Germany
00008  * email: info@openwns.org
00009  * www: http://www.openwns.org
00010  * _____________________________________________________________________________
00011  *
00012  * openWNS is free software; you can redistribute it and/or modify it under the
00013  * terms of the GNU Lesser General Public License version 2 as published by the
00014  * Free Software Foundation;
00015  *
00016  * openWNS is distributed in the hope that it will be useful, but WITHOUT ANY
00017  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
00018  * A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more
00019  * details.
00020  *
00021  * You should have received a copy of the GNU Lesser General Public License
00022  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
00023  *
00024  ******************************************************************************/
00025 
00031 #ifndef WIMAC_ACKSWITCH_HPP
00032 #define WIMAC_ACKSWITCH_HPP
00033 
00034 #include <WNS/ldk/ldk.hpp>
00035 
00036 #include <WNS/Cloneable.hpp>
00037 #include <WNS/ldk/CommandTypeSpecifier.hpp>
00038 #include <WNS/ldk/HasDeliverer.hpp>
00039 #include <WNS/ldk/HasConnector.hpp>
00040 #include <WNS/ldk/HasReceptor.hpp>
00041 #include <WNS/ldk/Processor.hpp>
00042 #include <WNS/ldk/FunctionalUnit.hpp>
00043 #include <WNS/ldk/Command.hpp>
00044 #include <WNS/ldk/Classifier.hpp>
00045 #include <WIMAC/ConnectionIdentifier.hpp>
00046 
00047 namespace wns { namespace ldk { namespace arq {
00048     class ARQ;
00049 }}}
00050 
00051 namespace wimac {
00052 
00053 namespace service {
00054     class ConnectionManagerInterface;
00055 }
00056 
00060     class AckSwitchCommand
00061             : public wns::ldk::Command
00062     {
00063     public:
00064         struct {
00065             ConnectionIdentifier::CID originalCID;
00066         } peer;
00067 
00068         struct {
00069         } local;
00070 
00071         struct {
00072         } magic;
00073     };
00074 
00075     /*
00076      * \brief Switches ARQ ACKs to the control connection of an associated SS.
00077      */
00078     class ACKSwitch :
00079             public wns::ldk::CommandTypeSpecifier<AckSwitchCommand>,
00080             public wns::ldk::HasConnector<>,
00081             public wns::ldk::HasReceptor<>,
00082             public wns::ldk::HasDeliverer<>,
00083             public wns::ldk::Processor<ACKSwitch>,
00084             public wns::Cloneable<ACKSwitch>
00085     {
00086     public:
00093         ACKSwitch( wns::ldk::fun::FUN* fun, const wns::pyconfig::View& config );
00094 
00098         void processIncoming( const wns::ldk::CompoundPtr& compound );
00099 
00100         /*
00101          * \brief Mandatory reimplementation from Processor.
00102          */
00103         void processOutgoing( const wns::ldk::CompoundPtr& compound );
00104 
00105         void onFUNCreated();
00106 
00107     private:
00108         // friends
00109         wns::ldk::arq::ARQ* arq_;
00110         wns::ldk::CommandTypeSpecifier< wns::ldk::ClassifierCommand >* classifier_;
00111         service::ConnectionManagerInterface* connectionManager_;
00112     };
00113 }
00114 
00115 #endif

Generated on Mon May 21 03:32:16 2012 for openWNS by  doxygen 1.5.5