A Discrete-Event Network Simulator
API
ns3::internal Namespace Reference

Namespace for implementation details. More...

Classes

class  AttributeContainerChecker
 
struct  GetStoredIe
 
struct  GetStoredIe< std::optional< T > >
 
struct  GetStoredIe< std::vector< T > >
 
class  ObjectPtrContainerChecker
 ObjectPtrContainerChecker implementation class. More...
 
class  PairChecker
 Internal checker class templated to each AttributeChecker for each entry in the pair. More...
 
class  PointerChecker
 PointerChecker implementation. More...
 
class  TupleChecker
 Internal checker class templated to each AttributeChecker for each entry in the tuple. More...
 
struct  TupleHelper
 Helper class defining static methods for MakeTupleChecker and MakeTupleAccessor that are called when user specifies the list of AttributeValue types included in a TupleValue type. More...
 
struct  TupleHelper< std::tuple< Args... > >
 Helper class defining static methods for MakeTupleValue, MakeTupleChecker and MakeTupleAccessor that are called when user provides a std::tuple of the AttributeValue types included in a TupleValue type. More...
 

Typedefs

template<class T >
using GetStoredIeT = typename GetStoredIe< T >::type
 

Functions

template<typename T , typename Derived >
void DoCopyIeFromContainingFrame (std::optional< T > &elem, const Derived &frame)
 
template<typename T , typename Derived >
void DoCopyIeFromContainingFrame (std::vector< T > &elems, const Derived &frame)
 
template<typename T >
uint16_t DoGetSerializedSize (const std::optional< T > &elem)
 
template<typename T >
uint16_t DoGetSerializedSize (const std::vector< T > &elems)
 
template<typename T >
void DoPrint (const std::optional< T > &elem, std::ostream &os)
 
template<typename T >
void DoPrint (const std::vector< T > &elems, std::ostream &os)
 
template<typename T >
Buffer::Iterator DoSerialize (const std::optional< T > &elem, Buffer::Iterator start)
 
template<typename T >
Buffer::Iterator DoSerialize (const std::vector< T > &elems, Buffer::Iterator start)
 
Ptr< const AttributeCheckerMakeDoubleChecker (double min, double max, std::string name)
 Make a Double attribute checker with embedded numeric type name. More...
 
Ptr< const AttributeCheckerMakeIntegerChecker (int64_t min, int64_t max, std::string name)
 Make an Integer attribute checker with embedded numeric type name. More...
 
Ptr< const AttributeCheckerMakeUintegerChecker (uint64_t min, uint64_t max, std::string name)
 Make an Uinteger attribute checker with embedded numeric type name. More...
 
template<typename T , typename Derived >
std::optional< std::pair< uint8_t, uint8_t > > MustBeListedInNonInheritance (const std::optional< T > &elem, const Derived &frame)
 
template<typename T , typename Derived >
std::optional< std::pair< uint8_t, uint8_t > > MustBeListedInNonInheritance (const std::vector< T > &elems, const Derived &frame)
 
template<typename T , typename Derived >
bool MustBeSerializedInPerStaProfile (const std::optional< T > &elem, const Derived &frame)
 
template<typename T , typename Derived >
bool MustBeSerializedInPerStaProfile (const std::vector< T > &elems, const Derived &frame)
 
template<typename T >
void RemoveIfNotInherited (std::optional< T > &elem, const NonInheritance &nonInheritance)
 
template<typename T >
void RemoveIfNotInherited (std::vector< T > &elem, const NonInheritance &nonInheritance)
 

Detailed Description

Namespace for implementation details.

Typedef Documentation

◆ GetStoredIeT

template<class T >
using ns3::internal::GetStoredIeT = typedef typename GetStoredIe<T>::type

Template Parameters
T[explicit] An Information Element type

Provides the type used to store Information Elements in the tuple held by WifiMgtHeader:

  • a mandatory Information Element of type T is stored as std::optional<T>
  • an optional Information Element of type T is stored as std::optional<T>
  • an Information Element of type T that can appear 0 or more times is stored as std::vector<T>

Definition at line 77 of file wifi-mgt-header.h.

Function Documentation

◆ DoCopyIeFromContainingFrame() [1/2]

template<typename T , typename Derived >
void ns3::internal::DoCopyIeFromContainingFrame ( std::optional< T > &  elem,
const Derived frame 
)
Template Parameters
T[deduced] the type of the given Information Element
Derived[deduced] the type of the containing management frame
Parameters
elemthe given Information Element
framethe containing management frame

Copy the given Information Element from the containing frame to the Per-STA Profile subelement of the Multi-Link Element, if the Information Element has been inherited (i.e., it is present outside the Multi-Link Element and not present in the Per-STA Profile subelement)

Definition at line 839 of file wifi-mgt-header.h.

Referenced by ns3::MgtHeaderInPerStaProfile< Derived, std::tuple< Elems... > >::CopyIesFromContainingFrame().

+ Here is the caller graph for this function:

◆ DoCopyIeFromContainingFrame() [2/2]

