A Discrete-Event Network Simulator
API
Object

Base classes which provide memory management and object aggregation. More...

+ Collaboration diagram for Object:

Files

file  attribute-construction-list.cc
 ns3::AttributeConstructionList implementation.
 
file  attribute-construction-list.h
 ns3::AttributeConstructionList declaration.
 
file  object-base.cc
 ns3::ObjectBase class implementation.
 
file  object-base.h
 ns3::ObjectBase class declaration and NS_OBJECT_ENSURE_REGISTERED() definition.
 
file  object-factory.cc
 ns3::ObjectFactory class implementation.
 
file  object-factory.h
 ns3::ObjectFactory class declaration.
 
file  object.cc
 ns3::Object class implementation.
 
file  object.h
 ns3::Object class declaration, which is the root of the Object hierarchy and Aggregation.
 
file  type-id.cc
 ns3::TypeId and ns3::IidManager implementations.
 
file  type-id.h
 ns3::TypeId declaration; inline and template implementations.
 
file  type-traits.h
 TypeTraits introspection template.
 

Classes

class  ns3::Object::AggregateIterator
 Iterate over the Objects aggregated to an ns3::Object. More...
 
struct  ns3::Object::Aggregates
 The list of Objects aggregated to this one. More...
 
class  ns3::AttributeConstructionList
 List of Attribute name, value and checker triples used to construct Objects. More...
 
struct  ns3::AttributeConstructionList::Item
 A single Attribute triple. More...
 
class  ns3::Object
 A base class which provides memory management and object aggregation. More...
 
class  ns3::ObjectBase
 Anchor the ns-3 type and attribute system. More...
 
struct  ns3::ObjectDeleter
 Standard Object deleter, used by SimpleRefCount to delete an Object when the reference count drops to zero. More...
 
class  ns3::ObjectFactory
 Instantiate subclasses of ns3::Object. More...
 

Macros

#define NS_OBJECT_ENSURE_REGISTERED(type)
 Register an Object subclass with the TypeId system. More...
 

Functions

template<typename T >
Ptr< T > ns3::CreateObjectWithAttributes (std::string n1="", const AttributeValue &v1=EmptyAttributeValue(), std::string n2="", const AttributeValue &v2=EmptyAttributeValue(), std::string n3="", const AttributeValue &v3=EmptyAttributeValue(), std::string n4="", const AttributeValue &v4=EmptyAttributeValue(), std::string n5="", const AttributeValue &v5=EmptyAttributeValue(), std::string n6="", const AttributeValue &v6=EmptyAttributeValue(), std::string n7="", const AttributeValue &v7=EmptyAttributeValue(), std::string n8="", const AttributeValue &v8=EmptyAttributeValue(), std::string n9="", const AttributeValue &v9=EmptyAttributeValue())
 Allocate an Object on the heap and initialize with a set of attributes. More...
 
template<typename T >
Ptr< T > ns3::CreateObject (void)
 Create an object by type, with varying number of constructor parameters. More...
 
template<typename T , typename T1 >
Ptr< T > ns3::CreateObject (T1 a1)
 Create an object by type, with varying number of constructor parameters. More...
 
template<typename T , typename T1 , typename T2 >
Ptr< T > ns3::CreateObject (T1 a1, T2 a2)
 Create an object by type, with varying number of constructor parameters. More...
 
