A Discrete-Event Network Simulator
API
capability-information.cc
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2006 INRIA
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation;
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program; if not, write to the Free Software
15  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16  *
17  * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
18  */
19 
20 #include "capability-information.h"
21 
22 namespace ns3
23 {
24 
26  : m_capability(0)
27 {
28 }
29 
30 void
32 {
33  Set(0);
34  Clear(1);
35 }
36 
37 void
39 {
40  Clear(0);
41  Set(1);
42 }
43 
44 void
46 {
47  if (shortPreamble)
48  {
49  Set(5);
50  }
51 }
52 
53 void
55 {
56  if (shortSlotTime)
57  {
58  Set(10);
59  }
60 }
61 
62 void
64 {
65  Set(2);
66 }
67 
68 bool
70 {
71  return Is(0);
72 }
73 
74 bool
76 {
77  return Is(1);
78 }
79 
80 bool
82 {
83  return Is(5);
84 }
85 
86 bool
88 {
89  return Is(10);
90 }
91 
92 bool
94 {
95  return Is(2);
96 }
97 
98 void
100 {
101  uint32_t mask = 1 << n;
102  m_capability |= mask;
103 }
104 
105 void
107 {
108  uint32_t mask = 1 << n;
109  m_capability &= ~mask;
110 }
111 
112 bool
114 {
115  uint32_t mask = 1 << n;
116  return (m_capability & mask) == mask;
117 }
118 
119 uint32_t
121 {
122  return 2;
123 }
124 
127 {
128  start.WriteHtolsbU16(m_capability);
129  return start;
130 }
131 
134 {
135  m_capability = start.ReadLsbtohU16();
136  return start;
137 }
138 
139 } // namespace ns3
iterator in a Buffer instance
Definition: buffer.h:100
void SetEss()
Set the Extended Service Set (ESS) bit in the capability information field.
bool IsShortSlotTime() const
Check if the short slot time in the capability information field is set to 1.
uint32_t GetSerializedSize() const
Return the serialized size of capability information.
void SetCfPollable()
Set the CF-Pollable bit in the capability information field.
Buffer::Iterator Serialize(Buffer::Iterator start) const
Serialize capability information to the given buffer.
void Set(uint8_t n)
Set bit n to 1.
void SetShortSlotTime(bool shortSlotTime)
Set the short slot time bit in the capability information field.
bool IsEss() const
Check if the Extended Service Set (ESS) bit in the capability information field is set to 1.
bool IsIbss() const
Check if the Independent BSS (IBSS) bit in the capability information field is set to 1.
void Clear(uint8_t n)
Set bit n to 0.
void SetShortPreamble(bool shortPreamble)
Set the short preamble bit in the capability information field.
bool Is(uint8_t n) const
Check if bit n is set to 1.
void SetIbss()
Set the Independent BSS (IBSS) bit in the capability information field.
Buffer::Iterator Deserialize(Buffer::Iterator start)
Deserialize capability information from the given buffer.
bool IsCfPollable() const
Check if the CF-Pollable bit in the capability information field is set to 1.
bool IsShortPreamble() const
Check if the short preamble bit in the capability information field is set to 1.
Every class exported by the ns3 library is enclosed in the ns3 namespace.