43 class AttributeAccessor;
45 class TraceSourceAccessor;
156 template <
typename T>
167 template <
typename T>
311 template <
typename T>
313 template <
typename T>
324 template <
typename T>
364 bool Check (
void)
const;
448 template <
typename T>
450 template <
typename T>
468 template <
typename T>
496 template <
typename T>
527 template <
typename T>
531 NS_ASSERT (p->GetInstanceTypeId () ==
object->GetInstanceTypeId ());
535 template <
typename T>
538 Ptr<T> p = Ptr<T> (
new T (*
PeekPointer (
object)),
false);
539 NS_ASSERT (p->GetInstanceTypeId () ==
object->GetInstanceTypeId ());
543 template <
typename T>
546 object->SetTypeId (T::GetTypeId ());
548 return Ptr<T> (object,
false);
562 template <
typename T,
typename... Args>
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)
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.
Ptr< T > CreateObject(Args &&... args)
Create an object by type, with varying number of constructor parameters.
The list of Objects aggregated to this one.