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>
502 template <
typename T>
540 template <
typename T>
544 NS_ASSERT (p->GetInstanceTypeId () == object->GetInstanceTypeId ());
548 template <
typename T>
552 NS_ASSERT (p->GetInstanceTypeId () == object->GetInstanceTypeId ());
556 template <
typename T>
559 object->SetTypeId (T::GetTypeId ());
561 return Ptr<T> (
object,
false);
575 template <
typename T,
typename... Args>
ns3::AttributeConstructionList declaration.
ns3::AttributeValue, ns3::AttributeAccessor and ns3::AttributeChecker declarations.
List of Attribute name, value and checker triples used to construct Objects.
Iterate over the Objects aggregated to an ns3::Object.
Ptr< const Object > m_object
Parent Object.
AggregateIterator()
Default constructor, which has no Object.
Ptr< const Object > Next(void)
Get the next Aggregated Object.
uint32_t m_current
Current position in parent's aggregates.
bool HasNext(void) const
Check if there are more Aggregates to iterate over.
Instantiate subclasses of ns3::Object.
A base class which provides memory management and object aggregation.
void SetTypeId(TypeId tid)
Set the TypeId of this Object.
virtual void NotifyNewAggregate(void)
Notify all Objects aggregated to this one of a new Object being aggregated.
static TypeId GetTypeId(void)
Register this type.
struct Aggregates * m_aggregates
A pointer to an array of 'aggregates'.
bool CheckLoose(void) const
Check if any aggregated Objects have non-zero reference counts.
bool m_disposed
Set to true when the DoDispose() method of the Object has run, false otherwise.
bool IsInitialized(void) const
Check if the object has been initialized.
AggregateIterator GetAggregateIterator(void) const
Get an iterator to the Objects aggregated to this one.
virtual void DoDispose(void)
Destructor implementation.
void Construct(const AttributeConstructionList &attributes)
Initialize all member variables registered as Attributes of this TypeId.
void DoDelete(void)
Attempt to delete this Object.
void AggregateObject(Ptr< Object > other)
Aggregate two Objects together.
Ptr< Object > DoGetObject(TypeId tid) const
Find an Object of TypeId tid in the aggregates of this Object.
bool Check(void) const
Verify that this Object is still live, by checking it's reference count.
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
void Dispose(void)
Dispose of this Object.
TypeId m_tid
Identifies the type of this Object instance.
Ptr< T > GetObject(void) const
Get a pointer to the requested aggregated Object.
void UpdateSortedArray(struct Aggregates *aggregates, uint32_t i) const
Keep the list of aggregates in most-recently-used order.
friend Ptr< T > CopyObject(Ptr< T > object)
Copy an Object.
virtual ~Object()
Destructor.
void Initialize(void)
Invoke DoInitialize on all Objects aggregated to this one.
uint32_t m_getObjectCount
The number of times the Object was accessed with a call to GetObject().
virtual void DoInitialize(void)
Initialize() 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.
Smart pointer class similar to boost::intrusive_ptr.
A template-based reference counting class.
a unique identifier for an interface.
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file,...
Ptr< T > CreateObject(Args &&... args)
Create an object by type, with varying number of constructor parameters.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Ptr< T > CopyObject(Ptr< const T > object)
Ptr< T > CompleteConstruct(T *object)
U * PeekPointer(const Ptr< U > &p)
ns3::ObjectBase declaration and NS_OBJECT_ENSURE_REGISTERED() madro definition.
ns3::Ptr smart pointer declaration and implementation.
ns3::SimpleRefCount declaration and template implementation.
The list of Objects aggregated to this one.
uint32_t n
The number of entries in buffer.
Object * buffer[1]
The array of Objects.
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.