Piles o' doxygen
authorCraig Dowell <craigdo@ee.washington.edu>
Sun, 04 Oct 2009 21:46:30 -0700
changeset 5362 d31f56c9b7cb
parent 5361 e8989b44bffb
child 5363 7134a7d9337a
child 5364 9c79df567f12
Piles o' doxygen
src/helper/application-container.h
src/helper/ipv4-list-routing-helper.h
src/helper/ipv4-static-routing-helper.h
src/helper/ipv6-list-routing-helper.h
src/helper/ipv6-routing-helper.h
src/helper/ipv6-static-routing-helper.h
src/helper/mesh-helper.h
src/helper/mobility-helper.h
src/helper/net-device-container.h
src/helper/node-container.h
--- a/src/helper/application-container.h	Sun Oct 04 20:52:24 2009 -0700
+++ b/src/helper/application-container.h	Sun Oct 04 21:46:30 2009 -0700
@@ -37,7 +37,6 @@
  * add a Ptr<Application> to that application into a Container for use
  * by the caller.  This is that container used to hold the Ptr<Application>
  * which are instantiated by the Application helper.
- *
  */
 class ApplicationContainer
 {
@@ -52,16 +51,16 @@
    * been previously instantiated.  The single application is specified
    * by a smart pointer.
    *
-   * \param application The application to add to the container.
+   * \param application The Ptr<Application> to add to the container.
    */
   ApplicationContainer (Ptr<Application> application);
 
   /**
    * Create an ApplicationContainer with exactly one application which has
-   * been previously instantiated and assigned a name using the Object name
-   * service.  This Application is specified by its assigned name. 
+   * been previously instantiated and assigned a name using the Object Name
+   * Service.  This Application is then specified by its assigned name. 
    *
-   * \param name The name of the application object to add to the container.
+   * \param name The name of the Application Object to add to the container.
    */
   ApplicationContainer (std::string name);
 
@@ -89,7 +88,7 @@
   Iterator Begin (void) const;
 
   /**
-   * \brief Get an iterator which indicates to the last Application in the 
+   * \brief Get an iterator which indicates past-the-last Application in the 
    * container.
    *
    * Applications can be retrieved from the container in two ways.  First,
@@ -141,10 +140,10 @@
    * indexed Ptr<Appliation>.
    *
    * \code
-   *   uint32_t nApplications = continer.GetN ();
+   *   uint32_t nApplications = container.GetN ();
    *   for (uint32_t i = 0 i < nApplications; ++i)
    *     {
-   *       Ptr<Application> p = continer.Get (i)
+   *       Ptr<Application> p = container.Get (i)
    *       i->method ();  // some Application method
    *     }
    * \endcode
@@ -163,7 +162,7 @@
   void Add (ApplicationContainer other);
 
   /**
-   * \brief Append the single Ptr<Application> to this container.
+   * \brief Append a single Ptr<Application> to this container.
    *
    * \param application The Ptr<Application> to append.
    */
@@ -173,7 +172,7 @@
    * \brief Append to this container the single Ptr<Application> referred to
    * via its object name service registered name.
    *
-   * \param name The name of the application object to add to the container.
+   * \param name The name of the Application Object to add to the container.
    */
   void Add (std::string name);
 
--- a/src/helper/ipv4-list-routing-helper.h	Sun Oct 04 20:52:24 2009 -0700
+++ b/src/helper/ipv4-list-routing-helper.h	Sun Oct 04 21:46:30 2009 -0700
@@ -42,8 +42,8 @@
   Ipv4ListRoutingHelper ();
 
   /*
-   * Construct an Ipv4ListRoutingHelper used to make installing routing
-   * protocols easier.
+   * \internal
+   * Destroy an Ipv4ListRoutingHelper.
    */
   virtual ~Ipv4ListRoutingHelper ();
 
--- a/src/helper/ipv4-static-routing-helper.h	Sun Oct 04 20:52:24 2009 -0700
+++ b/src/helper/ipv4-static-routing-helper.h	Sun Oct 04 21:46:30 2009 -0700
@@ -162,7 +162,6 @@
    * assignment and prevent the compiler from happily inserting its own.
    */
   Ipv4StaticRoutingHelper &operator = (const Ipv4StaticRoutingHelper &o);
-
 };
 
 } // namespace ns3
--- a/src/helper/ipv6-list-routing-helper.h	Sun Oct 04 20:52:24 2009 -0700
+++ b/src/helper/ipv6-list-routing-helper.h	Sun Oct 04 21:46:30 2009 -0700
@@ -37,9 +37,24 @@
 class Ipv6ListRoutingHelper : public Ipv6RoutingHelper
 {
 public:
+  /**
+   * Construct an Ipv6 Ipv6ListRoutingHelper which is used to make life easier
+   * for people wanting to configure routing using Ipv6.
+   */
   Ipv6ListRoutingHelper ();
+
+  /**
+   * \internal
+   * Destroy an Ipv6 Ipv6ListRoutingHelper.
+   */
   virtual ~Ipv6ListRoutingHelper ();
+
+  /**
+   * \brief Construct an Ipv6ListRoutingHelper from another previously 
+   * initialized instance (Copy Constructor).
+   */
   Ipv6ListRoutingHelper (const Ipv6ListRoutingHelper &);
+
   /**
    * \returns pointer to clone of this Ipv6ListRoutingHelper 
    * 
@@ -67,6 +82,11 @@
    */
   virtual Ptr<Ipv6RoutingProtocol> Create (Ptr<Node> node) const;
 private:
+  /**
+   * \internal
+   * \brief Assignment operator declared private and not implemented to disallow
+   * assignment and prevent the compiler from happily inserting its own.
+   */
   Ipv6ListRoutingHelper &operator = (const Ipv6ListRoutingHelper &o);
 
   std::list<std::pair<const Ipv6RoutingHelper *,int16_t> > m_list;
--- a/src/helper/ipv6-routing-helper.h	Sun Oct 04 20:52:24 2009 -0700
+++ b/src/helper/ipv6-routing-helper.h	Sun Oct 04 21:46:30 2009 -0700
@@ -40,6 +40,11 @@
 class Ipv6RoutingHelper
 {
 public:
+
+  /**
+   * \internal
+   * Destroy an Ipv6 Ipv6RoutingHelper.
+   */
   virtual ~Ipv6RoutingHelper ();
 
   /**
--- a/src/helper/ipv6-static-routing-helper.h	Sun Oct 04 20:52:24 2009 -0700
+++ b/src/helper/ipv6-static-routing-helper.h	Sun Oct 04 21:46:30 2009 -0700
@@ -45,8 +45,15 @@
    * \brief Constructor.
    */
   Ipv6StaticRoutingHelper ();
+
+  /**
+   * \brief Construct an Ipv6ListRoutingHelper from another previously 
+   * initialized instance (Copy Constructor).
+   */
   Ipv6StaticRoutingHelper (const Ipv6StaticRoutingHelper &);
+
   /**
+   * \internal
    * \returns pointer to clone of this Ipv6StaticRoutingHelper
    *
    * This method is mainly for internal use by the other helpers;
@@ -69,12 +76,33 @@
    */
   Ptr<Ipv6StaticRouting> GetStaticRouting (Ptr<Ipv6> ipv6) const;
 
+  /**
+   * \brief Add a multicast route to a node and net device using explicit 
+   * Ptr<Node> and Ptr<NetDevice>
+   */
   void AddMulticastRoute (Ptr<Node> n, Ipv6Address source, Ipv6Address group,  
     Ptr<NetDevice> input, NetDeviceContainer output);
+
+  /**
+   * \brief Add a multicast route to a node and device using a name string 
+   * previously associated to the node using the Object Name Service and a
+   * Ptr<NetDevice>
+   */
   void AddMulticastRoute (std::string n, Ipv6Address source, Ipv6Address group,  
     Ptr<NetDevice> input, NetDeviceContainer output);
+
+  /**
+   * \brief Add a multicast route to a node and device using a Ptr<Node> and a 
+   * name string previously associated to the device using the Object Name Service.
+   */
   void AddMulticastRoute (Ptr<Node> n, Ipv6Address source, Ipv6Address group,  
     std::string inputName, NetDeviceContainer output);
+
+  /**
+   * \brief Add a multicast route to a node and device using name strings
+   * previously associated to both the node and device using the Object Name 
+   * Service.
+   */
   void AddMulticastRoute (std::string nName, Ipv6Address source, Ipv6Address group,  
     std::string inputName, NetDeviceContainer output);
 
@@ -89,6 +117,11 @@
   void SetDefaultMulticastRoute (std::string nName, std::string ndName);
 #endif
 private:
+  /**
+   * \internal
+   * \brief Assignment operator declared private and not implemented to disallow
+   * assignment and prevent the compiler from happily inserting its own.
+   */
   Ipv6StaticRoutingHelper &operator = (const Ipv6StaticRoutingHelper &o);
 };
 
--- a/src/helper/mesh-helper.h	Sun Oct 04 20:52:24 2009 -0700
+++ b/src/helper/mesh-helper.h	Sun Oct 04 21:46:30 2009 -0700
@@ -38,9 +38,17 @@
 class MeshHelper
 {
 public:
+  /**
+   * Construct a MeshHelper used to make life easier when creating 802.11s networks.
+   */
   MeshHelper ();
-  static MeshHelper
-  Default ();
+
+  /**
+   * \brief Set the helper to the default values for the MAC type,  remote
+   * station manager and channel policy.
+   */
+   static MeshHelper Default ();
+
   /**
    * \param n0 the name of the attribute to set
    * \param v0 the value of the attribute to set
@@ -118,6 +126,10 @@
     SPREAD_CHANNELS,
     ZERO_CHANNEL
   };
+
+  /**
+   * \brief set the channel policy
+   */
   void SetSpreadInterfaceChannels (ChannelPolicy);
   /**
    * \brief Set a number of interfaces in a mesh network
@@ -163,10 +175,19 @@
                 std::string n5 = "", const AttributeValue &v5 = EmptyAttributeValue (),
                 std::string n6 = "", const AttributeValue &v6 = EmptyAttributeValue (),
                 std::string n7 = "", const AttributeValue &v7 = EmptyAttributeValue ());
+
+  /**
+   * \brief Print statistics.
+   */
   void Report (const ns3::Ptr<ns3::NetDevice>&, std::ostream&);
+
+  /**
+   * \brief Reset statistics.
+   */
   void ResetStats (const ns3::Ptr<ns3::NetDevice>&);
 private:
   /**
+   * \internal
    * \returns a WifiNetDevice with ready-to-use interface
    */
   Ptr<WifiNetDevice> CreateInterface (const WifiPhyHelper &phyHelper, Ptr<Node> node, uint16_t channelId) const;
--- a/src/helper/mobility-helper.h	Sun Oct 04 20:52:24 2009 -0700
+++ b/src/helper/mobility-helper.h	Sun Oct 04 21:46:30 2009 -0700
@@ -40,7 +40,16 @@
 class MobilityHelper
 {
 public:
+  /**
+   * Construct a Mobility Helper which is used to make life easier when working
+   * with mobility models.
+   */
   MobilityHelper ();
+
+  /**
+   * \internal
+   * Destroy a Mobility Helper
+   */
   ~MobilityHelper ();
 
   /**
@@ -241,6 +250,9 @@
   static void EnableAsciiAll (std::ostream &os);
 
 private:
+  /**
+   * \internal
+   */
   static void CourseChanged (std::ostream *os, Ptr<const MobilityModel> mobility);
   std::vector<Ptr<MobilityModel> > m_mobilityStack;
   ObjectFactory m_mobility;
--- a/src/helper/net-device-container.h	Sun Oct 04 20:52:24 2009 -0700
+++ b/src/helper/net-device-container.h	Sun Oct 04 21:46:30 2009 -0700
@@ -29,6 +29,14 @@
 /**
  * \brief holds a vector of ns3::NetDevice pointers
  *
+ * Typically ns-3 NetDevices are installed on nodes using a net device
+ * helper.  The helper Install method takes a NodeContainer which holds 
+ * some number of Ptr<Node>.  For each of the Nodes in the NodeContainer
+ * the helper will instantiate a net device, add a MAC address and a queue
+ * to the device and install it to the node.  For each of the devices, the
+ * helper also adds the device into a Container for later use by the caller.
+ * This is that container used to hold the Ptr<NetDevice> which are 
+ * instantiated by the device helper.
  */
 class NetDeviceContainer
 {
@@ -39,18 +47,26 @@
    * Create an empty NetDeviceContainer.
    */
   NetDeviceContainer ();
+
   /**
    * \param dev a device to add to the container
    *
-   * Create a NetDeviceContainer with exactly one device
+   * Create a NetDeviceContainer with exactly one net device that has previously
+   * been instantiated
    */
   NetDeviceContainer (Ptr<NetDevice> dev);
+
   /**
-   * \param devName The name of a device to add to the container
+   * Create a NetDeviceContainer with exactly one device which has been 
+   * previously instantiated and assigned a name using the Object name
+   * service.  This NetDevice is specified by its assigned name. 
+   *
+   * \param devName The name of the device to add to the container
    *
    * Create a NetDeviceContainer with exactly one device
    */
   NetDeviceContainer (std::string devName);
+
   /**
    * \param a a device container
    * \param b another device container
@@ -69,40 +85,112 @@
   NetDeviceContainer (const NetDeviceContainer &a, const NetDeviceContainer &b);
 
   /**
-   * \returns an iterator which points to the start of the array of pointers.
+   * \brief Get an iterator which refers to the first NetDevice in the 
+   * container.
+   *
+   * NetDevices 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 NetDevices
+   *
+   * \code
+   *   NetDeviceContainer::Iterator i;
+   *   for (i = container.Begin (); i != container.End (); ++i)
+   *     {
+   *       (*i)->method ();  // some NetDevice method
+   *     }
+   * \endcode
+   *
+   * \returns an iterator which refers to the first NetDevice in the container.
    */
   Iterator Begin (void) const;
+
   /**
-   * \returns an iterator which points to the end of the array of pointers.
+   * \brief Get an iterator which indicates past-the-last NetDevice in the 
+   * container.
+   *
+   * NetDevices 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 NetDevices
+   *
+   * \code
+   *   NetDeviceContainer::Iterator i;
+   *   for (i = container.Begin (); i != container.End (); ++i)
+   *     {
+   *       (*i)->method ();  // some NetDevice method
+   *     }
+   * \endcode
+   *
+   * \returns an iterator which indicates an ending condition for a loop.
    */
   Iterator End (void) const;
 
   /**
-   * \returns the number of netdevice pointers stored in this container.
+   * \brief Get the number of Ptr<NetDevice> stored in this container.
+   *
+   * NetDevices 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
+   * NetDevices
+   *
+   * \code
+   *   uint32_t nDevices = container.GetN ();
+   *   for (uint32_t i = 0 i < nDevices; ++i)
+   *     {
+   *       Ptr<NetDevice> p = container.Get (i)
+   *       i->method ();  // some NetDevice method
+   *     }
+   * \endcode
+   *
+   * \returns the number of Ptr<NetDevice> stored in this container.
    */
   uint32_t GetN (void) const;
+
   /**
-   * \param i the index of the requested netdevice pointer.
-   * \returns the requested netdevice pointer.
+   * \brief Get the Ptr<NetDevice> stored in this container at a given
+   * index.
+   *
+   * NetDevices 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<NetDevice>.
+   *
+   * \code
+   *   uint32_t nDevices = container.GetN ();
+   *   for (uint32_t i = 0 i < nDevices; ++i)
+   *     {
+   *       Ptr<NetDevice> p = container.Get (i)
+   *       i->method ();  // some NetDevice method
+   *     }
+   * \endcode
+   *
+   * \param i the index of the requested device pointer.
+   * \returns the requested device pointer.
    */
   Ptr<NetDevice> Get (uint32_t i) const;
 
   /**
-   * \param other another netdevice container
+   * \brief Append the contents of another NetDeviceContainer to the end of
+   * this container.
    *
-   * Append to the end of this container the other input container.
+   * \param The NetDeviceContainer to append.
    */
   void Add (NetDeviceContainer other);
+
   /**
-   * \param device another netdevice pointer.
+   * \brief Append a single Ptr<NetDevice> to this container.
    *
-   * Append to the end of this container the input netdevice pointer.
+   * \param application The Ptr<NetDevice> to append.
    */
   void Add (Ptr<NetDevice> device);
+
   /**
-   * \param deviceName The name of another netdevice to add.
+   * \brief Append to this container the single Ptr<NetDevice> referred to
+   * via its object name service registered name.
    *
-   * Append to the end of this container the input netdevice pointer.
+   * \param name The name of the NetDevice Object to add to the container.
    */
   void Add (std::string deviceName);
 
--- a/src/helper/node-container.h	Sun Oct 04 20:52:24 2009 -0700
+++ b/src/helper/node-container.h	Sun Oct 04 21:46:30 2009 -0700
@@ -29,6 +29,11 @@
 /**
  * \brief 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.
  */
 class NodeContainer
 {
@@ -39,24 +44,30 @@
    * Create an empty NodeContainer.
    */
   NodeContainer ();
+
   /**
-   * \param node a node to add to the container
+   * Create a NodeContainer with exactly one node which has been previously
+   * instantiated.  The single Node is specified by a smart pointer.
    *
-   * Create a NodeContainer with exactly one node.
+   * \param node The Ptr<Node> to add to the container.
    */
   NodeContainer (Ptr<Node> node);
+
   /**
-   * \param nodeName The name of a node to add to the container
+   * 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. 
    *
-   * Create a NodeContainer with exactly one node.
+   * \param name The name of the Node Object to add to the container.
    */
   NodeContainer (std::string nodeName);
+
   /**
-   * \param a a node container
-   * \param b another node container
+   * Create a node container which is a concatenation of two input
+   * NodeContainers.
    *
-   * Create a node container which is a concatenation of the two input
-   * NodeContainers.
+   * \param a The first NodeContainer
+   * \param b The second NodeContainer
    *
    * \note A frequently seen idiom that uses these constructors involves the
    * implicit conversion by constructor of Ptr<Node>.  When used, two 
@@ -68,60 +79,197 @@
    */
   NodeContainer (const NodeContainer &a, const NodeContainer &b);
 
+  /**
+   * Create a node container which is a concatenation of three input
+   * NodeContainers.
+   *
+   * \param a The first NodeContainer
+   * \param b The second NodeContainer
+   * \param c The third NodeContainer
+   *
+   * \note A frequently seen idiom that uses these constructors involves the
+   * implicit conversion by constructor of Ptr<Node>.  When used, two 
+   * Ptr<Node> will be passed to this constructor instead of NodeContainer&.
+   * C++ will notice the implicit conversion path that goes through the 
+   * NodeContainer (Ptr<Node> node) constructor above.  Using this conversion
+   * one may provide optionally provide arguments of Ptr<Node> to these 
+   * constructors.
+   */
   NodeContainer (const NodeContainer &a, const NodeContainer &b, const NodeContainer &c);
+
+  /**
+   * Create a node container which is a concatenation of four input
+   * NodeContainers.
+   *
+   * \param a The first NodeContainer
+   * \param b The second NodeContainer
+   * \param c The third NodeContainer
+   * \param d The fourth NodeContainer
+   *
+   * \note A frequently seen idiom that uses these constructors involves the
+   * implicit conversion by constructor of Ptr<Node>.  When used, two 
+   * Ptr<Node> will be passed to this constructor instead of NodeContainer&.
+   * C++ will notice the implicit conversion path that goes through the 
+   * NodeContainer (Ptr<Node> node) constructor above.  Using this conversion
+   * one may provide optionally provide arguments of Ptr<Node> to these 
+   * constructors.
+   */
   NodeContainer (const NodeContainer &a, const NodeContainer &b, const NodeContainer &c, const NodeContainer &d);
+
+  /**
+   * Create a node container which is a concatenation of five input
+   * NodeContainers.
+   *
+   * \param a The first NodeContainer
+   * \param b The second NodeContainer
+   * \param c The third NodeContainer
+   * \param d The fourth NodeContainer
+   * \param e The fifth NodeContainer
+   *
+   * \note A frequently seen idiom that uses these constructors involves the
+   * implicit conversion by constructor of Ptr<Node>.  When used, two 
+   * Ptr<Node> will be passed to this constructor instead of NodeContainer&.
+   * C++ will notice the implicit conversion path that goes through the 
+   * NodeContainer (Ptr<Node> node) constructor above.  Using this conversion
+   * one may provide optionally provide arguments of Ptr<Node> to these 
+   * constructors.
+   */
   NodeContainer (const NodeContainer &a, const NodeContainer &b, const NodeContainer &c, const NodeContainer &d,
                  const NodeContainer &e);
 
   /**
-   * \returns an iterator to the start of the vector of node pointers.
+   * \brief 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
+   *
+   * \code
+   *   NodeContainer::Iterator i;
+   *   for (i = container.Begin (); i != container.End (); ++i)
+   *     {
+   *       (*i)->method ();  // some Node method
+   *     }
+   * \endcode
+   *
+   * \returns an iterator which refers to the first Node in the container.
    */
   Iterator Begin (void) const;
+
   /**
-   * \returns an iterator to the end of the vector of node pointers.
+   * \brief 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
+   *
+   * \code
+   *   NodeContainer::Iterator i;
+   *   for (i = container.Begin (); i != container.End (); ++i)
+   *     {
+   *       (*i)->method ();  // some Node method
+   *     }
+   * \endcode
+   *
+   * \returns an iterator which indicates an ending condition for a loop.
    */
   Iterator End (void) const;
 
   /**
-   * \returns the number of node pointers stored in this NodeContainer.
+   * \brief 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
+   *
+   * \code
+   *   uint32_t nNodes = continer.GetN ();
+   *   for (uint32_t i = 0 i < nNodes; ++i)
+   *     {
+   *       Ptr<Node> p = continer.Get (i)
+   *       i->method ();  // some Node method
+   *     }
+   * \endcode
+   *
+   * \returns the number of Ptr<Node> stored in this container.
    */
   uint32_t GetN (void) const;
+
   /**
+   * \brief 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>.
+   *
+   * \code
+   *   uint32_t nNodes = container.GetN ();
+   *   for (uint32_t i = 0 i < nNodes; ++i)
+   *     {
+   *       Ptr<Node> p = container.Get (i)
+   *       i->method ();  // some Node method
+   *     }
+   * \endcode
+   *
    * \param i the index of the requested node pointer.
    * \returns the requested node pointer.
    */
   Ptr<Node> Get (uint32_t i) const;
 
   /**
-   * \param n the number of nodes to create
+   * \brief Create n nodes and append pointers to them to the end of this 
+   * NodeContainer.
    *
-   * 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.
+   *
+   * \param n The number of Nodes to create
    */
   void Create (uint32_t n);
+
   /**
-   * \param other another NodeContainer
+   * \brief Append the contents of another NodeContainer to the end of
+   * this container.
    *
-   * Append the node pointers from the input NodeContainer at the end
-   * of this NodeContainer.
+   * \param The NodeContainer to append.
    */
   void Add (NodeContainer other);
+
   /**
-   * \param node a node pointer
+   * \brief Append a single Ptr<Node> to this container.
    *
-   * Append the input node pointer at the end of this NodeContainer.
+   * \param node The Ptr<Node> to append.
    */
   void Add (Ptr<Node> node);
+
   /**
-   * \param nodeName The name of a node
+   * \brief Append to this container the single Ptr<Node> referred to
+   * via its object name service registered name.
    *
-   * Append the input node pointer at the end of this NodeContainer.
+   * \param nodeName The name of the Node Object to add to the container.
    */
   void Add (std::string nodeName);
 
   /**
-   * \returns a container which contains a list of _all_ nodes
-   *          created through NodeContainer::Create and stored
-   *          in ns3::NodeList.
+   * \brief 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,
+   *
+   * \returns a NoceContainer which contains a list of all Nodes.
    */
   static NodeContainer GetGlobal (void);