43 class AttributeAccessor;
45 class TraceSourceAccessor;
155 template <
typename T>
164 template <
typename T>
299 template <
typename T>
301 template <
typename T>
312 template <
typename T>
349 bool Check (
void)
const;
433 template <
typename T>
435 template <
typename T>
453 template <
typename T>
473 template <
typename T>
489 template <
typename T>
493 NS_ASSERT (p->GetInstanceTypeId () ==
object->GetInstanceTypeId ());
497 template <
typename T>
500 Ptr<T> p = Ptr<T> (
new T (*
PeekPointer (
object)),
false);
501 NS_ASSERT (p->GetInstanceTypeId () ==
object->GetInstanceTypeId ());
505 template <
typename T>
508 object->SetTypeId (T::GetTypeId ());
510 return Ptr<T> (object,
false);
523 template <
typename T>
535 template <
typename T,
typename T1>
550 template <
typename T,
typename T1,
typename T2>
567 template <
typename T,
typename T1,
typename T2,
typename T3>
586 template <
typename T,
typename T1,
typename T2,
typename T3,
typename T4>
607 template <
typename T,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
630 template <
typename T,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
655 template <
typename T,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6,
typename T7>
bool CheckLoose(void) const
Check if any aggregated Objects have non-zero reference counts.
Smart pointer class similar to boost::intrusive_ptr.
virtual ~Object()
Destructor.
virtual TypeId GetInstanceTypeId(void) const
Implement the GetInstanceTypeId method defined in ObjectBase.
bool Check(void) const
Verify that this Object is still live, by checking it's reference count.
void DoDelete(void)
Attempt to delete this Object.
Smart pointer 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'.
virtual void DoDispose(void)
Destructor implementation.
friend Ptr< T > CompleteConstruct(T *object)
Set the TypeId and construct all Attributes of an Object.
bool m_initialized
Set to true once the DoInitialize() method has run, false otherwise.
Object * buffer[1]
The array of Objects.
Ptr< const Object > Next(void)
Get the next Aggregated Object.
ns3::AttributeConstructionList declaration.
void SetTypeId(TypeId tid)
Set the TypeId of this Object.
ns3::ObjectBase class declaration and NS_OBJECT_ENSURE_REGISTERED() definition.
AggregateIterator()
Default constructor, which has no Object.
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.
friend Ptr< T > CopyObject(Ptr< T > object)
Copy an Object.
void AggregateObject(Ptr< Object > other)
Aggregate two Objects together.
virtual void NotifyNewAggregate(void)
Notify all Objects aggregated to this one of a new Object being aggregated.
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.
AggregateIterator GetAggregateIterator(void) const
Get an iterator to the Objects aggregated to this one.
Instantiate subclasses of ns3::Object.
Ptr< T > CopyObject(Ptr< const T > object)
bool HasNext(void) const
Check if there are more Aggregates to iterate over.
static TypeId GetTypeId(void)
Register this type.
uint32_t m_current
Current position in parent's aggegrates.
void Construct(const AttributeConstructionList &attributes)
Initialize all member variables registered as Attributes of this TypeId.
void Initialize(void)
Invoke DoInitialize on all Objects aggregated to this one.
Ptr< T > CompleteConstruct(T *object)
Ptr< T > CreateObject(void)
Create an object by type, with varying number of constructor parameters.
Ptr< Object > DoGetObject(TypeId tid) const
Find an Object of TypeId tid in the aggregates of this Object.
A base class which provides memory management and object aggregation.
Ptr< T > GetObject(void) const
Get a pointer to the requested aggregated Object.
A template-based reference counting class.
a unique identifier for an interface.
void UpdateSortedArray(struct Aggregates *aggregates, uint32_t i) const
Keep the list of aggregates in most-recently-used order.
void Dispose(void)
Dispose of this Object.
Iterate over the Objects aggregated to an ns3::Object.
Reference counting for smart pointers.
virtual void DoInitialize(void)
Initialize() implementation.
The list of Objects aggregated to this one.