src/node/queue.cc
changeset 439 fed13fb45eef
parent 378 32bd402ea5ea
child 534 9fa0b6f245d7
--- a/src/node/queue.cc	Thu Apr 19 22:29:09 2007 +0200
+++ b/src/node/queue.cc	Thu Apr 26 11:36:05 2007 -0400
@@ -20,6 +20,7 @@
 #include "ns3/debug.h"
 #include "ns3/composite-trace-resolver.h"
 #include "queue.h"
+#include "ns3/default-value.h"
 
 NS_DEBUG_COMPONENT_DEFINE ("Queue");
 
@@ -209,4 +210,47 @@
   return *defaultQueue;
 }
 
+
+Queue *
+Queue::CreateDefault (void)
+{
+  std::string defaultValue = GetDefault ()->GetValue ();
+  for (List::iterator i = GetList ()->begin ();
+       i != GetList ()->end (); i++)
+    {
+      if (i->second == defaultValue)
+        {
+          return i->first->Copy ();
+        }
+    }
+  NS_ASSERT (false);
+  // quiet compiler
+  return 0;
+}
+void 
+Queue::Add (Queue &queue, const std::string &name)
+{
+  GetDefault ()->AddPossibleValue (name);
+  GetList ()->push_back (std::make_pair (&queue, name));
+}
+void 
+Queue::AddDefault (Queue &queue, const std::string &name)
+{
+  GetDefault ()->AddDefaultValue (name);
+  GetList ()->push_back (std::make_pair (&queue, name));
+}
+StringEnumDefaultValue *
+Queue::GetDefault (void)
+{
+  static StringEnumDefaultValue value ("queue", "Packet Queue");
+  return &value;
+}
+Queue::List *
+Queue::GetList (void)
+{
+  static List list;
+  return &list;
+}
+
+
 }; // namespace ns3