--- a/src/core/double.cc Wed Mar 12 10:18:14 2008 -0700
+++ b/src/core/double.cc Wed Mar 12 11:35:00 2008 -0700
@@ -56,15 +56,18 @@
}
ATTRIBUTE_VALUE_IMPLEMENT (Double);
- ATTRIBUTE_CONVERTER_IMPLEMENT (Double);
+ATTRIBUTE_CONVERTER_IMPLEMENT (Double);
-Ptr<const AttributeChecker> MakeDoubleChecker (double min, double max)
+namespace internal {
+
+Ptr<const AttributeChecker> MakeDoubleChecker (double min, double max, std::string name)
{
struct Checker : public AttributeChecker
{
- Checker (double minValue, double maxValue)
+ Checker (double minValue, double maxValue, std::string name)
: m_minValue (minValue),
- m_maxValue (maxValue) {}
+ m_maxValue (maxValue),
+ m_name (name) {}
virtual bool Check (Attribute value) const {
const DoubleValue *v = value.DynCast<const DoubleValue *> ();
if (v == 0)
@@ -73,14 +76,27 @@
}
return v->Get () >= m_minValue && v->Get () <= m_maxValue;
}
+ virtual std::string GetType (void) const {
+ return m_name;
+ }
+ virtual bool HasTypeConstraints (void) const {
+ return true;
+ }
+ virtual std::string GetTypeConstraints (void) const {
+ std::ostringstream oss;
+ oss << m_minValue << ":" << m_maxValue;
+ return oss.str ();
+ }
virtual Attribute Create (void) const {
return Attribute::Create<DoubleValue> ();
}
double m_minValue;
double m_maxValue;
- } *checker = new Checker (min, max);
+ std::string m_name;
+ } *checker = new Checker (min, max, name);
return Ptr<const AttributeChecker> (checker, false);
}
+} // namespace internal
} // namespace ns3