A container for one type of attribute. More...
#include "attribute-container.h"
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_type > | container_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_type > | result_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< AttributeValue > | Copy () 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. | |
SimpleRefCount & | operator= (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. | |
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
.
A | AttributeValue type to be contained. |
Sep | Character separator between elements for parsing. |
C | Possibly templated container class returned by Get. |
Definition at line 49 of file attribute-container.h.
typedef A ns3::AttributeContainerValue< A, Sep, C >::attribute_type |
AttributeValue (element) type.
Definition at line 53 of file attribute-container.h.
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.
typedef std::list<value_type> ns3::AttributeContainerValue< A, Sep, C >::container_type |
Internal container type.
Definition at line 57 of file attribute-container.h.
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.
typedef AttributeContainerValue::const_iterator ns3::AttributeContainerValue< A, Sep, C >::Iterator |
NS3 style iterator type.
Definition at line 65 of file attribute-container.h.
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.
typedef C<item_type> ns3::AttributeContainerValue< A, Sep, C >::result_type |
Type of container returned.
Definition at line 71 of file attribute-container.h.
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.
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.
ns3::AttributeContainerValue< A, Sep, C >::AttributeContainerValue | ( | ) |
Default constructor.
Definition at line 401 of file attribute-container.h.
ns3::AttributeContainerValue< A, Sep, C >::AttributeContainerValue | ( | const CONTAINER & | c | ) |
Construct from another container.
CONTAINER | [deduced] type of container passed for initialization. |
c | Instance of CONTAINER with which to initialize AttributeContainerValue. |
Definition at line 407 of file attribute-container.h.
ns3::AttributeContainerValue< A, Sep, C >::AttributeContainerValue | ( | const ITER | begin, |
const ITER | end ) |
Construct from iterators.
ITER | [deduced] type of iterator. |
[in] | begin | Iterator that points to first initialization item. |
[in] | end | Iterator 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().
|
override |
Destructor.
Definition at line 421 of file attribute-container.h.
AttributeContainerValue< A, Sep, C >::Iterator ns3::AttributeContainerValue< A, Sep, C >::Begin | ( | ) |
NS3-style beginning of container.
Definition at line 526 of file attribute-container.h.
Referenced by AttributeContainerTestCase::DoRun().
AttributeContainerValue< A, Sep, C >::iterator ns3::AttributeContainerValue< A, Sep, C >::begin | ( | ) |
STL-style beginning of container.
Definition at line 547 of file attribute-container.h.
Referenced by ns3::AttributeContainerValue< A, Sep, C >::AttributeContainerValue().
AttributeContainerValue< A, Sep, C >::const_iterator ns3::AttributeContainerValue< A, Sep, C >::begin | ( | ) | const |
STL-style const beginning of container.
Definition at line 561 of file attribute-container.h.
|
overridevirtual |
Implements ns3::AttributeValue.
Definition at line 428 of file attribute-container.h.
References ns3::Create().
|
inlineprivate |
The internal container is cleared before values are copied using the push_back method.
ITER | [deduced] iterator type |
[in] | begin | Points to first item to copy |
[in] | end | Points to one after last item to copy |
Definition at line 576 of file attribute-container.h.
References ns3::Create().
Referenced by ns3::AttributeContainerValue< A, Sep, C >::AttributeContainerValue().
|
overridevirtual |
[in] | value | A string representation of the value |
[in] | checker | A pointer to the checker associated to the attribute. |
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().
AttributeContainerValue< A, Sep, C >::Iterator ns3::AttributeContainerValue< A, Sep, C >::End | ( | ) |
NS3-style ending of container.
Definition at line 533 of file attribute-container.h.
Referenced by AttributeContainerTestCase::DoRun().
AttributeContainerValue< A, Sep, C >::iterator ns3::AttributeContainerValue< A, Sep, C >::end | ( | ) |
STL-style end of container.
Definition at line 554 of file attribute-container.h.
Referenced by ns3::AttributeContainerValue< A, Sep, C >::AttributeContainerValue().
AttributeContainerValue< A, Sep, C >::const_iterator ns3::AttributeContainerValue< A, Sep, C >::end | ( | ) | const |
STL-style const end of container.
Definition at line 568 of file attribute-container.h.
AttributeContainerValue< A, Sep, C >::result_type ns3::AttributeContainerValue< A, Sep, C >::Get | ( | ) | const |
Return a container of items.
Definition at line 487 of file attribute-container.h.
bool ns3::AttributeContainerValue< A, Sep, C >::GetAccessor | ( | T & | value | ) | const |
Set the given variable to the values stored by this TupleValue object.
T | [deduced] the type of the given variable (normally, the argument type of a set method or the type of a data member) |
value | the given variable |
Definition at line 500 of file attribute-container.h.
AttributeContainerValue< A, Sep, C >::size_type ns3::AttributeContainerValue< A, Sep, C >::GetN | ( | ) | const |
NS3-style Number of items.
Definition at line 519 of file attribute-container.h.
Referenced by AttributeContainerSerializationTestCase::DoRun(), and AttributeContainerTestCase::DoRun().
|
overridevirtual |
[in] | checker | The checker associated to the attribute |
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().
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
.
T | type of container. |
c | Container from which to copy items. |
Definition at line 511 of file attribute-container.h.
Referenced by WifiPrimaryChannelsTest::DoSetup(), and WifiFilsFrameTest::SetupDevice().
AttributeContainerValue< A, Sep, C >::size_type ns3::AttributeContainerValue< A, Sep, C >::size | ( | ) | const |
STL-style number of items in container.
Definition at line 540 of file attribute-container.h.
|
private |
Internal container.
Definition at line 188 of file attribute-container.h.