A Discrete-Event Network Simulator
API
capability-information.cc
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2006 INRIA
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: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
19  */
20 
21 #include "capability-information.h"
22 
23 namespace ns3 {
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
113 CapabilityInformation::Is (uint8_t n) const
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:99
void SetIbss(void)
Set the Independent BSS (IBSS) bit in the capability information field.
bool IsShortPreamble(void) const
Check if the short preamble bit in the capability information field is set to 1.
void SetCfPollable(void)
Set the CF-Pollable bit in the capability information field.
bool IsCfPollable(void) const
Check if the CF-Pollable bit in the capability information field is set to 1.
Buffer::Iterator Serialize(Buffer::Iterator start) const
Serialize capability information to the given buffer.
bool IsShortSlotTime(void) const
Check if the short slot time in the capability information field is set to 1.
bool IsIbss(void) const
Check if the Independent BSS (IBSS) bit in the capability information field is set to 1.
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.
void Clear(uint8_t n)
Set bit n to 0.
void SetShortPreamble(bool shortPreamble)
Set the short preamble bit in the capability information field.
void SetEss(void)
Set the Extended Service Set (ESS) bit in the capability information field.
bool Is(uint8_t n) const
Check if bit n is set to 1.
bool IsEss(void) const
Check if the Extended Service Set (ESS) bit in the capability information field is set to 1.
Buffer::Iterator Deserialize(Buffer::Iterator start)
Deserialize capability information from the given buffer.
uint32_t GetSerializedSize(void) const
Return the serialized size of capability information.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
def start()
Definition: core.py:1853