template<typename T , typename Derived >
void ns3::internal::DoCopyIeFromContainingFrame ( std::vector< T > &  elems,
const Derived frame 
)
Template Parameters
T[deduced] the type of the given vector of Information Elements
Derived[deduced] the type of the containing management frame
Parameters
elemsthe given vector of Information Elements
framethe containing management frame

Copy the given Information Element from the containing frame to the Per-STA Profile subelement of the Multi-Link Element, if the Information Element has been inherited (i.e., it is present outside the Multi-Link Element and not present in the Per-STA Profile subelement)

Definition at line 860 of file wifi-mgt-header.h.

◆ DoGetSerializedSize() [1/2]

template<typename T >
uint16_t ns3::internal::DoGetSerializedSize ( const std::optional< T > &  elem)
Template Parameters
T[deduced] the type of the Information Element
Parameters
elemthe optional Information Element
Returns
the serialized size of the Information Element, if present, or 0, otherwise

Definition at line 411 of file wifi-mgt-header.h.

Referenced by ns3::WifiMgtHeader< Derived, std::tuple< Elems... > >::GetSerializedSizeImpl(), and ns3::MgtHeaderInPerStaProfile< Derived, std::tuple< Elems... > >::GetSerializedSizeInPerStaProfileImpl().

+ Here is the caller graph for this function:

◆ DoGetSerializedSize() [2/2]

template<typename T >
uint16_t ns3::internal::DoGetSerializedSize ( const std::vector< T > &  elems)
Template Parameters
T[deduced] the type of the Information Elements
Parameters
elemsa vector of Information Elements
Returns
the serialized size of the Information Elements

Definition at line 423 of file wifi-mgt-header.h.

◆ DoPrint() [1/2]

template<typename T >
void ns3::internal::DoPrint ( const std::optional< T > &  elem,
std::ostream &  os 
)
Template Parameters
T[deduced] the type of the Information Element
Parameters
elemthe optional Information Element
osthe output stream

Definition at line 582 of file wifi-mgt-header.h.

Referenced by ns3::WifiMgtHeader< Derived, std::tuple< Elems... > >::PrintImpl().

+ Here is the caller graph for this function:

◆ DoPrint() [2/2]

template<typename T >
void ns3::internal::DoPrint ( const std::vector< T > &  elems,
std::ostream &  os 
)
Template Parameters
T[deduced] the type of the Information Elements
Parameters
elemsa vector of Information Elements
osthe output stream

Definition at line 597 of file wifi-mgt-header.h.

◆ DoSerialize() [1/2]

template<typename T >
Buffer::Iterator ns3::internal::DoSerialize ( const std::optional< T > &  elem,
Buffer::Iterator  start 
)
Template Parameters
T[deduced] the type of the Information Element
Parameters
elemthe optional Information Element
startthe buffer iterator pointing to where serialization starts
Returns
an iterator pointing to where serialization terminated

Definition at line 458 of file wifi-mgt-header.h.

References two-ray-to-three-gpp-ch-calibration::start.

Referenced by ns3::WifiMgtHeader< Derived, std::tuple< Elems... > >::SerializeImpl(), and ns3::MgtHeaderInPerStaProfile< Derived, std::tuple< Elems... > >::SerializeInPerStaProfileImpl().

+ Here is the caller graph for this function:

◆ DoSerialize() [2/2]

template<typename T >
Buffer::Iterator ns3::internal::DoSerialize ( const std::vector< T > &  elems,
Buffer::Iterator  start 
)
Template Parameters
T[deduced] the type of the Information Elements
Parameters
elemsa vector of Information Elements
startthe buffer iterator pointing to where serialization starts
Returns
an iterator pointing to where serialization terminated

Definition at line 471 of file wifi-mgt-header.h.

References two-ray-to-three-gpp-ch-calibration::start.

◆ MakeDoubleChecker()

Ptr< const AttributeChecker > ns3::internal::MakeDoubleChecker ( double  min,
double  max,
std::string  name 
)

Make a Double attribute checker with embedded numeric type name.

Parameters
[in]minThe minimum allowed value.
[in]maxThe maximum allowed value.
[in]nameThe original type name ("float", "double").
Returns
The AttributeChecker.

Definition at line 53 of file double.cc.

References ns3::Copy(), ns3::Create(), ns3::DoubleValue::Get(), max, min, NS_LOG_FUNCTION, and NS_LOG_FUNCTION_NOARGS.

Referenced by ns3::MakeDoubleChecker().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MakeIntegerChecker()

Ptr< const AttributeChecker > ns3::internal::MakeIntegerChecker ( int64_t  min,
int64_t  max,
std::string  name 
)

Make an Integer attribute checker with embedded numeric type name.

Parameters
[in]minThe minimum allowed value.
[in]maxThe maximum allowed value.
[in]nameThe original type name ("int8_t", "int16_t", etc.).
Returns
The AttributeChecker.

Definition at line 52 of file integer.cc.

References ns3::Copy(), ns3::Create(), ns3::IntegerValue::Get(), max, min, NS_LOG_FUNCTION, and NS_LOG_FUNCTION_NOARGS.

Referenced by ns3::MakeIntegerChecker().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MakeUintegerChecker()

