src/core/attribute-list.cc
changeset 3892 f985e116b696
parent 3190 51fe9001a679
child 4252 c82988c68a35
--- a/src/core/attribute-list.cc	Wed Jun 11 16:18:38 2008 -0700
+++ b/src/core/attribute-list.cc	Wed Jun 11 16:19:01 2008 -0700
@@ -256,4 +256,59 @@
   return true;
 }
 
+UnsafeAttributeList::UnsafeAttributeList ()
+{}
+UnsafeAttributeList::UnsafeAttributeList (const UnsafeAttributeList &o)
+{
+  for (uint32_t i = 0; i < o.m_attributes.size (); ++i)
+    {
+      Set (o.m_attributes[i].first, *(o.m_attributes[i].second));
+    }
+}
+UnsafeAttributeList &
+UnsafeAttributeList::operator = (const UnsafeAttributeList &o)
+{
+  m_attributes.clear ();
+  for (uint32_t i = 0; i < o.m_attributes.size (); ++i)
+    {
+      Set (o.m_attributes[i].first, *(o.m_attributes[i].second));
+    }
+  return *this;
+}
+
+UnsafeAttributeList::~UnsafeAttributeList ()
+{
+  m_attributes.clear ();
+}
+void 
+UnsafeAttributeList::Set (std::string name, const AttributeValue &param)
+{
+  if (name == "")
+    {
+      return;
+    }
+  for (uint32_t i = 0; i < m_attributes.size (); ++i)
+    {
+      if (m_attributes[i].first == name)
+        {
+          m_attributes[i].second = param.Copy ();
+          return;
+        }
+    }
+  m_attributes.push_back (std::make_pair (name, param.Copy ()));
+}
+
+AttributeList 
+UnsafeAttributeList::GetSafe (std::string tidName) const
+{
+  AttributeList list;
+  for (uint32_t i = 0; i < m_attributes.size (); ++i)
+    {
+      TypeId tid = TypeId::LookupByName (tidName);
+      list.SetWithTid (tid, m_attributes[i].first, *m_attributes[i].second);
+    }
+  return list;
+}
+
+
 } // namespace ns3