template<typename T , typename T1 , typename T2 , typename T3 >
Ptr< T > ns3::CreateObject (T1 a1, T2 a2, T3 a3)
 Create an object by type, with varying number of constructor parameters. More...
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 >
Ptr< T > ns3::CreateObject (T1 a1, T2 a2, T3 a3, T4 a4)
 Create an object by type, with varying number of constructor parameters. More...
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
Ptr< T > ns3::CreateObject (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
 Create an object by type, with varying number of constructor parameters. More...
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
Ptr< T > ns3::CreateObject (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
 Create an object by type, with varying number of constructor parameters. More...
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
Ptr< T > ns3::CreateObject (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7)
 Create an object by type, with varying number of constructor parameters. More...
 

Detailed Description

Base classes which provide memory management and object aggregation.

Macro Definition Documentation

#define NS_OBJECT_ENSURE_REGISTERED (   type)
Value:
static struct Object ## type ## RegistrationClass \
{ \
Object ## type ## RegistrationClass () { \
ns3::TypeId tid = type::GetTypeId (); \
tid.SetSize (sizeof (type)); \
tid.GetParent (); \
} \
} Object ## type ## RegistrationVariable

Register an Object subclass with the TypeId system.

This macro should be invoked once for every class which defines a new GetTypeId method.

If the class is in a namespace, then the macro call should also be in the namespace.

Definition at line 44 of file object-base.h.

Function Documentation

template<typename T >
Ptr<T> ns3::CreateObject ( void  )

Create an object by type, with varying number of constructor parameters.

Template Parameters
TThe type of the derived object to construct.
Returns
The derived object.

Definition at line 524 of file object.h.

References ns3::CompleteConstruct().

Referenced by ns3::Ipv6L3Protocol::AddInterface(), ns3::Ipv4L3Protocol::AddInterface(), Ipv4L3ProtocolTestCase::DoRun(), Ipv6L3ProtocolTestCase::DoRun(), ns3::Ipv4L3Protocol::SetupLoopback(), and ns3::Ipv6L3Protocol::SetupLoopback().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename T , typename T1 >
Ptr<T> ns3::CreateObject ( T1  a1)

Create an object by type, with varying number of constructor parameters.

Template Parameters
TThe type of the derived object to construct.
T1The type of the constructor argument.
Parameters
a1The constructor argument
Returns
The derived object.

Definition at line 536 of file object.h.

References ns3::CompleteConstruct().

+ Here is the call graph for this function:

template<typename T , typename T1 , typename T2 >
Ptr<T> ns3::CreateObject ( T1  a1,
T2  a2 
)

Create an object by type, with varying number of constructor parameters.

Template Parameters
TThe type of the derived object to construct.
T1The type of the first constructor argument.
T2The type of the second constructor argument.
Parameters
a1The constructor first argument
a2The constructor second argument
Returns
The derived object.

Definition at line 551 of file object.h.

References ns3::CompleteConstruct().

+ Here is the call graph for this function:

template<typename T , typename T1 , typename T2 , typename T3 >
Ptr<T> ns3::CreateObject ( T1  a1,
T2  a2,
T3  a3 
)

Create an object by type, with varying number of constructor parameters.

Template Parameters
TThe type of the derived object to construct.
T1The type of the first constructor argument.
T2The type of the second constructor argument.
T3The type of the third constructor argument.
Parameters
a1The constructor first argument
a2The constructor second argument
a3The constructor third argument
Returns
The derived object.

Definition at line 568 of file object.h.

References ns3::CompleteConstruct().

+ Here is the call graph for this function:

template<typename T , typename T1 , typename T2 , typename T3 , typename T4 >
Ptr<T> ns3::CreateObject ( T1  a1,
T2  a2,
T3  a3,
T4  a4 
)

Create an object by type, with varying number of constructor parameters.

Template Parameters
TThe type of the derived object to construct.
T1The type of the first constructor argument.
T2The type of the second constructor argument.
T3The type of the third constructor argument.
T4The type of the fourth constructor argument.
Parameters
a1The constructor first argument
a2The constructor second argument
a3The constructor third argument
a4The constructor fourth argument
Returns
The derived object.

Definition at line 587 of file object.h.

References ns3::CompleteConstruct().

+ Here is the call graph for this function:

template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
Ptr<T> ns3::CreateObject ( T1  a1,
T2  a2,
T3  a3,
T4  a4,
T5  a5 
)

Create an object by type, with varying number of constructor parameters.

Template Parameters
TThe type of the derived object to construct.
T1The type of the first constructor argument.
T2The type of the second constructor argument.
T3The type of the third constructor argument.
T4The type of the fourth constructor argument.
T5The type of the fifth constructor argument.
Parameters
a1The constructor first argument
a2The constructor second argument
a3The constructor third argument
a4The constructor fourth argument
a5The constructor fifth argument
Returns
The derived object.

Definition at line 608 of file object.h.

References ns3::CompleteConstruct().

+ Here is the call graph for this function:

template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
Ptr<T> ns3::CreateObject ( T1  a1,
T2  a2,
T3  a3,
T4  a4,
T5  a5,
T6  a6 
)

Create an object by type, with varying number of constructor parameters.

Template Parameters
TThe type of the derived object to construct.
T1The type of the first constructor argument.
T2The type of the second constructor argument.
T3The type of the third constructor argument.
T4The type of the fourth constructor argument.
T5The type of the fifth constructor argument.
T6The type of the sixth constructor argument.
Parameters
a1The constructor first argument
a2The constructor second argument
a3The constructor third argument
a4The constructor fourth argument
a5The constructor fifth argument
a6The constructor sixth argument
Returns
The derived object.

Definition at line 631 of file object.h.

References ns3::CompleteConstruct().

+ Here is the call graph for this function:

template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
Ptr<T> ns3::CreateObject ( T1  a1,
T2  a2,
T3  a3,
T4  a4,
T5  a5,
T6  a6,
T7  a7 
)

Create an object by type, with varying number of constructor parameters.

Template Parameters
TThe type of the derived object to construct.
T1The type of the first constructor argument.
T2The type of the second constructor argument.
T3The type of the third constructor argument.
T4The type of the fourth constructor argument.
T5The type of the fifth constructor argument.
T6The type of the sixth constructor argument.
T7The type of the seventh constructor argument.
Parameters
a1The constructor first argument
a2The constructor second argument
a3The constructor third argument
a4The constructor fourth argument
a5The constructor fifth argument
a6The constructor sixth argument
a7The constructor seventh argument
Returns
The derived object.

Definition at line 656 of file object.h.

References ns3::CompleteConstruct().

+ Here is the call graph for this function:

template<typename T >
Ptr< T > ns3::CreateObjectWithAttributes ( std::string  n1 = "",
const AttributeValue v1 = EmptyAttributeValue (),
std::string  n2 = "",
const AttributeValue v2 = EmptyAttributeValue (),
std::string  n3 = "",
const AttributeValue v3 = EmptyAttributeValue (),
std::string  n4 = "",
const AttributeValue v4 = EmptyAttributeValue (),
std::string  n5 = "",
const AttributeValue v5 = EmptyAttributeValue (),
std::string  n6 = "",
const AttributeValue v6 = EmptyAttributeValue (),
std::string  n7 = "",
const AttributeValue v7 = EmptyAttributeValue (),
std::string  n8 = "",
const AttributeValue v8 = EmptyAttributeValue (),
std::string  n9 = "",
const AttributeValue v9 = EmptyAttributeValue () 
)

Allocate an Object on the heap and initialize with a set of attributes.

Template Parameters
TThe requested Object type.
Parameters
n1Name of attribute
v1Value of attribute
n2Name of attribute
v2Value of attribute
n3Name of attribute
v3Value of attribute
n4Name of attribute
v4Value of attribute
n5Name of attribute
v5Value of attribute
n6Name of attribute
v6Value of attribute
n7Name of attribute
v7Value of attribute
n8Name of attribute
v8Value of attribute
n9Name of attribute
v9Value of attribute
Returns
A pointer to a newly allocated object.

Definition at line 204 of file object-factory.h.

References ns3::ObjectFactory::Create(), ns3::ObjectFactory::Set(), and ns3::ObjectFactory::SetTypeId().

+ Here is the call graph for this function: