src/helper/node-container.h
author Craig Dowell <craigdo@ee.washington.edu>
Fri, 22 Jan 2010 00:58:01 -0800
changeset 6013 fa3ab7f34eb2
parent 5399 73f6b9cbad86
child 6113 0ce37bf4f1c1
permissions -rw-r--r--
checkpoint
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2833
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2756
diff changeset
     1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2756
diff changeset
     2
/*
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2756
diff changeset
     3
 * Copyright (c) 2008 INRIA
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2756
diff changeset
     4
 *
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2756
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2756
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2756
diff changeset
     7
 * published by the Free Software Foundation;
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2756
diff changeset
     8
 *
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2756
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2756
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2756
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2756
diff changeset
    12
 * GNU General Public License for more details.
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2756
diff changeset
    13
 *
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2756
diff changeset
    14
 * You should have received a copy of the GNU General Public License
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2756
diff changeset
    15
 * along with this program; if not, write to the Free Software
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2756
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2756
diff changeset
    17
 *
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2756
diff changeset
    18
 * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2756
diff changeset
    19
 */
2417
004ac83aca83 add device/node containers for helper API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    20
#ifndef NODE_CONTAINER_H
004ac83aca83 add device/node containers for helper API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    21
#define NODE_CONTAINER_H
004ac83aca83 add device/node containers for helper API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    22
004ac83aca83 add device/node containers for helper API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    23
#include <stdint.h>
004ac83aca83 add device/node containers for helper API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    24
#include <vector>
2603
1308da4cb3bf move helpers to their own dir.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2516
diff changeset
    25
#include "ns3/node.h"
2417
004ac83aca83 add device/node containers for helper API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    26
004ac83aca83 add device/node containers for helper API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    27
namespace ns3 {
004ac83aca83 add device/node containers for helper API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    28
2697
cab2a59cba8f doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    29
/**
cab2a59cba8f doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    30
 * \brief keep track of a set of node pointers.
cab2a59cba8f doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    31
 *
5362
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
    32
 * Typically ns-3 helpers operate on more than one node at a time.  For example
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
    33
 * a device helper may want to install devices on a large number of similar
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
    34
 * nodes.  The helper Install methods usually take a NodeContainer as a
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
    35
 * parameter.  NodeContainers hold the multiple Ptr<Node> which are used
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
    36
 * to refer to the nodes.
2697
cab2a59cba8f doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    37
 */
2417
004ac83aca83 add device/node containers for helper API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    38
class NodeContainer
004ac83aca83 add device/node containers for helper API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    39
{
004ac83aca83 add device/node containers for helper API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    40
public:
004ac83aca83 add device/node containers for helper API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    41
  typedef std::vector<Ptr<Node> >::const_iterator Iterator;
004ac83aca83 add device/node containers for helper API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    42
2697
cab2a59cba8f doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    43
  /**
cab2a59cba8f doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    44
   * Create an empty NodeContainer.
cab2a59cba8f doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    45
   */
2516
d189f25169ee add extra NodeContainer constructors
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2417
diff changeset
    46
  NodeContainer ();
5362
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
    47
2697
cab2a59cba8f doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    48
  /**
5362
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
    49
   * Create a NodeContainer with exactly one node which has been previously
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
    50
   * instantiated.  The single Node is specified by a smart pointer.
2697
cab2a59cba8f doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    51
   *
5362
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
    52
   * \param node The Ptr<Node> to add to the container.
2697
cab2a59cba8f doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    53
   */
2516
d189f25169ee add extra NodeContainer constructors
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2417
diff changeset
    54
  NodeContainer (Ptr<Node> node);
5362
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
    55
2697
cab2a59cba8f doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    56
  /**
5362
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
    57
   * Create a NodeContainer with exactly one node which has been previously 
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
    58
   * instantiated and assigned a name using the Object Name Service.  This 
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
    59
   * Node is then specified by its assigned name. 
4140
6bbf05bf4826 Brute force all of the helpers to use object name service
Craig Dowell <craigdo@ee.washington.edu>
parents: 3937
diff changeset
    60
   *
5399
73f6b9cbad86 fix most of doxygen warnings
Andrey Mazo <mazo@iitp.ru>
parents: 5362
diff changeset
    61
   * \param nodeName The name of the Node Object to add to the container.
4140
6bbf05bf4826 Brute force all of the helpers to use object name service
Craig Dowell <craigdo@ee.washington.edu>
parents: 3937
diff changeset
    62
   */
6bbf05bf4826 Brute force all of the helpers to use object name service
Craig Dowell <craigdo@ee.washington.edu>
parents: 3937
diff changeset
    63
  NodeContainer (std::string nodeName);
5362
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
    64
4140
6bbf05bf4826 Brute force all of the helpers to use object name service
Craig Dowell <craigdo@ee.washington.edu>
parents: 3937
diff changeset
    65
  /**
5362
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
    66
   * Create a node container which is a concatenation of two input
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
    67
   * NodeContainers.
2697
cab2a59cba8f doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    68
   *
5362
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
    69
   * \param a The first NodeContainer
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
    70
   * \param b The second NodeContainer
2890
172baa5960ff rework app constructors
Craig Dowell <craigdo@ee.washington.edu>
parents: 2834
diff changeset
    71
   *
172baa5960ff rework app constructors
Craig Dowell <craigdo@ee.washington.edu>
parents: 2834
diff changeset
    72
   * \note A frequently seen idiom that uses these constructors involves the
172baa5960ff rework app constructors
Craig Dowell <craigdo@ee.washington.edu>
parents: 2834
diff changeset
    73
   * implicit conversion by constructor of Ptr<Node>.  When used, two 
172baa5960ff rework app constructors
Craig Dowell <craigdo@ee.washington.edu>
parents: 2834
diff changeset
    74
   * Ptr<Node> will be passed to this constructor instead of NodeContainer&.
172baa5960ff rework app constructors
Craig Dowell <craigdo@ee.washington.edu>
parents: 2834
diff changeset
    75
   * C++ will notice the implicit conversion path that goes through the 
172baa5960ff rework app constructors
Craig Dowell <craigdo@ee.washington.edu>
parents: 2834
diff changeset
    76
   * NodeContainer (Ptr<Node> node) constructor above.  Using this conversion
172baa5960ff rework app constructors
Craig Dowell <craigdo@ee.washington.edu>
parents: 2834
diff changeset
    77
   * one may provide optionally provide arguments of Ptr<Node> to these 
172baa5960ff rework app constructors
Craig Dowell <craigdo@ee.washington.edu>
parents: 2834
diff changeset
    78
   * constructors.
2697
cab2a59cba8f doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
    79
   */
2516
d189f25169ee add extra NodeContainer constructors
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2417
diff changeset
    80
  NodeContainer (const NodeContainer &a, const NodeContainer &b);
d189f25169ee add extra NodeContainer constructors
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2417
diff changeset
    81
5362
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
    82
  /**
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
    83
   * Create a node container which is a concatenation of three input
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
    84
   * NodeContainers.
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
    85
   *
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
    86
   * \param a The first NodeContainer
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
    87
   * \param b The second NodeContainer
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
    88
   * \param c The third NodeContainer
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
    89
   *
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
    90
   * \note A frequently seen idiom that uses these constructors involves the
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
    91
   * implicit conversion by constructor of Ptr<Node>.  When used, two 
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
    92
   * Ptr<Node> will be passed to this constructor instead of NodeContainer&.
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
    93
   * C++ will notice the implicit conversion path that goes through the 
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
    94
   * NodeContainer (Ptr<Node> node) constructor above.  Using this conversion
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
    95
   * one may provide optionally provide arguments of Ptr<Node> to these 
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
    96
   * constructors.
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
    97
   */
2756
672f1203a4d1 add extra convenience constructors
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2699
diff changeset
    98
  NodeContainer (const NodeContainer &a, const NodeContainer &b, const NodeContainer &c);
5362
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
    99
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   100
  /**
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   101
   * Create a node container which is a concatenation of four input
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   102
   * NodeContainers.
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   103
   *
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   104
   * \param a The first NodeContainer
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   105
   * \param b The second NodeContainer
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   106
   * \param c The third NodeContainer
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   107
   * \param d The fourth NodeContainer
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   108
   *
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   109
   * \note A frequently seen idiom that uses these constructors involves the
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   110
   * implicit conversion by constructor of Ptr<Node>.  When used, two 
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   111
   * Ptr<Node> will be passed to this constructor instead of NodeContainer&.
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   112
   * C++ will notice the implicit conversion path that goes through the 
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   113
   * NodeContainer (Ptr<Node> node) constructor above.  Using this conversion
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   114
   * one may provide optionally provide arguments of Ptr<Node> to these 
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   115
   * constructors.
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   116
   */
2756
672f1203a4d1 add extra convenience constructors
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2699
diff changeset
   117
  NodeContainer (const NodeContainer &a, const NodeContainer &b, const NodeContainer &c, const NodeContainer &d);
5362
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   118
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   119
  /**
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   120
   * Create a node container which is a concatenation of five input
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   121
   * NodeContainers.
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   122
   *
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   123
   * \param a The first NodeContainer
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   124
   * \param b The second NodeContainer
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   125
   * \param c The third NodeContainer
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   126
   * \param d The fourth NodeContainer
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   127
   * \param e The fifth NodeContainer
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   128
   *
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   129
   * \note A frequently seen idiom that uses these constructors involves the
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   130
   * implicit conversion by constructor of Ptr<Node>.  When used, two 
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   131
   * Ptr<Node> will be passed to this constructor instead of NodeContainer&.
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   132
   * C++ will notice the implicit conversion path that goes through the 
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   133
   * NodeContainer (Ptr<Node> node) constructor above.  Using this conversion
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   134
   * one may provide optionally provide arguments of Ptr<Node> to these 
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   135
   * constructors.
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   136
   */
3937
04f9377661b8 convince global routing not to crash in the presence of bridges
Craig Dowell <craigdo@ee.washington.edu>
parents: 2890
diff changeset
   137
  NodeContainer (const NodeContainer &a, const NodeContainer &b, const NodeContainer &c, const NodeContainer &d,
04f9377661b8 convince global routing not to crash in the presence of bridges
Craig Dowell <craigdo@ee.washington.edu>
parents: 2890
diff changeset
   138
                 const NodeContainer &e);
2756
672f1203a4d1 add extra convenience constructors
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2699
diff changeset
   139
2697
cab2a59cba8f doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   140
  /**
5362
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   141
   * \brief Get an iterator which refers to the first Node in the 
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   142
   * container.
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   143
   *
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   144
   * Nodes can be retrieved from the container in two ways.  First,
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   145
   * directly by an index into the container, and second, using an iterator.
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   146
   * This method is used in the iterator method and is typically used in a 
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   147
   * for-loop to run through the Nodes
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   148
   *
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   149
   * \code
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   150
   *   NodeContainer::Iterator i;
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   151
   *   for (i = container.Begin (); i != container.End (); ++i)
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   152
   *     {
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   153
   *       (*i)->method ();  // some Node method
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   154
   *     }
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   155
   * \endcode
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   156
   *
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   157
   * \returns an iterator which refers to the first Node in the container.
2697
cab2a59cba8f doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   158
   */
2417
004ac83aca83 add device/node containers for helper API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   159
  Iterator Begin (void) const;
5362
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   160
2697
cab2a59cba8f doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   161
  /**
5362
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   162
   * \brief Get an iterator which indicates past-the-last Node in the 
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   163
   * container.
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   164
   *
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   165
   * Nodes can be retrieved from the container in two ways.  First,
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   166
   * directly by an index into the container, and second, using an iterator.
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   167
   * This method is used in the iterator method and is typically used in a 
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   168
   * for-loop to run through the Nodes
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   169
   *
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   170
   * \code
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   171
   *   NodeContainer::Iterator i;
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   172
   *   for (i = container.Begin (); i != container.End (); ++i)
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   173
   *     {
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   174
   *       (*i)->method ();  // some Node method
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   175
   *     }
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   176
   * \endcode
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   177
   *
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   178
   * \returns an iterator which indicates an ending condition for a loop.
2697
cab2a59cba8f doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   179
   */
2417
004ac83aca83 add device/node containers for helper API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   180
  Iterator End (void) const;
004ac83aca83 add device/node containers for helper API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   181
2697
cab2a59cba8f doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   182
  /**
5362
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   183
   * \brief Get the number of Ptr<Node> stored in this container.
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   184
   *
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   185
   * Nodes can be retrieved from the container in two ways.  First,
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   186
   * directly by an index into the container, and second, using an iterator.
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   187
   * This method is used in the direct method and is typically used to
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   188
   * define an ending condition in a for-loop that runs through the stored
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   189
   * Nodes
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   190
   *
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   191
   * \code
6013
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5399
diff changeset
   192
   *   uint32_t nNodes = container.GetN ();
5362
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   193
   *   for (uint32_t i = 0 i < nNodes; ++i)
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   194
   *     {
6013
fa3ab7f34eb2 checkpoint
Craig Dowell <craigdo@ee.washington.edu>
parents: 5399
diff changeset
   195
   *       Ptr<Node> p = container.Get (i)
5362
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   196
   *       i->method ();  // some Node method
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   197
   *     }
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   198
   * \endcode
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   199
   *
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   200
   * \returns the number of Ptr<Node> stored in this container.
2697
cab2a59cba8f doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   201
   */
2417
004ac83aca83 add device/node containers for helper API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   202
  uint32_t GetN (void) const;
5362
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   203
2697
cab2a59cba8f doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   204
  /**
5362
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   205
   * \brief Get the Ptr<Node> stored in this container at a given
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   206
   * index.
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   207
   *
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   208
   * Nodes can be retrieved from the container in two ways.  First,
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   209
   * directly by an index into the container, and second, using an iterator.
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   210
   * This method is used in the direct method and is used to retrieve the
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   211
   * indexed Ptr<Appliation>.
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   212
   *
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   213
   * \code
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   214
   *   uint32_t nNodes = container.GetN ();
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   215
   *   for (uint32_t i = 0 i < nNodes; ++i)
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   216
   *     {
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   217
   *       Ptr<Node> p = container.Get (i)
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   218
   *       i->method ();  // some Node method
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   219
   *     }
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   220
   * \endcode
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   221
   *
2697
cab2a59cba8f doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   222
   * \param i the index of the requested node pointer.
cab2a59cba8f doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   223
   * \returns the requested node pointer.
cab2a59cba8f doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   224
   */
2417
004ac83aca83 add device/node containers for helper API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   225
  Ptr<Node> Get (uint32_t i) const;
004ac83aca83 add device/node containers for helper API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   226
2697
cab2a59cba8f doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   227
  /**
5362
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   228
   * \brief Create n nodes and append pointers to them to the end of this 
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   229
   * NodeContainer.
2697
cab2a59cba8f doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   230
   *
5362
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   231
   * Nodes are at the heart of any ns-3 simulation.  One of the first tasks that
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   232
   * any simulation needs to do is to create a number of nodes.  This method
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   233
   * automates that task.
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   234
   *
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   235
   * \param n The number of Nodes to create
2697
cab2a59cba8f doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   236
   */
2417
004ac83aca83 add device/node containers for helper API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   237
  void Create (uint32_t n);
5362
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   238
2697
cab2a59cba8f doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   239
  /**
5362
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   240
   * \brief Append the contents of another NodeContainer to the end of
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   241
   * this container.
2697
cab2a59cba8f doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   242
   *
5399
73f6b9cbad86 fix most of doxygen warnings
Andrey Mazo <mazo@iitp.ru>
parents: 5362
diff changeset
   243
   * \param other The NodeContainer to append.
2697
cab2a59cba8f doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   244
   */
2417
004ac83aca83 add device/node containers for helper API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   245
  void Add (NodeContainer other);
5362
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   246
2697
cab2a59cba8f doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   247
  /**
5362
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   248
   * \brief Append a single Ptr<Node> to this container.
2697
cab2a59cba8f doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   249
   *
5362
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   250
   * \param node The Ptr<Node> to append.
2697
cab2a59cba8f doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   251
   */
2417
004ac83aca83 add device/node containers for helper API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   252
  void Add (Ptr<Node> node);
5362
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   253
4140
6bbf05bf4826 Brute force all of the helpers to use object name service
Craig Dowell <craigdo@ee.washington.edu>
parents: 3937
diff changeset
   254
  /**
5362
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   255
   * \brief Append to this container the single Ptr<Node> referred to
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   256
   * via its object name service registered name.
4140
6bbf05bf4826 Brute force all of the helpers to use object name service
Craig Dowell <craigdo@ee.washington.edu>
parents: 3937
diff changeset
   257
   *
5362
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   258
   * \param nodeName The name of the Node Object to add to the container.
4140
6bbf05bf4826 Brute force all of the helpers to use object name service
Craig Dowell <craigdo@ee.washington.edu>
parents: 3937
diff changeset
   259
   */
6bbf05bf4826 Brute force all of the helpers to use object name service
Craig Dowell <craigdo@ee.washington.edu>
parents: 3937
diff changeset
   260
  void Add (std::string nodeName);
2417
004ac83aca83 add device/node containers for helper API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   261
2699
cbc8b1ae341d add NodeContainer::GetGlobal
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2697
diff changeset
   262
  /**
5362
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   263
   * \brief Create a NodeContainer that contains a list of _all_ nodes
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   264
   * created through NodeContainer::Create() and stored in the 
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   265
   * ns3::NodeList.
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   266
   *
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   267
   * Whenever a Node is created, a Ptr<Node> is added to a global list of all
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   268
   * nodes in the system.  It is sometimes useful to be able to get to all
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   269
   * nodes in one place.  This method creates a NodeContainer that is 
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   270
   * initialized to contain all of the simulation nodes,
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   271
   *
d31f56c9b7cb Piles o' doxygen
Craig Dowell <craigdo@ee.washington.edu>
parents: 4140
diff changeset
   272
   * \returns a NoceContainer which contains a list of all Nodes.
2699
cbc8b1ae341d add NodeContainer::GetGlobal
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2697
diff changeset
   273
   */
cbc8b1ae341d add NodeContainer::GetGlobal
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2697
diff changeset
   274
  static NodeContainer GetGlobal (void);
cbc8b1ae341d add NodeContainer::GetGlobal
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2697
diff changeset
   275
2417
004ac83aca83 add device/node containers for helper API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   276
 private:
004ac83aca83 add device/node containers for helper API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   277
  std::vector<Ptr<Node> > m_nodes;
004ac83aca83 add device/node containers for helper API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   278
};
004ac83aca83 add device/node containers for helper API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   279
004ac83aca83 add device/node containers for helper API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   280
} // namespace ns3
004ac83aca83 add device/node containers for helper API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   281
004ac83aca83 add device/node containers for helper API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   282
#endif /* NODE_CONTAINER_H */