A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
ns3::AttributeContainerValue< A, Sep, C > Class Template Reference

A container for one type of attribute. More...

#include "attribute-container.h"

+ Inheritance diagram for ns3::AttributeContainerValue< A, Sep, C >:
+ Collaboration diagram for ns3::AttributeContainerValue< A, Sep, C >:

Public Types

typedef A attribute_type
 AttributeValue (element) type.
 
typedef container_type::const_iterator const_iterator
 stl-style Const iterator type.
 
typedef std::list< value_typecontainer_type
 Internal container type.
 
typedef std::invoke_result_t< decltype(&A::Get), A > item_type
 Item type of container returned by Get.
 
typedef AttributeContainerValue::const_iterator Iterator
 NS3 style iterator type.
 
typedef container_type::iterator iterator
 stl-style Non-const iterator type.
 
typedef C< item_typeresult_type
 Type of container returned.
 
typedef container_type::size_type size_type
 Size type for container.
 
typedef Ptr< A > value_type
 Type actually stored within the container.
 

Public Member Functions

 AttributeContainerValue ()
 Default constructor.
 
template<class CONTAINER >
 AttributeContainerValue (const CONTAINER &c)
 Construct from another container.
 
template<class ITER >
 AttributeContainerValue (const ITER begin, const ITER end)
 Construct from iterators.
 
 ~AttributeContainerValue () override
 Destructor.
 
Iterator Begin ()
 NS3-style beginning of container.
 
iterator begin ()
 STL-style beginning of container.
 
const_iterator begin () const
 STL-style const beginning of container.
 
Ptr< AttributeValueCopy () const override
 
bool DeserializeFromString (std::string value, Ptr< const AttributeChecker > checker) override
 
Iterator End ()
 NS3-style ending of container.
 
iterator end ()
 STL-style end of container.
 
const_iterator end () const
 STL-style const end of container.
 
result_type Get () const
 Return a container of items.
 
template<typename T >
bool GetAccessor (T &value) const
 Set the given variable to the values stored by this TupleValue object.
 
size_type GetN () const
 NS3-style Number of items.
 
std::string SerializeToString (Ptr< const AttributeChecker > checker) const override
 
template<class T >
void Set (const T &c)
 Copy items from container c.
 
size_type size () const
 STL-style number of items in container.
 
- Public Member Functions inherited from ns3::AttributeValue
 AttributeValue ()
 
virtual ~AttributeValue ()
 
- Public Member Functions inherited from ns3::SimpleRefCount< AttributeValue >
 SimpleRefCount ()
 Default constructor.
 
 SimpleRefCount (const SimpleRefCount &o)
 Copy constructor.
 
uint32_t GetReferenceCount () const
 Get the reference count of the object.
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 Assignment operator.
 
void Ref () const
 Increment the reference count.
 
void Unref () const
 Decrement the reference count.
 

Private Member Functions

template<class ITER >
Ptr< AttributeContainerValue< A, Sep, C > > CopyFrom (const ITER begin, const ITER end)
 Copy items from begin to end.
 

Private Attributes

container_type m_container
 Internal container.
 

Detailed Description

template<class A, char Sep = ',', template< class... > class C = std::list>
class ns3::AttributeContainerValue< A, Sep, C >

A container for one type of attribute.

The container uses A to parse items into elements. Internally the container is always a list but an instance can return the items in a container specified by C.

Template Parameters
AAttributeValue type to be contained.
SepCharacter separator between elements for parsing.
CPossibly templated container class returned by Get.

Definition at line 49 of file attribute-container.h.

Member Typedef Documentation

◆ attribute_type

template<class A , char Sep = ',', template< class... > class C = std::list>
typedef A ns3::AttributeContainerValue< A, Sep, C >::attribute_type

AttributeValue (element) type.

Definition at line 53 of file attribute-container.h.

◆ const_iterator

template<class A , char Sep = ',', template< class... > class C = std::list>
typedef container_type::const_iterator ns3::AttributeContainerValue< A, Sep, C >::const_iterator

stl-style Const iterator type.

Definition at line 59 of file attribute-container.h.

◆ container_type

template<class A , char Sep = ',', template< class... > class C = std::list>
typedef std::list<value_type> ns3::AttributeContainerValue< A, Sep, C >::container_type

Internal container type.

Definition at line 57 of file attribute-container.h.

◆ item_type

template<class A , char Sep = ',', template< class... > class C = std::list>
typedef std::invoke_result_t<decltype(&A::Get), A> ns3::AttributeContainerValue< A, Sep, C >::item_type

Item type of container returned by Get.

Definition at line 69 of file attribute-container.h.

◆ Iterator

template<class A , char Sep = ',', template< class... > class C = std::list>
typedef AttributeContainerValue::const_iterator ns3::AttributeContainerValue< A, Sep, C >::Iterator

NS3 style iterator type.

Definition at line 65 of file attribute-container.h.

◆ iterator

template<class A , char Sep = ',', template< class... > class C = std::list>
typedef container_type::iterator ns3::AttributeContainerValue< A, Sep, C >::iterator

