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 bool
64 {
65  return Is (0);
66 }
67 
68 bool
70 {
71  return Is (1);
72 }
73 
74 bool
76 {
77  return Is (5);
78 }
79 
80 bool
82 {
83  return Is (10);
84 }
85 
86 void
88 {
89  uint32_t mask = 1 << n;
90  m_capability |= mask;
91 }
92 
93 void
95 {
96  uint32_t mask = 1 << n;
97  m_capability &= ~mask;
98 }
99 
100 bool
101 CapabilityInformation::Is (uint8_t n) const
102 {
103  uint32_t mask = 1 << n;
104  return (m_capability & mask) == mask;
105 }
106 
107 uint32_t
109 {
110  return 2;
111 }
112 
115 {
117  return start;
118 }
119 
122 {
123  m_capability = start.ReadLsbtohU16 ();
124  return start;
125 }
126 
127 } //namespace ns3
bool IsIbss(void) const
Check if the Independent BSS (IBSS) bit in the capability information field is set to 1...
void SetIbss(void)
Set the Independent BSS (IBSS) bit in the capability information field.
Buffer::Iterator Deserialize(Buffer::Iterator start)
Deserialize capability information from the given buffer.
def start()
Definition: core.py:1790
Buffer::Iterator Serialize(Buffer::Iterator start) const
Serialize capability information to the given buffer.
iterator in a Buffer instance
Definition: buffer.h:98
bool Is(uint8_t n) const
Check if bit n is set to 1.
void SetEss(void)
Set the Extended Service Set (ESS) bit in the capability information field.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
void SetShortPreamble(bool shortPreamble)
Set the short preamble bit in the capability information field.
void Set(uint8_t n)
Set bit n to 1.
void WriteHtolsbU16(uint16_t data)
Definition: buffer.cc:913
bool IsShortSlotTime(void) const
Check if the short slot time in the capability information field 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...
uint32_t GetSerializedSize(void) const
Return the serialized size of capability information.
uint16_t ReadLsbtohU16(void)
Definition: buffer.cc:1068
void Clear(uint8_t n)
Set bit n to 0.
void SetShortSlotTime(bool shortSlotTime)
Set the short slot time 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.