src/core/global-value.cc
changeset 2570 15d5421022a1
parent 2472 ae81f8ac1854
child 2576 793375cbbed6
--- a/src/core/global-value.cc	Fri Mar 07 12:18:34 2008 -0800
+++ b/src/core/global-value.cc	Sun Mar 09 21:07:14 2008 +0100
@@ -40,14 +40,15 @@
   return m_checker;
 }
   
-void 
+bool
 GlobalValue::SetValue (Attribute value)
 {
   if (!m_checker->Check (value))
     {
-      NS_FATAL_ERROR ("Invalid new value.");
+      return false;
     }
   m_initialValue = value;
+  return true;
 }
 
 void 
@@ -57,10 +58,26 @@
     {
       if ((*i)->GetName () == name)
 	{
-	  (*i)->SetValue (value);
+	  if (!(*i)->SetValue (value))
+	    {
+	      NS_FATAL_ERROR ("Invalid new value for global value: "<<name);
+	    }
 	  return;
 	}
     }
+  NS_FATAL_ERROR ("Non-existant global value: "<<name);
+}
+bool 
+GlobalValue::BindFailSafe (std::string name, Attribute value)
+{
+  for (Iterator i = Begin (); i != End (); i++)
+    {
+      if ((*i)->GetName () == name)
+	{
+	  return (*i)->SetValue (value);
+	}
+    }
+  return false;
 }
 GlobalValue::Iterator 
 GlobalValue::Begin (void)