43 class AttributeAccessor;
45 class TraceSourceAccessor;
152 template <
typename T>
161 template <
typename T>
303 template <
typename T>
305 template <
typename T>
316 template <
typename T>
353 bool Check (
void)
const;
437 template <
typename T>
439 template <
typename T>
457 template <
typename T>
477 template <
typename T>
493 template <
typename T>
497 NS_ASSERT (p->GetInstanceTypeId () ==
object->GetInstanceTypeId ());
501 template <
typename T>
504 Ptr<T> p = Ptr<T> (
new T (*
PeekPointer (
object)),
false);
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>
void Dispose(void)
Dispose of this Object.
virtual void DoInitialize(void)
Initialize() implementation.
Smart pointer class similar to boost::intrusive_ptr.
void Construct(const AttributeConstructionList &attributes)
Initialize all member variables registered as Attributes of this TypeId.
ns3::Ptr smart pointer declaration and implementation.
bool m_disposed
Set to true when the DoDispose() method of the Object has run, false otherwise.
void AggregateObject(Ptr< Object > other)
Aggregate two Objects together.
uint32_t m_getObjectCount
The number of times the Object was accessed with a call to GetObject().
void UpdateSortedArray(struct Aggregates *aggregates, uint32_t i) const
Keep the list of aggregates in most-recently-used order.
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file...
bool IsInitialized(void) const
Check if the object has been initialized.
U * PeekPointer(const Ptr< U > &p)
struct Aggregates * m_aggregates
A pointer to an array of 'aggregates'.
Ptr< Object > DoGetObject(TypeId tid) const
Find an Object of TypeId tid in the aggregates of this Object.
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.
ns3::ObjectBase declaration and NS_OBJECT_ENSURE_REGISTERED() madro definition.
AggregateIterator()
Default constructor, which has no Object.
Ptr< const Object > m_object
Parent Object.
void DoDelete(void)
Attempt to delete this 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.
bool CheckLoose(void) const
Check if any aggregated Objects have non-zero reference counts.
Ptr< T > GetObject(void) const
Get a pointer to the requested aggregated Object.
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...
void SetTypeId(TypeId tid)
Set the TypeId of this Object.
static TypeId GetTypeId(void)
Register this type.
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.
bool HasNext(void) const
Check if there are more Aggregates to iterate over.
Instantiate subclasses of ns3::Object.
Ptr< T > CopyObject(Ptr< const T > object)
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
uint32_t m_current
Current position in parent's aggregates.
virtual ~Object()
Destructor.
Ptr< T > CompleteConstruct(T *object)
Ptr< T > CreateObject(void)
Create an object by type, with varying number of constructor parameters.
bool Check(void) const
Verify that this Object is still live, by checking it's reference count.
A base class which provides memory management and object aggregation.
virtual void NotifyNewAggregate(void)
Notify all Objects aggregated to this one of a new Object being aggregated.
A template-based reference counting class.
a unique identifier for an interface.
Iterate over the Objects aggregated to an ns3::Object.
void Initialize(void)
Invoke DoInitialize on all Objects aggregated to this one.
ns3::SimpleRefCount declaration and template implementation.
The list of Objects aggregated to this one.