A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
non-inheritance.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2023 Universita' degli Studi di Napoli Federico II
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: Stefano Avallone <stavallo@unina.it>
18 */
19
20#ifndef NON_INHERITANCE_H
21#define NON_INHERITANCE_H
22
24
25#include <set>
26
27namespace ns3
28{
29
30/**
31 * \ingroup wifi
32 *
33 * The IEEE 802.11 Non-Inheritance Information Element
34 */
36{
37 public:
38 WifiInformationElementId ElementId() const override;
40 void Print(std::ostream& os) const override;
41
42 /**
43 * Add the Information Element specified by the given Element ID and Element ID Extension.
44 *
45 * \param elemId the given Element ID
46 * \param elemIdExt the given Element ID Extension
47 */
48 void Add(uint8_t elemId, uint8_t elemIdExt = 0);
49
50 /**
51 * \param elemId the given Element ID
52 * \param elemIdExt the given Element ID Extension
53 * \return whether the Information Element specified by the given Element ID and
54 * Element ID Extension is present
55 */
56 bool IsPresent(uint8_t elemId, uint8_t elemIdExt = 0) const;
57
58 std::set<uint8_t> m_elemIdList; //!< list of unique Element ID values (in increasing order)
59 std::set<uint8_t> m_elemIdExtList; //!< list of unique Element ID Extension values
60
61 private:
62 uint16_t GetInformationFieldSize() const override;
63 void SerializeInformationField(Buffer::Iterator start) const override;
64 uint16_t DeserializeInformationField(Buffer::Iterator start, uint16_t length) override;
65};
66
67} // namespace ns3
68
69#endif /* NON_INHERITANCE_H */
iterator in a Buffer instance
Definition: buffer.h:100
The IEEE 802.11 Non-Inheritance Information Element.
uint16_t DeserializeInformationField(Buffer::Iterator start, uint16_t length) override
Deserialize information (i.e., the body of the IE, not including the Element ID and length octets)
std::set< uint8_t > m_elemIdList
list of unique Element ID values (in increasing order)
bool IsPresent(uint8_t elemId, uint8_t elemIdExt=0) const
void Add(uint8_t elemId, uint8_t elemIdExt=0)
Add the Information Element specified by the given Element ID and Element ID Extension.
void Print(std::ostream &os) const override
Generate human-readable form of IE.
uint16_t GetInformationFieldSize() const override
Length of serialized information (i.e., the length of the body of the IE, not including the Element I...
void SerializeInformationField(Buffer::Iterator start) const override
Serialize information (i.e., the body of the IE, not including the Element ID and length octets)
WifiInformationElementId ElementIdExt() const override
Get the wifi information element ID extension.
WifiInformationElementId ElementId() const override
Get the wifi information element ID.
std::set< uint8_t > m_elemIdExtList
list of unique Element ID Extension values
Information element, as defined in 802.11-2007 standard.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
uint8_t WifiInformationElementId
This type is used to represent an Information Element ID.