User Manual, Developers Guide and API Documentation

Duration.hpp

Go to the documentation of this file.
00001 /******************************************************************************
00002  * WiFiMac                                                                    *
00003  * This file is part of openWNS (open Wireless Network Simulator)
00004  * _____________________________________________________________________________
00005  *
00006  * Copyright (C) 2004-2007
00007  * Chair of Communication Networks (ComNets)
00008  * Kopernikusstr. 16, D-52074 Aachen, Germany
00009  * phone: ++49-241-80-27910,
00010  * fax: ++49-241-80-22242
00011  * email: info@openwns.org
00012  * www: http://www.openwns.org
00013  * _____________________________________________________________________________
00014  *
00015  * openWNS is free software; you can redistribute it and/or modify it under the
00016  * terms of the GNU Lesser General Public License version 2 as published by the
00017  * Free Software Foundation;
00018  *
00019  * openWNS is distributed in the hope that it will be useful, but WITHOUT ANY
00020  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
00021  * A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more
00022  * details.
00023  *
00024  * You should have received a copy of the GNU Lesser General Public License
00025  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
00026  *
00027  ******************************************************************************/
00028 
00029 #ifndef WIFIMAC_MANAGEMENT_PROTOCOLCALCULATORPLUGINS_DURATION_HPP
00030 #define WIFIMAC_MANAGEMENT_PROTOCOLCALCULATORPLUGINS_DURATION_HPP
00031 
00032 // must be the first include!
00033 #include <WNS/Python.hpp>
00034 
00035 #include <WIFIMAC/management/protocolCalculatorPlugins/ConfigGetter.hpp>
00036 #include <WIFIMAC/management/protocolCalculatorPlugins/FrameLength.hpp>
00037 #include <WIFIMAC/convergence/PhyMode.hpp>
00038 
00039 #include <WNS/pyconfig/View.hpp>
00040 #include <WNS/simulator/Time.hpp>
00041 
00042 
00043 namespace wifimac { namespace management {
00044         class ProtocolCalculator;
00045 }}
00046 
00047 namespace wifimac { namespace management { namespace protocolCalculatorPlugins {
00056     class Duration
00057     {
00058     public:
00059         Duration( wifimac::management::protocolCalculatorPlugins::FrameLength* fl_, const wns::pyconfig::View& config );
00060 
00061         Duration( wifimac::management::protocolCalculatorPlugins::FrameLength* fl_, const ConfigGetter& config);
00062 
00063         virtual ~Duration() {};
00064 
00065         unsigned int
00066         ofdmSymbols(Bit length, const wifimac::convergence::PhyMode& pm) const;
00067 
00068         wns::simulator::Time
00069         frame(Bit psduLength, const wifimac::convergence::PhyMode& pm) const;
00070         wns::simulator::Time
00071         frame(Bit psduLength, const double grossBitRate, const wifimac::convergence::PhyMode& pm) const;
00072 
00073         wns::simulator::Time
00074         ack(const wifimac::convergence::PhyMode& pm) const;
00075 
00076         wns::simulator::Time
00077         aifs(unsigned int n) const;
00078 
00079         wns::simulator::Time
00080         eifs(const wifimac::convergence::PhyMode& pm, unsigned int aifsn) const;
00081 
00082         wns::simulator::Time
00083         rts(const wifimac::convergence::PhyMode& pm) const;
00084 
00085         wns::simulator::Time
00086         cts(const wifimac::convergence::PhyMode& pm) const;
00087 
00088         wns::simulator::Time
00089         preamble(const wifimac::convergence::PhyMode& pm) const;
00090 
00091         wns::simulator::Time
00092         preambleProcessing(const wifimac::convergence::PhyMode& pm) const;
00093 
00094         wns::simulator::Time
00095         blockACK(const wifimac::convergence::PhyMode& pm) const;
00096 
00097         wns::simulator::Time
00098         MSDU_PPDU(Bit msduFrameSize, const wifimac::convergence::PhyMode& pm) const;
00099         wns::simulator::Time
00100         MSDU_PPDU(Bit msduFrameSize, const double grossBitRate, const wifimac::convergence::PhyMode& pm) const;
00101 
00102         wns::simulator::Time
00103         MPDU_PPDU(Bit mpduSize, const wifimac::convergence::PhyMode& pm) const;
00104         wns::simulator::Time
00105         MPDU_PPDU(Bit mpduSize, const double grossBitRate, const wifimac::convergence::PhyMode& pm) const;
00106 
00107         wns::simulator::Time
00108         A_MPDU_PPDU(Bit mpduFrameSize, unsigned int n_aggFrames, const wifimac::convergence::PhyMode& pm) const;
00109         wns::simulator::Time
00110         A_MPDU_PPDU(Bit mpduFrameSize, unsigned int n_aggFrames, const double grossBitRate, const wifimac::convergence::PhyMode& pm) const;
00111         wns::simulator::Time
00112         A_MPDU_PPDU(const std::vector<Bit>& mpduFrameSize, const wifimac::convergence::PhyMode& pm) const;
00113 
00114         wns::simulator::Time
00115         A_MSDU_PPDU(Bit msduFrameSize, unsigned int n_aggFrames, const wifimac::convergence::PhyMode& pm) const;
00116         wns::simulator::Time
00117         A_MSDU_PPDU(Bit msduFrameSize, unsigned int n_aggFrames, const double grossBitRate, const wifimac::convergence::PhyMode& pm) const;
00118         wns::simulator::Time
00119         A_MSDU_PPDU(const std::vector<Bit>& msduFrameSize, const wifimac::convergence::PhyMode& pm) const;
00120 
00121         wns::simulator::Time
00122         symbol(const wifimac::convergence::PhyMode &pm) const;
00123 
00124         const wns::simulator::Time sifs;
00125         const wns::simulator::Time slot;
00126 
00127     private:
00128         const wns::simulator::Time symbolWithoutGI;
00129         const wifimac::management::protocolCalculatorPlugins::FrameLength* fl;
00130 
00131 
00132     };
00133 } // protocolCalculatorPlugins
00134 } // management
00135 } // wifimac
00136 
00137 #endif

Generated on Sun May 27 03:32:12 2012 for openWNS by  doxygen 1.5.5