A Discrete-Event Network Simulator
API
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. More...
 
typedef container_type::const_iterator const_iterator
 stl-style Const iterator type. More...
 
typedef std::list< value_typecontainer_type
 Internal container type. More...
 
typedef std::invoke_result_t< decltype(&A::Get), A > item_type
 Item type of container returned by Get. More...
 
typedef container_type::iterator iterator
 stl-style Non-const iterator type. More...
 
typedef AttributeContainerValue::const_iterator Iterator
 NS3 style iterator type. More...
 
typedef C< item_typeresult_type
 Type of container returned. More...
 
typedef container_type::size_type size_type
 Size type for container. More...
 
typedef Ptr< A > value_type
 Type actually stored within the container. More...
 

Public Member Functions

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

Private Member Functions

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

Private Attributes

container_type m_container
 Internal container. More...
 

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 52 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 56 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 62 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 60 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 72 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 64 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 68 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 74 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 66 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 58 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 384 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 390 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 397 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 404 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 509 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 530 of file attribute-container.h.

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

+ 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

STL-style const beginning of container.

Returns
Const iterator pointing to first item in container.

Definition at line 544 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 411 of file attribute-container.h.

◆ 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 
)
private

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 559 of file attribute-container.h.

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

+ 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 420 of file attribute-container.h.

Referenced by AttributeContainerSerializationTestCase::DoRun().

+ 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 516 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 537 of file attribute-container.h.

Referenced by ns3::AttributeContainerValue< A, Sep, C >::AttributeContainerValue(), grid.TimelinesRenderer::draw_events(), and grid.TimelinesRenderer::draw_ranges().

+ 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

STL-style const end of container.

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

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

Referenced by grid.TimelinesRenderer::draw_events(), and grid.TimelinesRenderer::draw_ranges().

+ Here is the caller graph for this function:

◆ Get()

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

Return a container of items.

Returns
Container of items.

Definition at line 470 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 483 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

NS3-style Number of items.

Returns
Number of items in container.

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

Referenced by AttributeContainerTestCase::DoRun(), and AttributeContainerSerializationTestCase::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 452 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 494 of file attribute-container.h.

◆ size()

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

STL-style number of items in container.

Returns
number of items in container.

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

Referenced by AttributeContainerSetGetTestCase::DoRun().

+ Here is the caller graph for this function:

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 191 of file attribute-container.h.


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