1 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2018  Sébastien Deronne
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: Sébastien Deronne <sebastien.deronne@gmail.com>
19  */
20 
21 #include "ns3/log.h"
22 #include "ns3/boolean.h"
23 #include "ns3/uinteger.h"
24 #include "ht-configuration.h"
25 
26 namespace ns3 {
27 
28 NS_LOG_COMPONENT_DEFINE ("HtConfiguration");
29 
30 NS_OBJECT_ENSURE_REGISTERED (HtConfiguration);
31 
HtConfiguration()32 HtConfiguration::HtConfiguration ()
33 {
34   NS_LOG_FUNCTION (this);
35 }
36 
~HtConfiguration()37 HtConfiguration::~HtConfiguration ()
38 {
39   NS_LOG_FUNCTION (this);
40 }
41 
42 TypeId
GetTypeId(void)43 HtConfiguration::GetTypeId (void)
44 {
45   static ns3::TypeId tid = ns3::TypeId ("ns3::HtConfiguration")
46     .SetParent<Object> ()
47     .SetGroupName ("Wifi")
48     .AddConstructor<HtConfiguration> ()
49     .AddAttribute ("ShortGuardIntervalSupported",
50                    "Whether or not short guard interval is supported.",
51                    BooleanValue (false),
52                    MakeBooleanAccessor (&HtConfiguration::GetShortGuardIntervalSupported,
53                                         &HtConfiguration::SetShortGuardIntervalSupported),
54                    MakeBooleanChecker ())
55     .AddAttribute ("LdpcSupported",
56                    "Whether or not LDPC coding is supported.",
57                    BooleanValue (false),
58                    MakeBooleanAccessor (&HtConfiguration::GetLdpcSupported,
59                                         &HtConfiguration::SetLdpcSupported),
60                    MakeBooleanChecker ())
61     ;
62     return tid;
63 }
64 
65 void
SetShortGuardIntervalSupported(bool enable)66 HtConfiguration::SetShortGuardIntervalSupported (bool enable)
67 {
68   NS_LOG_FUNCTION (this << enable);
69   m_sgiSupported = enable;
70 }
71 
72 bool
GetShortGuardIntervalSupported(void) const73 HtConfiguration::GetShortGuardIntervalSupported (void) const
74 {
75   return m_sgiSupported;
76 }
77 
78 void
SetLdpcSupported(bool enable)79 HtConfiguration::SetLdpcSupported (bool enable)
80 {
81   NS_LOG_FUNCTION (this << enable);
82   m_ldpcSupported = enable;
83 }
84 
85 bool
GetLdpcSupported(void) const86 HtConfiguration::GetLdpcSupported (void) const
87 {
88   return m_ldpcSupported;
89 }
90 
91 } //namespace ns3
92