--- 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