src/helper/nqos-wifi-mac-helper.h
changeset 4406 39f119de91ef
child 4529 68d6cf654acb
equal deleted inserted replaced
4405:938c96b15fa7 4406:39f119de91ef
       
     1 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
       
     2 /*
       
     3  * Copyright (c) 2009 MIRKO BANCHI
       
     4  *
       
     5  * This program is free software; you can redistribute it and/or modify
       
     6  * it under the terms of the GNU General Public License version 2 as 
       
     7  * published by the Free Software Foundation;
       
     8  *
       
     9  * This program is distributed in the hope that it will be useful,
       
    10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
       
    11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
       
    12  * GNU General Public License for more details.
       
    13  *
       
    14  * You should have received a copy of the GNU General Public License
       
    15  * along with this program; if not, write to the Free Software
       
    16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
       
    17  *
       
    18  * Author: Mirko Banchi <mk.banchi@gmail.com>
       
    19  */
       
    20 #ifndef NQOS_WIFI_MAC_HELPER_H
       
    21 #define NQOS_WIFI_MAC_HELPER_H
       
    22 
       
    23 #include "wifi-helper.h"
       
    24 
       
    25 namespace ns3 {
       
    26 
       
    27 class NqosWifiMacHelper : public WifiMacHelper
       
    28 {
       
    29 public:
       
    30   NqosWifiMacHelper ();
       
    31   virtual ~NqosWifiMacHelper ();
       
    32   /**
       
    33    * Create a mac helper in a default working state.
       
    34    */
       
    35   static NqosWifiMacHelper Default (void);
       
    36   /**
       
    37    * \param type the type of ns3::WifiMac to create.
       
    38    * \param n0 the name of the attribute to set
       
    39    * \param v0 the value of the attribute to set
       
    40    * \param n1 the name of the attribute to set
       
    41    * \param v1 the value of the attribute to set
       
    42    * \param n2 the name of the attribute to set
       
    43    * \param v2 the value of the attribute to set
       
    44    * \param n3 the name of the attribute to set
       
    45    * \param v3 the value of the attribute to set
       
    46    * \param n4 the name of the attribute to set
       
    47    * \param v4 the value of the attribute to set
       
    48    * \param n5 the name of the attribute to set
       
    49    * \param v5 the value of the attribute to set
       
    50    * \param n6 the name of the attribute to set
       
    51    * \param v6 the value of the attribute to set
       
    52    * \param n7 the name of the attribute to set
       
    53    * \param v7 the value of the attribute to set
       
    54    *
       
    55    * All the attributes specified in this method should exist
       
    56    * in the requested mac.
       
    57    */
       
    58   void SetType (std::string type,
       
    59                 std::string n0 = "", const AttributeValue &v0 = EmptyAttributeValue (),
       
    60                 std::string n1 = "", const AttributeValue &v1 = EmptyAttributeValue (),
       
    61                 std::string n2 = "", const AttributeValue &v2 = EmptyAttributeValue (),
       
    62                 std::string n3 = "", const AttributeValue &v3 = EmptyAttributeValue (),
       
    63                 std::string n4 = "", const AttributeValue &v4 = EmptyAttributeValue (),
       
    64                 std::string n5 = "", const AttributeValue &v5 = EmptyAttributeValue (),
       
    65                 std::string n6 = "", const AttributeValue &v6 = EmptyAttributeValue (),
       
    66                 std::string n7 = "", const AttributeValue &v7 = EmptyAttributeValue ());
       
    67   /**
       
    68    * \param type the type of ns3::WifiMac to create.
       
    69    * \param n0 the name of the attribute to set
       
    70    * \param v0 the value of the attribute to set
       
    71    * \param n1 the name of the attribute to set
       
    72    * \param v1 the value of the attribute to set
       
    73    * \param n2 the name of the attribute to set
       
    74    * \param v2 the value of the attribute to set
       
    75    * \param n3 the name of the attribute to set
       
    76    */
       
    77   void SetDcaParameters (std::string n0 = "", const AttributeValue &v0 = EmptyAttributeValue (),
       
    78                          std::string n1 = "", const AttributeValue &v1 = EmptyAttributeValue (),
       
    79                          std::string n2 = "", const AttributeValue &v2 = EmptyAttributeValue (),
       
    80                          std::string n3 = "", const AttributeValue &v3 = EmptyAttributeValue ());
       
    81 private:
       
    82   /**
       
    83    * \returns a newly-created MAC object.
       
    84    *
       
    85    * This method implements the pure virtual method defined in \ref ns3::WifiMacHelper.
       
    86    */
       
    87   virtual Ptr<WifiMac> Create (void) const;
       
    88 
       
    89   ObjectFactory m_mac;
       
    90   ObjectFactory m_queue;
       
    91 };
       
    92 
       
    93 } //namespace ns3
       
    94 
       
    95 #endif /* NQOS_WIFI_MAC_HELPER_H */