43 class AttributeAccessor;
45 class TraceSourceAccessor;
94 static TypeId GetTypeId (
void);
116 bool HasNext (
void)
const;
144 virtual TypeId GetInstanceTypeId (
void)
const;
152 template <
typename T>
153 inline Ptr<T> GetObject (
void)
const;
161 template <
typename T>
217 void Initialize (
void);
224 bool IsInitialized (
void)
const;
240 virtual void NotifyNewAggregate (
void);
252 virtual void DoInitialize (
void);
268 virtual void DoDispose (
void);
303 template <
typename T>
305 template <
typename T>
316 template <
typename T>
353 bool Check (
void)
const;
366 bool CheckLoose (
void)
const;
376 void SetTypeId (
TypeId tid);
395 void UpdateSortedArray (
struct Aggregates *aggregates, uint32_t i)
const;
403 void DoDelete (
void);
437 template <
typename T>
439 template <
typename T>
457 template <
typename T>
463 T *result =
dynamic_cast<T *
> (m_aggregates->buffer[0]);
477 template <
typename T>
493 template <
typename T>
497 NS_ASSERT (p->GetInstanceTypeId () ==
object->GetInstanceTypeId ());
501 template <
typename T>
505 NS_ASSERT (p->GetInstanceTypeId () ==
object->GetInstanceTypeId ());
509 template <
typename T>
512 object->SetTypeId (T::GetTypeId ());
514 return Ptr<T> (object,
false);
527 template <
typename T>
539 template <
typename T,
typename T1>
554 template <
typename T,
typename T1,
typename T2>
571 template <
typename T,
typename T1,
typename T2,
typename T3>
590 template <
typename T,
typename T1,
typename T2,
typename T3,
typename T4>
611 template <
typename T,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
634 template <
typename T,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
659 template <
typename T,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6,
typename T7>
Smart pointer class similar to boost::intrusive_ptr.
Ptr< T > GetObject(void) const
Get a pointer to the requested aggregated Object.
ns3::Ptr smart pointer declaration and implementation.
bool m_disposed
Set to true when the DoDispose() method of the Object has run, false otherwise.
uint32_t m_getObjectCount
The number of times the Object was accessed with a call to GetObject().
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file...
U * PeekPointer(const Ptr< U > &p)
struct Aggregates * m_aggregates
A pointer to an array of 'aggregates'.
bool m_initialized
Set to true once the DoInitialize() method has run, false otherwise.
ns3::AttributeConstructionList declaration.
ns3::ObjectBase declaration and NS_OBJECT_ENSURE_REGISTERED() madro definition.
Ptr< const Object > m_object
Parent Object.
ns3::AttributeValue, ns3::AttributeAccessor and ns3::AttributeChecker declarations.
List of Attribute name, value and checker triples used to construct Objects.
uint32_t n
The number of entries in buffer.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
TypeId m_tid
Identifies the type of this Object instance.
Standard Object deleter, used by SimpleRefCount to delete an Object when the reference count drops to...
static void Delete(Object *object)
Smart pointer deleter implementation for Object.
Instantiate subclasses of ns3::Object.
Ptr< T > CopyObject(Ptr< const T > object)
uint32_t m_current
Current position in parent's aggregates.
Ptr< T > CompleteConstruct(T *object)
Ptr< T > CreateObject(void)
Create an object by type, with varying number of constructor parameters.
A base class which provides memory management and object aggregation.
A template-based reference counting class.
a unique identifier for an interface.
Iterate over the Objects aggregated to an ns3::Object.
ns3::SimpleRefCount declaration and template implementation.
The list of Objects aggregated to this one.