Ptr< const AttributeChecker > ns3::internal::MakeUintegerChecker ( uint64_t  min,
uint64_t  max,
std::string  name 
)

Make an Uinteger attribute checker with embedded numeric type name.

Parameters
[in]minThe minimum allowed value.
[in]maxThe maximum allowed value.
[in]nameThe original type name ("uint8_t", "uint16_t", etc.).
Returns
The AttributeChecker.

Definition at line 52 of file uinteger.cc.

References ns3::Copy(), ns3::Create(), ns3::UintegerValue::Get(), max, min, NS_LOG_FUNCTION, and NS_LOG_FUNCTION_NOARGS.

Referenced by ns3::MakeUintegerChecker().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MustBeListedInNonInheritance() [1/2]

template<typename T , typename Derived >
std::optional<std::pair<uint8_t, uint8_t> > ns3::internal::MustBeListedInNonInheritance ( const std::optional< T > &  elem,
const Derived frame 
)
Template Parameters
T[deduced] the type of the given Information Element
Derived[deduced] the type of the containing management frame
Parameters
elemthe given Information Element
framethe containing management frame
Returns
a pair (Element ID, Element ID Extension) if the given Information Element shall be listed in the Non-Inheritance IE of the Per-STA Profile subelement of the Multi-Link Element included in the containing management frame

Definition at line 702 of file wifi-mgt-header.h.

Referenced by ns3::MgtHeaderInPerStaProfile< Derived, std::tuple< Elems... > >::GetSerializedSizeInPerStaProfileImpl(), and ns3::MgtHeaderInPerStaProfile< Derived, std::tuple< Elems... > >::SerializeInPerStaProfileImpl().

+ Here is the caller graph for this function:

◆ MustBeListedInNonInheritance() [2/2]

template<typename T , typename Derived >
std::optional<std::pair<uint8_t, uint8_t> > ns3::internal::MustBeListedInNonInheritance ( const std::vector< T > &  elems,
const Derived frame 
)
Template Parameters
T[deduced] the type of the given vector of Information Elements
Derived[deduced] the type of the containing management frame
Parameters
elemsthe given Information Elements
framethe containing management frame
Returns
a pair (Element ID, Element ID Extension) if the given Information Element shall be listed in the Non-Inheritance IE of the Per-STA Profile subelement of the Multi-Link Element included in the containing management frame

Definition at line 723 of file wifi-mgt-header.h.

◆ MustBeSerializedInPerStaProfile() [1/2]

template<typename T , typename Derived >
bool ns3::internal::MustBeSerializedInPerStaProfile ( const std::optional< T > &  elem,
const Derived frame 
)
Template Parameters
T[deduced] the type of the given Information Element
Derived[deduced] the type of the containing management frame
Parameters
elemthe given Information Element
framethe containing management frame
Returns
whether the given Information Element shall be serialized in a Per-STA Profile subelement of the Multi-Link Element included in the containing management frame

Definition at line 631 of file wifi-mgt-header.h.

Referenced by ns3::MgtHeaderInPerStaProfile< Derived, std::tuple< Elems... > >::GetSerializedSizeInPerStaProfileImpl(), and ns3::MgtHeaderInPerStaProfile< Derived, std::tuple< Elems... > >::SerializeInPerStaProfileImpl().

+ Here is the caller graph for this function:

◆ MustBeSerializedInPerStaProfile() [2/2]

template<typename T , typename Derived >
bool ns3::internal::MustBeSerializedInPerStaProfile ( const std::vector< T > &  elems,
const Derived frame 
)
Template Parameters
T[deduced] the type of the given vector of Information Elements
Derived[deduced] the type of the containing management frame
Parameters
elemsthe given vector of Information Elements
framethe containing management frame
Returns
whether the given Information Elements shall be serialized in a Per-STA Profile subelement of the Multi-Link Element included in the containing management frame

Definition at line 666 of file wifi-mgt-header.h.

◆ RemoveIfNotInherited() [1/2]

template<typename T >
void ns3::internal::RemoveIfNotInherited ( std::optional< T > &  elem,
const NonInheritance nonInheritance 
)
Template Parameters
T[deduced] the type of the given Information Element
Parameters
elemthe given Information Element
nonInheritancethe Non-Inheritance information element

Remove the given Information Element from this header, if it is present and is listed in the given Non-Inheritance element.

Definition at line 929 of file wifi-mgt-header.h.

References ns3::NonInheritance::IsPresent().

Referenced by ns3::MgtHeaderInPerStaProfile< Derived, std::tuple< Elems... > >::CopyIesFromContainingFrame().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ RemoveIfNotInherited() [2/2]

template<typename T >
void ns3::internal::RemoveIfNotInherited ( std::vector< T > &  elem,
const NonInheritance nonInheritance 
)
Template Parameters
T[deduced] the type of the given vector of Information Elements
Parameters
elemthe given Information Elements
nonInheritancethe Non-Inheritance information element

Remove the given Information Elements from this header, if they are present and are listed in the given Non-Inheritance element.

Definition at line 947 of file wifi-mgt-header.h.

References ns3::NonInheritance::IsPresent().

+ Here is the call graph for this function: