38template <
typename T,
typename U>
50template <
typename T,
typename U,
typename INDEX>
52 INDEX (T::*getN)() const);
58template <
typename T,
typename U,
typename INDEX>
60 Ptr<U> (T::*get)(INDEX) const);
68template <
typename T,
typename U>
75 bool DoGetN(
const ObjectBase*
object, std::size_t* n)
const override
77 const T* obj =
dynamic_cast<const T*
>(
object);
82 *n = (obj->*m_memberVector).size();
88 std::size_t* index)
const override
90 const T* obj =
static_cast<const T*
>(
object);
91 auto begin = (obj->*m_memberVector).begin();
92 auto end = (obj->*m_memberVector).end();
94 for (
auto j = begin; j != end; j++, k++)
109 U T::* m_memberVector;
111 }* spec =
new MemberStdContainer();
113 spec->m_memberVector = memberVector;
118Ptr<const AttributeChecker>
124template <
typename T,
typename U,
typename INDEX>
125Ptr<const AttributeAccessor>
131template <
typename T,
typename U,
typename INDEX>
132Ptr<const AttributeAccessor>
ns3::AttributeValue, ns3::AttributeAccessor and ns3::AttributeChecker declarations.
Anchor the ns-3 type and attribute system.
AttributeAccessor implementation for ObjectPtrContainerValue.
Container for a set of ns3::Object pointers.
Smart pointer class similar to boost::intrusive_ptr.
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file,...
ObjectPtrContainerValue ObjectMapValue
ObjectMapValue is an alias for ObjectPtrContainerValue.
Ptr< const AttributeAccessor > MakeObjectMapAccessor(U T::*memberVariable)
MakeAccessorHelper implementation for ObjectVector.
Ptr< const AttributeChecker > MakeObjectMapChecker()
Ptr< const AttributeAccessor > MakeObjectPtrContainerAccessor(Ptr< U >(T::*get)(INDEX) const, INDEX(T::*getN)() const)
Create an AttributeAccessor using a container class indexed get method.
Ptr< const AttributeChecker > MakeObjectPtrContainerChecker()
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::ObjectPtrContainerValue attribute value declarations and template implementations.
ns3::Object class declaration, which is the root of the Object hierarchy and Aggregation.
ns3::Ptr smart pointer declaration and implementation.