20 #ifndef OBJECT_PTR_CONTAINER_H 
   21 #define OBJECT_PTR_CONTAINER_H 
   49   typedef std::map<uint32_t, Ptr<Object> >::const_iterator 
Iterator;
 
   59   Iterator 
Begin (
void) 
const;
 
   65   Iterator 
End (
void) 
const;
 
   71   uint32_t 
GetN (
void) 
const;
 
  125 template <
typename T, 
typename U, 
typename INDEX>
 
  128                 INDEX (T::*getN)(
void) 
const);
 
  145 template <
typename T, 
typename U, 
typename INDEX>
 
  148                 Ptr<U> (T::*
get)(INDEX) 
const);
 
  160 template <
typename T>
 
  175 template <
typename T>
 
  180     return T::GetTypeId ();
 
  186     return "ns3::ObjectPtrContainerValue";
 
  192     return "ns3::Ptr< " + T::GetTypeId ().GetName () + 
" >";
 
  195     return ns3::Create<ObjectPtrContainerValue> ();
 
  200     if (src == 0 || dst == 0)
 
  243 template <
typename T, 
typename U, 
typename INDEX>
 
  246                 INDEX (T::*getN)(
void) 
const)
 
  250     virtual bool DoGetN (
const ObjectBase *
object, uint32_t *n)
 const {
 
  251       const T *obj = 
dynamic_cast<const T *
> (object);
 
  256       *n = (obj->*m_getN)();
 
  260       const T *obj = 
static_cast<const T *
> (object);
 
  262       return (obj->*m_get)(i);
 
  264     Ptr<U> (T::*m_get)(INDEX) 
const;
 
  265     INDEX (T::*m_getN)(void) 
const;
 
  266   } *spec = 
new MemberGetters ();
 
  272 template <
typename T, 
typename U, 
typename INDEX>
 
  273 Ptr<const AttributeAccessor>
 
  275                 Ptr<U> (T::*
get)(INDEX) 
const)
 
  280 template <
typename T>
 
  283   return Create<internal::ObjectPtrContainerChecker<T> > ();
 
ObjectPtrContainerChecker implementation class. 
 
virtual Ptr< AttributeValue > Copy(void) const 
Get a copy of this container. 
 
ObjectPtrContainerValue()
Default constructor. 
 
Represent the type of an attribute. 
 
virtual bool HasSetter(void) const 
 
virtual bool Check(const AttributeValue &value) const 
 
virtual Ptr< Object > DoGet(const ObjectBase *object, uint32_t i, uint32_t *index) const =0
Get an instance from the container, identified by index. 
 
ns3::Ptr smart pointer declaration and implementation. 
 
Hold a value for an Attribute. 
 
virtual std::string GetUnderlyingTypeInformation(void) const 
 
Anchor the ns-3 type and attribute system. 
 
virtual TypeId GetItemTypeId(void) const =0
Get the TypeId of the container class type. 
 
std::map< uint32_t, Ptr< Object > >::const_iterator Iterator
Iterator type for traversing this container. 
 
virtual bool HasUnderlyingTypeInformation(void) const 
 
Ptr< Object > Get(uint32_t i) const 
Get a specific Object. 
 
virtual bool Set(ObjectBase *object, const AttributeValue &value) const 
 
Ptr< const AttributeAccessor > MakeObjectPtrContainerAccessor(Ptr< U >(T::*get)(INDEX) const, INDEX(T::*getN)(void) const)
Create an AttributeAccessor using a container class indexed get method. 
 
virtual bool HasGetter(void) const 
 
AttributeAccessor implementation for ObjectPtrContainerValue. 
 
ns3::AttributeValue, ns3::AttributeAccessor and ns3::AttributeChecker declarations. 
 
std::map< uint32_t, Ptr< Object > > m_objects
The container implementation. 
 
AttributeChecker implementation for ObjectPtrContainerValue. 
 
allow setting and getting the value of an attribute. 
 
Ptr< const AttributeChecker > MakeObjectPtrContainerChecker(void)
 
Every class exported by the ns3 library is enclosed in the ns3 namespace. 
 
virtual TypeId GetItemTypeId(void) const 
Get the TypeId of the container class type. 
 
Iterator Begin(void) const 
Get an iterator to the first Object. 
 
ns3::Object class declaration, which is the root of the Object hierarchy and Aggregation. 
 
virtual bool DeserializeFromString(std::string value, Ptr< const AttributeChecker > checker)
Deserialize from a string. 
 
virtual std::string GetValueTypeName(void) const 
 
Iterator End(void) const 
Get an iterator to the past-the-end Object. 
 
virtual bool DoGetN(const ObjectBase *object, uint32_t *n) const =0
Get the number of instances in the container. 
 
virtual bool Copy(const AttributeValue &source, AttributeValue &destination) const 
Copy the source to the destination. 
 
virtual Ptr< AttributeValue > Create(void) const 
 
uint32_t GetN(void) const 
Get the number of Objects. 
 
Container for a set of ns3::Object pointers. 
 
virtual bool Get(const ObjectBase *object, AttributeValue &value) const 
 
virtual std::string SerializeToString(Ptr< const AttributeChecker > checker) const 
Serialize each of the Object pointers to a string. 
 
a unique identifier for an interface.