Support PointerValue::DeserializeFromString()
This commit is contained in:
@@ -41,13 +41,13 @@ GlobalValue::GlobalValue (std::string name, std::string help,
|
||||
{
|
||||
if (m_checker == 0)
|
||||
{
|
||||
NS_FATAL_ERROR ("Checker should not be zero.");
|
||||
NS_FATAL_ERROR ("Checker should not be zero on " << name );
|
||||
}
|
||||
m_initialValue = m_checker->CreateValidValue (initialValue);
|
||||
m_currentValue = m_initialValue;
|
||||
if (m_initialValue == 0)
|
||||
{
|
||||
NS_FATAL_ERROR ("Value set by user is invalid.");
|
||||
NS_FATAL_ERROR ("Value set by user on " << name << " is invalid.");
|
||||
}
|
||||
GetVector ()->push_back (this);
|
||||
InitializeFromEnv ();
|
||||
|
||||
@@ -18,6 +18,8 @@
|
||||
* Authors: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
|
||||
*/
|
||||
#include "pointer.h"
|
||||
#include "object-factory.h"
|
||||
#include <sstream>
|
||||
|
||||
namespace ns3 {
|
||||
|
||||
@@ -59,8 +61,19 @@ PointerValue::SerializeToString (Ptr<const AttributeChecker> checker) const
|
||||
bool
|
||||
PointerValue::DeserializeFromString (std::string value, Ptr<const AttributeChecker> checker)
|
||||
{
|
||||
NS_FATAL_ERROR ("It is not possible to deserialize a pointer.");
|
||||
return false;
|
||||
// We assume that the string you want to deserialize contains
|
||||
// a description for an ObjectFactory to create an object and then assign it to the
|
||||
// member variable.
|
||||
ObjectFactory factory;
|
||||
std::istringstream iss;
|
||||
iss.str(value);
|
||||
iss >> factory;
|
||||
if (iss.fail())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
m_value = factory.Create<Object> ();
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace ns3
|
||||
|
||||
Reference in New Issue
Block a user