00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "node-container.h"
00021 #include "ns3/node-list.h"
00022
00023 namespace ns3 {
00024
00025 NodeContainer::NodeContainer ()
00026 {}
00027
00028 NodeContainer::NodeContainer (Ptr<Node> node)
00029 {
00030 m_nodes.push_back (node);
00031 }
00032 NodeContainer::NodeContainer (const NodeContainer &a, const NodeContainer &b)
00033 {
00034 Add (a);
00035 Add (b);
00036 }
00037 NodeContainer::NodeContainer (const NodeContainer &a, const NodeContainer &b,
00038 const NodeContainer &c)
00039 {
00040 Add (a);
00041 Add (b);
00042 Add (c);
00043 }
00044 NodeContainer::NodeContainer (const NodeContainer &a, const NodeContainer &b,
00045 const NodeContainer &c, const NodeContainer &d)
00046 {
00047 Add (a);
00048 Add (b);
00049 Add (c);
00050 Add (d);
00051 }
00052
00053 NodeContainer::NodeContainer (const NodeContainer &a, const NodeContainer &b,
00054 const NodeContainer &c, const NodeContainer &d,
00055 const NodeContainer &e)
00056 {
00057 Add (a);
00058 Add (b);
00059 Add (c);
00060 Add (d);
00061 Add (e);
00062 }
00063
00064 NodeContainer::Iterator
00065 NodeContainer::Begin (void) const
00066 {
00067 return m_nodes.begin ();
00068 }
00069 NodeContainer::Iterator
00070 NodeContainer::End (void) const
00071 {
00072 return m_nodes.end ();
00073 }
00074
00075 uint32_t
00076 NodeContainer::GetN (void) const
00077 {
00078 return m_nodes.size ();
00079 }
00080 Ptr<Node>
00081 NodeContainer::Get (uint32_t i) const
00082 {
00083 return m_nodes[i];
00084 }
00085 void
00086 NodeContainer::Create (uint32_t n)
00087 {
00088 for (uint32_t i = 0; i < n; i++)
00089 {
00090 m_nodes.push_back (CreateObject<Node> ());
00091 }
00092 }
00093 void
00094 NodeContainer::Add (NodeContainer other)
00095 {
00096 for (Iterator i = other.Begin (); i != other.End (); i++)
00097 {
00098 m_nodes.push_back (*i);
00099 }
00100 }
00101 void
00102 NodeContainer::Add (Ptr<Node> node)
00103 {
00104 m_nodes.push_back (node);
00105 }
00106
00107 NodeContainer
00108 NodeContainer::GetGlobal (void)
00109 {
00110 NodeContainer c;
00111 for (NodeList::Iterator i = NodeList::Begin (); i != NodeList::End (); ++i)
00112 {
00113 c.Add (*i);
00114 }
00115 return c;
00116 }
00117
00118 }