Files
unison/src/core/boolean-value.cc

75 lines
1.2 KiB
C++
Raw Normal View History

2008-01-30 17:28:18 +01:00
#include "boolean-value.h"
#include "fatal-error.h"
2008-01-30 17:28:18 +01:00
namespace ns3 {
BooleanValue::BooleanValue (bool value)
: m_value (value)
{}
void
BooleanValue::Set (bool value)
{
m_value = value;
}
bool
BooleanValue::Get (void) const
{
return m_value;
}
2008-01-31 15:10:21 +01:00
PValue
2008-01-30 17:28:18 +01:00
BooleanValue::Copy (void) const
{
2008-01-31 15:10:21 +01:00
return PValue::Create<BooleanValue> (*this);
2008-01-30 17:28:18 +01:00
}
std::string
BooleanValue::SerializeToString (Ptr<const ParamSpec> spec) const
{
std::string value;
if (m_value)
{
value = "true";
}
else
{
value = "false";
}
return value;
}
bool
BooleanValue::DeserializeFromString (std::string value, Ptr<const ParamSpec> spec)
{
if (value == "true" ||
value == "1" ||
value == "t")
{
m_value = true;
return true;
}
else if (value == "false" ||
value == "0" ||
value == "f")
{
m_value = false;
return true;
}
else
{
return false;
}
}
2008-01-31 15:10:21 +01:00
BooleanValue::BooleanValue (PValue value)
{
2008-01-31 15:10:21 +01:00
const BooleanValue *v = value.DynCast<const BooleanValue *> ();
if (v == 0)
{
NS_FATAL_ERROR ("assigning non-Boolean value to Boolean value.");
}
m_value = v->m_value;
}
2008-01-31 15:10:21 +01:00
BooleanValue::operator PValue () const
{
2008-01-31 15:10:21 +01:00
return PValue::Create<BooleanValue> (*this);
}
2008-01-30 17:28:18 +01:00
} // namespace ns3