keep track of a set of node pointers. More...
#include <node-container.h>
Public Types | |
typedef std::vector< Ptr< Node > >::const_iterator | Iterator |
Public Member Functions | |
NodeContainer () | |
NodeContainer (Ptr< Node > node) | |
NodeContainer (std::string nodeName) | |
NodeContainer (const NodeContainer &a, const NodeContainer &b) | |
NodeContainer (const NodeContainer &a, const NodeContainer &b, const NodeContainer &c) | |
NodeContainer (const NodeContainer &a, const NodeContainer &b, const NodeContainer &c, const NodeContainer &d) | |
NodeContainer (const NodeContainer &a, const NodeContainer &b, const NodeContainer &c, const NodeContainer &d, const NodeContainer &e) | |
Iterator | Begin (void) const |
Get an iterator which refers to the first Node in the container. | |
Iterator | End (void) const |
Get an iterator which indicates past-the-last Node in the container. | |
uint32_t | GetN (void) const |
Get the number of Ptr<Node> stored in this container. | |
Ptr< Node > | Get (uint32_t i) const |
Get the Ptr<Node> stored in this container at a given index. | |
void | Create (uint32_t n) |
Create n nodes and append pointers to them to the end of this NodeContainer. | |
void | Create (uint32_t n, uint32_t systemId) |
Create n nodes with specified systemId for distributed simulations and append pointers to them to the end of this NodeContainer. | |
void | Add (NodeContainer other) |
Append the contents of another NodeContainer to the end of this container. | |
void | Add (Ptr< Node > node) |
Append a single Ptr<Node> to this container. | |
void | Add (std::string nodeName) |
Append to this container the single Ptr<Node> referred to via its object name service registered name. | |
Static Public Member Functions | |
static NodeContainer | GetGlobal (void) |
Create a NodeContainer that contains a list of _all_ nodes created through NodeContainer::Create() and stored in the ns3::NodeList. |
keep track of a set of node pointers.
Typically ns-3 helpers operate on more than one node at a time. For example a device helper may want to install devices on a large number of similar nodes. The helper Install methods usually take a NodeContainer as a parameter. NodeContainers hold the multiple Ptr<Node> which are used to refer to the nodes.
ns3::NodeContainer::NodeContainer | ( | ) |
Create an empty NodeContainer.
Create a NodeContainer with exactly one node which has been previously instantiated. The single Node is specified by a smart pointer.
node | The Ptr<Node> to add to the container. |
ns3::NodeContainer::NodeContainer | ( | std::string | nodeName | ) |
Create a NodeContainer with exactly one node which has been previously instantiated and assigned a name using the Object Name Service. This Node is then specified by its assigned name.
ns3::NodeContainer::NodeContainer | ( | const NodeContainer & | a, | |
const NodeContainer & | b | |||
) |
Create a node container which is a concatenation of two input NodeContainers.
a | The first NodeContainer | |
b | The second NodeContainer |
ns3::NodeContainer::NodeContainer | ( | const NodeContainer & | a, | |
const NodeContainer & | b, | |||
const NodeContainer & | c | |||
) |
Create a node container which is a concatenation of three input NodeContainers.
a | The first NodeContainer | |
b | The second NodeContainer | |
c | The third NodeContainer |
ns3::NodeContainer::NodeContainer | ( | const NodeContainer & | a, | |
const NodeContainer & | b, | |||
const NodeContainer & | c, | |||
const NodeContainer & | d | |||
) |
Create a node container which is a concatenation of four input NodeContainers.
a | The first NodeContainer | |
b | The second NodeContainer | |
c | The third NodeContainer | |
d | The fourth NodeContainer |
ns3::NodeContainer::NodeContainer | ( | const NodeContainer & | a, | |
const NodeContainer & | b, | |||
const NodeContainer & | c, | |||
const NodeContainer & | d, | |||
const NodeContainer & | e | |||
) |
Create a node container which is a concatenation of five input NodeContainers.
a | The first NodeContainer | |
b | The second NodeContainer | |
c | The third NodeContainer | |
d | The fourth NodeContainer | |
e | The fifth NodeContainer |
void ns3::NodeContainer::Add | ( | std::string | nodeName | ) |
void ns3::NodeContainer::Add | ( | NodeContainer | other | ) |
Append the contents of another NodeContainer to the end of this container.
other | The NodeContainer to append. |
Iterator ns3::NodeContainer::Begin | ( | void | ) | const |
Get an iterator which refers to the first Node in the container.
Nodes can be retrieved from the container in two ways. First, directly by an index into the container, and second, using an iterator. This method is used in the iterator method and is typically used in a for-loop to run through the Nodes
NodeContainer::Iterator i; for (i = container.Begin (); i != container.End (); ++i) { (*i)->method (); // some Node method }
void ns3::NodeContainer::Create | ( | uint32_t | n, | |
uint32_t | systemId | |||
) |
Create n nodes with specified systemId for distributed simulations and append pointers to them to the end of this NodeContainer.
Nodes are at the heart of any ns-3 simulation. One of the first tasks that any simulation needs to do is to create a number of nodes. This method automates that task, and adds the ability to specify systemId for distributed simulations.
n | The number of Nodes to create | |
systemId | The system id or rank associated with this node |
void ns3::NodeContainer::Create | ( | uint32_t | n | ) |
Create n nodes and append pointers to them to the end of this NodeContainer.
Nodes are at the heart of any ns-3 simulation. One of the first tasks that any simulation needs to do is to create a number of nodes. This method automates that task.
n | The number of Nodes to create |
Iterator ns3::NodeContainer::End | ( | void | ) | const |
Get an iterator which indicates past-the-last Node in the container.
Nodes can be retrieved from the container in two ways. First, directly by an index into the container, and second, using an iterator. This method is used in the iterator method and is typically used in a for-loop to run through the Nodes
NodeContainer::Iterator i; for (i = container.Begin (); i != container.End (); ++i) { (*i)->method (); // some Node method }
Get the Ptr<Node> stored in this container at a given index.
Nodes can be retrieved from the container in two ways. First, directly by an index into the container, and second, using an iterator. This method is used in the direct method and is used to retrieve the indexed Ptr<Appliation>.
uint32_t nNodes = container.GetN (); for (uint32_t i = 0 i < nNodes; ++i) { Ptr<Node> p = container.Get (i) i->method (); // some Node method }
i | the index of the requested node pointer. |
static NodeContainer ns3::NodeContainer::GetGlobal | ( | void | ) | [static] |
Create a NodeContainer that contains a list of _all_ nodes created through NodeContainer::Create() and stored in the ns3::NodeList.
Whenever a Node is created, a Ptr<Node> is added to a global list of all nodes in the system. It is sometimes useful to be able to get to all nodes in one place. This method creates a NodeContainer that is initialized to contain all of the simulation nodes,
uint32_t ns3::NodeContainer::GetN | ( | void | ) | const |
Get the number of Ptr<Node> stored in this container.
Nodes can be retrieved from the container in two ways. First, directly by an index into the container, and second, using an iterator. This method is used in the direct method and is typically used to define an ending condition in a for-loop that runs through the stored Nodes
uint32_t nNodes = container.GetN (); for (uint32_t i = 0 i < nNodes; ++i) { Ptr<Node> p = container.Get (i) i->method (); // some Node method }