stl-style Non-const iterator type.

Definition at line 61 of file attribute-container.h.

◆ result_type

template<class A , char Sep = ',', template< class... > class C = std::list>
typedef C<item_type> ns3::AttributeContainerValue< A, Sep, C >::result_type

Type of container returned.

Definition at line 71 of file attribute-container.h.

◆ size_type

template<class A , char Sep = ',', template< class... > class C = std::list>
typedef container_type::size_type ns3::AttributeContainerValue< A, Sep, C >::size_type

Size type for container.

Definition at line 63 of file attribute-container.h.

◆ value_type

template<class A , char Sep = ',', template< class... > class C = std::list>
typedef Ptr<A> ns3::AttributeContainerValue< A, Sep, C >::value_type

Type actually stored within the container.

Definition at line 55 of file attribute-container.h.

Constructor & Destructor Documentation

◆ AttributeContainerValue() [1/3]

template<class A , char Sep, template< class... > class C>
ns3::AttributeContainerValue< A, Sep, C >::AttributeContainerValue ( )

Default constructor.

Definition at line 401 of file attribute-container.h.

◆ AttributeContainerValue() [2/3]

template<class A , char Sep, template< class... > class C>
template<class CONTAINER >
ns3::AttributeContainerValue< A, Sep, C >::AttributeContainerValue ( const CONTAINER & c)

Construct from another container.

Template Parameters
CONTAINER[deduced] type of container passed for initialization.
Parameters
cInstance of CONTAINER with which to initialize AttributeContainerValue.

Definition at line 407 of file attribute-container.h.

◆ AttributeContainerValue() [3/3]

template<class A , char Sep, template< class... > class C>
template<class ITER >
ns3::AttributeContainerValue< A, Sep, C >::AttributeContainerValue ( const ITER begin,
const ITER end )

Construct from iterators.

Template Parameters
ITER[deduced] type of iterator.
Parameters
[in]beginIterator that points to first initialization item.
[in]endIterator that points ones past last initialization item.

Definition at line 414 of file attribute-container.h.

References ns3::AttributeContainerValue< A, Sep, C >::begin(), ns3::AttributeContainerValue< A, Sep, C >::CopyFrom(), and ns3::AttributeContainerValue< A, Sep, C >::end().

+ Here is the call graph for this function:

◆ ~AttributeContainerValue()

template<class A , char Sep, template< class... > class C>
ns3::AttributeContainerValue< A, Sep, C >::~AttributeContainerValue ( )
override

Destructor.

Definition at line 421 of file attribute-container.h.

Member Function Documentation

◆ Begin()

template<class A , char Sep, template< class... > class C>
AttributeContainerValue< A, Sep, C >::Iterator ns3::AttributeContainerValue< A, Sep, C >::Begin ( )

NS3-style beginning of container.

Returns
Iterator pointing to first time in container.

Definition at line 526 of file attribute-container.h.

Referenced by AttributeContainerTestCase::DoRun().

+ Here is the caller graph for this function:

◆ begin() [1/2]

template<class A , char Sep, template< class... > class C>
AttributeContainerValue< A, Sep, C >::iterator ns3::AttributeContainerValue< A, Sep, C >::begin ( )

STL-style beginning of container.

Returns
Iterator pointing to first item in container.

Definition at line 547 of file attribute-container.h.

Referenced by ns3::AttributeContainerValue< A, Sep, C >::AttributeContainerValue().

+ Here is the caller graph for this function:

◆ begin() [2/2]

template<class A , char Sep, template< class... > class C>
AttributeContainerValue< A, Sep, C >::const_iterator ns3::AttributeContainerValue< A, Sep, C >::begin ( ) const

STL-style const beginning of container.

Returns
Const iterator pointing to first item in container.

Definition at line 561 of file attribute-container.h.

◆ Copy()

template<class A , char Sep, template< class... > class C>
Ptr< AttributeValue > ns3::AttributeContainerValue< A, Sep, C >::Copy ( ) const
overridevirtual
Returns
a deep copy of this class, wrapped into an Attribute object.

Implements ns3::AttributeValue.

Definition at line 428 of file attribute-container.h.

References ns3::Create().

+ Here is the call graph for this function:

◆ CopyFrom()

template<class A , char Sep, template< class... > class C>
template<class ITER >
Ptr< AttributeContainerValue< A, Sep, C > > ns3::AttributeContainerValue< A, Sep, C >::CopyFrom ( const ITER begin,
const ITER end )
inlineprivate

Copy items from begin to end.

The internal container is cleared before values are copied using the push_back method.

Template Parameters
ITER[deduced] iterator type
Parameters
[in]beginPoints to first item to copy
[in]endPoints to one after last item to copy
Returns
This object with items copied.

Definition at line 576 of file attribute-container.h.

References ns3::Create().

Referenced by ns3::AttributeContainerValue< A, Sep, C >::AttributeContainerValue().

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

◆ DeserializeFromString()

template<class A , char Sep, template< class... > class C>
bool ns3::AttributeContainerValue< A, Sep, C >::DeserializeFromString ( std::string value,
Ptr< const AttributeChecker > checker )
overridevirtual
Parameters
[in]valueA string representation of the value
[in]checkerA pointer to the checker associated to the attribute.
Returns
true if the input string was correctly-formatted and could be successfully deserialized, false otherwise.

Upon return of this function, this AttributeValue instance contains the deserialized value. In most cases, this method will not make any use of the checker argument. However, in a very limited set of cases, the checker argument is needed to perform proper serialization. A nice example of code which needs it is the EnumValue::SerializeToString code.

Implements ns3::AttributeValue.

Definition at line 437 of file attribute-container.h.

References ns3::DynamicCast().

Referenced by AttributeContainerSerializationTestCase::DoRun().

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

◆ End()

template<class A , char Sep, template< class... > class C>
AttributeContainerValue< A, Sep, C >::Iterator ns3::AttributeContainerValue< A, Sep, C >::End ( )

NS3-style ending of container.

Returns
Iterator pointing one past last item of container.

Definition at line 533 of file attribute-container.h.

Referenced by AttributeContainerTestCase::DoRun().

+ Here is the caller graph for this function:

◆ end() [1/2]

template<class A , char Sep, template< class... > class C>
AttributeContainerValue< A, Sep, C >::iterator ns3::AttributeContainerValue< A, Sep, C >::end ( )

STL-style end of container.

Returns
Iterator pointing to one past last item in container.

Definition at line 554 of file attribute-container.h.

Referenced by ns3::AttributeContainerValue< A, Sep, C >::AttributeContainerValue().

+ Here is the caller graph for this function:

◆ end() [2/2]

template<class A , char Sep, template< class... > class C>
AttributeContainerValue< A, Sep, C >::const_iterator ns3::AttributeContainerValue< A, Sep, C >::end ( ) const

STL-style const end of container.

Returns
Const iterator pointing to one past last item in container.

Definition at line 568 of file attribute-container.h.

◆ Get()

template<class A , char Sep, template< class... > class C>
AttributeContainerValue< A, Sep, C >::result_type ns3::AttributeContainerValue< A, Sep, C >::Get ( ) const

Return a container of items.

Returns
Container of items.

Definition at line 487 of file attribute-container.h.

◆ GetAccessor()

template<class A , char Sep, template< class... > class C>
template<typename T >
bool ns3::AttributeContainerValue< A, Sep, C >::GetAccessor ( T & value) const

Set the given variable to the values stored by this TupleValue object.

Template Parameters
T[deduced] the type of the given variable (normally, the argument type of a set method or the type of a data member)
Parameters
valuethe given variable
Returns
true if the given variable was set

Definition at line 500 of file attribute-container.h.

◆ GetN()

template<class A , char Sep, template< class... > class C>
AttributeContainerValue< A, Sep, C >::size_type ns3::AttributeContainerValue< A, Sep, C >::GetN ( ) const

NS3-style Number of items.

Returns
Number of items in container.

Definition at line 519 of file attribute-container.h.

Referenced by AttributeContainerSerializationTestCase::DoRun(), and AttributeContainerTestCase::DoRun().

+ Here is the caller graph for this function:

◆ SerializeToString()

template<class A , char Sep, template< class... > class C>
std::string ns3::AttributeContainerValue< A, Sep, C >::SerializeToString ( Ptr< const AttributeChecker > checker) const
overridevirtual
Parameters
[in]checkerThe checker associated to the attribute
Returns
A string representation of this value.

In most cases, this method will not make any use of the checker argument. However, in a very limited set of cases, the checker argument is needed to perform proper serialization. A nice example of code which needs it is the EnumValue::SerializeToString code.

Implements ns3::AttributeValue.

Definition at line 469 of file attribute-container.h.

Referenced by AttributeContainerSerializationTestCase::DoRun().

+ Here is the caller graph for this function:

◆ Set()

template<class A , char Sep, template< class... > class C>
template<class T >
void ns3::AttributeContainerValue< A, Sep, C >::Set ( const T & c)

Copy items from container c.

This method assumes c has stl-style begin and end methods. The AttributeContainerValue value is cleared before copying from c.

Template Parameters
Ttype of container.
Parameters
cContainer from which to copy items.

Definition at line 511 of file attribute-container.h.

Referenced by WifiPrimaryChannelsTest::DoSetup(), and WifiFilsFrameTest::SetupDevice().

+ Here is the caller graph for this function:

◆ size()

template<class A , char Sep, template< class... > class C>
AttributeContainerValue< A, Sep, C >::size_type ns3::AttributeContainerValue< A, Sep, C >::size ( ) const

STL-style number of items in container.

Returns
number of items in container.

Definition at line 540 of file attribute-container.h.

Member Data Documentation

◆ m_container

template<class A , char Sep = ',', template< class... > class C = std::list>
container_type ns3::AttributeContainerValue< A, Sep, C >::m_container
private

Internal container.

Definition at line 188 of file attribute-container.h.


The documentation for this class was generated from the following file: