introduce top-level ParamSpec for bindings.
--- a/src/core/boolean-value.h Wed Feb 13 22:39:17 2008 +0100
+++ b/src/core/boolean-value.h Wed Feb 13 23:37:46 2008 +0100
@@ -24,6 +24,8 @@
bool m_value;
};
+class BooleanParamSpec : public ParamSpec {};
+
template <typename T1>
Ptr<ParamSpec> MakeBooleanParamSpec (T1 a1, bool initialValue);
@@ -40,13 +42,13 @@
template <typename T1>
Ptr<ParamSpec> MakeBooleanParamSpec (T1 a1, bool initialValue)
{
- return MakeParamSpecHelper (a1, BooleanValue (initialValue));
+ return MakeParamSpecHelper<BooleanParamSpec> (a1, BooleanValue (initialValue));
}
template <typename T1, typename T2>
Ptr<ParamSpec> MakeBooleanParamSpec (T1 a1, T2 a2, bool initialValue)
{
- return MakeParamSpecHelper (a1, a2, BooleanValue (initialValue));
+ return MakeParamSpecHelper<BooleanParamSpec> (a1, a2, BooleanValue (initialValue));
}
--- a/src/core/class-value-helper.h Wed Feb 13 22:39:17 2008 +0100
+++ b/src/core/class-value-helper.h Wed Feb 13 23:37:46 2008 +0100
@@ -76,19 +76,19 @@
}
-template <typename T, typename U, typename T1>
+template <typename T, typename U, typename BASE, typename T1>
Ptr<ParamSpec>
MakeClassValueHelperParamSpec (T1 a1, const T &initialValue)
{
- return MakeParamSpecHelper (a1, ClassValue<T,U> (initialValue));
+ return MakeParamSpecHelper<BASE> (a1, ClassValue<T,U> (initialValue));
}
-template <typename T, typename U, typename T1, typename T2>
+template <typename T, typename U, typename BASE, typename T1, typename T2>
Ptr<ParamSpec>
MakeClassValueHelperParamSpec (T1 a1, T2 a2, const T &initialValue)
{
- return MakeParamSpecHelper (a1, a2, ClassValue<T,U> (initialValue));
+ return MakeParamSpecHelper<BASE> (a1, a2, ClassValue<T,U> (initialValue));
}
} // namespace ns3
--- a/src/core/fp-value.h Wed Feb 13 22:39:17 2008 +0100
+++ b/src/core/fp-value.h Wed Feb 13 23:37:46 2008 +0100
@@ -25,6 +25,7 @@
double m_value;
};
+class FpParamSpec : public ParamSpec {};
template <typename T1>
Ptr<ParamSpec> MakeFpParamSpec (T1 a1,
@@ -68,36 +69,36 @@
template <typename T1>
Ptr<ParamSpec>
MakeFpParamSpec (T1 a1,
- double initialValue)
+ double initialValue)
{
- return MakeParamSpecHelperWithChecker (a1, FpValue (initialValue),
- FpValueChecker::Create (a1));
+ return MakeParamSpecHelperWithChecker<FpParamSpec> (a1, FpValue (initialValue),
+ FpValueChecker::Create (a1));
}
template <typename T1>
Ptr<ParamSpec> MakeFpParamSpec (T1 a1,
- double initialValue,
- double minValue,
- double maxValue)
+ double initialValue,
+ double minValue,
+ double maxValue)
{
- return MakeParamSpecHelperWithChecker (a1, FpValue (initialValue),
- FpValueChecker (minValue, maxValue));
+ return MakeParamSpecHelperWithChecker<FpParamSpec> (a1, FpValue (initialValue),
+ FpValueChecker (minValue, maxValue));
}
template <typename T1, typename T2>
Ptr<ParamSpec> MakeFpParamSpec (T1 a1, T2 a2,
- double initialValue)
+ double initialValue)
{
- return MakeParamSpecHelperWithChecker (a1, a2, FpValue (initialValue),
- FpValueChecker::Create (a1));
+ return MakeParamSpecHelperWithChecker<FpParamSpec> (a1, a2, FpValue (initialValue),
+ FpValueChecker::Create (a1));
}
template <typename T1, typename T2>
Ptr<ParamSpec> MakeFpParamSpec (T1 a1, T2 a2,
- double initialValue,
- double minValue,
- double maxValue)
+ double initialValue,
+ double minValue,
+ double maxValue)
{
- return MakeParamSpecHelperWithChecker (a1, a2, FpValue (initialValue),
- FpValueChecker (minValue, maxValue));
+ return MakeParamSpecHelperWithChecker<FpParamSpec> (a1, a2, FpValue (initialValue),
+ FpValueChecker (minValue, maxValue));
}
} // namespace ns3
--- a/src/core/int-value.h Wed Feb 13 22:39:17 2008 +0100
+++ b/src/core/int-value.h Wed Feb 13 23:37:46 2008 +0100
@@ -24,6 +24,8 @@
int64_t m_value;
};
+class IntParamSpec : public ParamSpec {};
+
template <typename T1>
Ptr<ParamSpec> MakeIntParamSpec (T1 a1,
int64_t initialValue);
@@ -76,8 +78,8 @@
MakeIntParamSpec (T1 a1,
int64_t initialValue)
{
- return MakeParamSpecHelperWithChecker (a1, IntValue (initialValue),
- IntValueChecker::Create (a1));
+ return MakeParamSpecHelperWithChecker<IntParamSpec> (a1, IntValue (initialValue),
+ IntValueChecker::Create (a1));
}
template <typename T1>
@@ -86,15 +88,15 @@
int64_t minValue,
int64_t maxValue)
{
- return MakeParamSpecHelperWithChecker (a1, IntValue (initialValue),
- IntValueChecker (minValue, maxValue));
+ return MakeParamSpecHelperWithChecker<IntParamSpec> (a1, IntValue (initialValue),
+ IntValueChecker (minValue, maxValue));
}
template <typename T1, typename T2>
Ptr<ParamSpec> MakeIntParamSpec (T1 a1, T2 a2,
int64_t initialValue)
{
- return MakeParamSpecHelperWithChecker (a1, a2, IntValue (initialValue),
- IntValueChecker::Create (a1));
+ return MakeParamSpecHelperWithChecker<IntParamSpec> (a1, a2, IntValue (initialValue),
+ IntValueChecker::Create (a1));
}
template <typename T1, typename T2>
Ptr<ParamSpec> MakeIntParamSpec (T1 a1, T2 a2,
@@ -102,8 +104,8 @@
int64_t minValue,
int64_t maxValue)
{
- return MakeParamSpecHelperWithChecker (a1, a2, IntValue (initialValue),
- IntValueChecker (minValue, maxValue));
+ return MakeParamSpecHelperWithChecker<IntParamSpec> (a1, a2, IntValue (initialValue),
+ IntValueChecker (minValue, maxValue));
}
} // namespace ns3
--- a/src/core/param-spec-helper.h Wed Feb 13 22:39:17 2008 +0100
+++ b/src/core/param-spec-helper.h Wed Feb 13 23:37:46 2008 +0100
@@ -3,19 +3,19 @@
namespace ns3 {
-template <typename T1, typename V>
+template <typename BASE, typename T1, typename V>
Ptr<ParamSpec>
MakeParamSpecHelper (T1 a1, V initialValue);
-template <typename T1, typename T2, typename V>
+template <typename BASE, typename T1, typename T2, typename V>
Ptr<ParamSpec>
MakeParamSpecHelper (T1 a1, T2 a2, V initialValue);
-template <typename T1, typename V, typename CHECKER>
+template <typename BASE, typename T1, typename V, typename CHECKER>
Ptr<ParamSpec>
MakeParamSpecHelperWithChecker (T1 a1, V initialValue, CHECKER checker);
-template <typename T1, typename T2, typename V, typename CHECKER>
+template <typename BASE, typename T1, typename T2, typename V, typename CHECKER>
Ptr<ParamSpec>
MakeParamSpecHelperWithChecker (T1 a1, T2 a2, V initialValue, CHECKER checker);
@@ -29,16 +29,59 @@
namespace ns3 {
-template <typename T, typename U, typename CHECKER>
-class ParamSpecHelper : public ParamSpec
+template <typename BASE, typename T, typename U, typename CHECKER>
+class ParamSpecHelper : public BASE
{
public:
- ParamSpecHelper (PValue initialValue, CHECKER checker);
- virtual bool Set (ObjectBase * object, PValue value) const;
- virtual bool Get (const ObjectBase * object, PValue value) const;
- virtual bool Check (PValue value) const;
- virtual PValue GetInitialValue (void) const;
- virtual PValue CreateValue (void) const;
+ ParamSpecHelper (PValue initialValue, CHECKER checker)
+ : m_initialValue (initialValue),
+ m_checker (checker) {}
+
+ virtual bool Set (ObjectBase * object, PValue val) const {
+ const U *value = val.DynCast<const U*> ();
+ if (value == 0)
+ {
+ return false;
+ }
+ T *obj = dynamic_cast<T *> (object);
+ if (obj == 0)
+ {
+ return false;
+ }
+ return DoSet (obj, value);
+ }
+
+ virtual bool Get (const ObjectBase * object, PValue val) const {
+ U *value = val.DynCast<U*> ();
+ if (value == 0)
+ {
+ return false;
+ }
+ const T *obj = dynamic_cast<const T *> (object);
+ if (obj == 0)
+ {
+ return false;
+ }
+ return DoGet (obj, value);
+ }
+
+ virtual bool Check (PValue value) const {
+ const U *val = value.DynCast<const U*> ();
+ if (val == 0)
+ {
+ return false;
+ }
+ return m_checker.Check (val->Get ());
+ }
+
+ virtual PValue GetInitialValue (void) const {
+ return m_initialValue;
+ }
+
+ virtual PValue CreateValue (void) const {
+ return m_initialValue.Copy ();
+ }
+
private:
virtual bool DoSet (T *object, const U *v) const = 0;
@@ -54,15 +97,15 @@
bool Check (const T &value) const {return true;}
};
-template <typename T, typename U, typename V, typename CHECKER>
+template <typename BASE, typename T, typename U, typename V, typename CHECKER>
Ptr<ParamSpec>
DoMakeParamSpecHelperOne (U T::*memberVariable, V initialValue, CHECKER checker)
{
- class MemberVariable : public ParamSpecHelper<T,V,CHECKER>
+ class MemberVariable : public ParamSpecHelper<BASE,T,V,CHECKER>
{
public:
MemberVariable (U T::*memberVariable, V initialValue, CHECKER checker)
- : ParamSpecHelper<T,V,CHECKER> (initialValue, checker),
+ : ParamSpecHelper<BASE,T,V,CHECKER> (initialValue, checker),
m_memberVariable (memberVariable)
{}
private:
@@ -79,25 +122,25 @@
};
return Ptr<ParamSpec> (new MemberVariable (memberVariable, initialValue, checker), false);
}
-template <typename T, typename U, typename V>
+template <typename BASE, typename T, typename U, typename V>
Ptr<ParamSpec>
DoMakeParamSpecHelperOne (U T::*memberVariable, V initialValue)
{
- return DoMakeParamSpecHelperOne (memberVariable, initialValue, ParamSpecHelperSimpleChecker<U> ());
+ return DoMakeParamSpecHelperOne<BASE> (memberVariable, initialValue, ParamSpecHelperSimpleChecker<U> ());
}
-template <typename T, typename U, typename V, typename CHECKER>
+template <typename BASE, typename T, typename U, typename V, typename CHECKER>
Ptr<ParamSpec>
DoMakeParamSpecHelperOne (U (T::*getter) (void) const,
V initialValue, CHECKER checker)
{
- class MemberMethod : public ParamSpecHelper<T,V,CHECKER>
+ class MemberMethod : public ParamSpecHelper<BASE,T,V,CHECKER>
{
public:
MemberMethod (U (T::*getter) (void) const,
V initialValue, CHECKER checker)
- : ParamSpecHelper<T,V,CHECKER> (initialValue, checker),
+ : ParamSpecHelper<BASE,T,V,CHECKER> (initialValue, checker),
m_getter (getter)
{}
private:
@@ -113,27 +156,27 @@
return Ptr<ParamSpec> (new MemberMethod (getter, initialValue, checker), false);
}
-template <typename T, typename U, typename V>
+template <typename BASE, typename T, typename U, typename V>
Ptr<ParamSpec>
DoMakeParamSpecHelperOne (U (T::*getter) (void) const,
V initialValue)
{
- return DoMakeParamSpecHelperOne (getter, initialValue, ParamSpecHelperSimpleChecker<U> ());
+ return DoMakeParamSpecHelperOne<BASE> (getter, initialValue, ParamSpecHelperSimpleChecker<U> ());
}
-template <typename T, typename U, typename V, typename CHECKER>
+template <typename BASE, typename T, typename U, typename V, typename CHECKER>
Ptr<ParamSpec>
DoMakeParamSpecHelperOne (void (T::*setter) (U),
V initialValue, CHECKER checker)
{
- class MemberMethod : public ParamSpecHelper<T,V,CHECKER>
+ class MemberMethod : public ParamSpecHelper<BASE,T,V,CHECKER>
{
public:
MemberMethod (void (T::*setter) (U),
V initialValue, CHECKER checker)
- : ParamSpecHelper<T,V,CHECKER> (initialValue, checker),
+ : ParamSpecHelper<BASE,T,V,CHECKER> (initialValue, checker),
m_setter (setter)
{}
private:
@@ -149,30 +192,30 @@
return Ptr<ParamSpec> (new MemberMethod (setter, initialValue, checker), false);
}
-template <typename T, typename U, typename V>
+template <typename BASE, typename T, typename U, typename V>
Ptr<ParamSpec>
DoMakeParamSpecHelperOne (void (T::*setter) (U),
V initialValue)
{
- return DoMakeParamSpecHelperOne (setter, initialValue,
- ParamSpecHelperSimpleChecker<typename TypeTraits<U>::ReferencedType> ());
+ return DoMakeParamSpecHelperOne<BASE> (setter, initialValue,
+ ParamSpecHelperSimpleChecker<typename TypeTraits<U>::ReferencedType> ());
}
-template <typename T, typename U, typename V, typename W, typename CHECKER>
+template <typename BASE, typename T, typename U, typename V, typename W, typename CHECKER>
Ptr<ParamSpec>
DoMakeParamSpecHelperTwo (void (T::*setter) (U),
V (T::*getter) (void) const,
W initialValue,
CHECKER checker = ParamSpecHelperSimpleChecker<V> ())
{
- class MemberMethod : public ParamSpecHelper<T,W,CHECKER>
+ class MemberMethod : public ParamSpecHelper<BASE,T,W,CHECKER>
{
public:
MemberMethod (void (T::*setter) (U),
V (T::*getter) (void) const,
W initialValue, CHECKER checker)
- : ParamSpecHelper<T,W,CHECKER> (initialValue, checker),
+ : ParamSpecHelper<BASE,T,W,CHECKER> (initialValue, checker),
m_setter (setter),
m_getter (getter)
{}
@@ -191,125 +234,60 @@
return Ptr<ParamSpec> (new MemberMethod (setter, getter, initialValue, checker), false);
}
-template <typename T, typename U, typename V, typename W>
+template <typename BASE, typename T, typename U, typename V, typename W>
Ptr<ParamSpec>
DoMakeParamSpecHelperTwo (void (T::*setter) (U),
V (T::*getter) (void) const,
W initialValue)
{
- return DoMakeParamSpecHelperTwo (setter, getter, initialValue, ParamSpecHelperSimpleChecker<V> ());
+ return DoMakeParamSpecHelperTwo<BASE> (setter, getter, initialValue, ParamSpecHelperSimpleChecker<V> ());
}
-template <typename T, typename U, typename V, typename W, typename CHECKER>
+template <typename BASE, typename T, typename U, typename V, typename W, typename CHECKER>
Ptr<ParamSpec>
DoMakeParamSpecHelperTwo (V (T::*getter) (void) const,
void (T::*setter) (U),
W initialValue,
CHECKER checker)
{
- return DoMakeParamSpecHelperTwo (setter, getter, initialValue, checker);
+ return DoMakeParamSpecHelperTwo<BASE> (setter, getter, initialValue, checker);
}
-template <typename T, typename U, typename V, typename W, typename CHECKER>
+template <typename BASE, typename T, typename U, typename V, typename W, typename CHECKER>
Ptr<ParamSpec>
DoMakeParamSpecHelperTwo (V (T::*getter) (void) const,
void (T::*setter) (U),
W initialValue)
{
- return DoMakeParamSpecHelperTwo (setter, getter, initialValue);
+ return DoMakeParamSpecHelperTwo<BASE> (setter, getter, initialValue);
}
-
-template <typename T, typename U, typename CHECKER>
-ParamSpecHelper<T,U,CHECKER>::ParamSpecHelper (PValue initialValue, CHECKER checker)
- : m_initialValue (initialValue),
- m_checker (checker)
-{}
-template <typename T, typename U, typename CHECKER>
-bool
-ParamSpecHelper<T,U,CHECKER>::Set (ObjectBase * object, PValue val) const
-{
- const U *value = val.DynCast<const U*> ();
- if (value == 0)
- {
- return false;
- }
- T *obj = dynamic_cast<T *> (object);
- if (obj == 0)
- {
- return false;
- }
- return DoSet (obj, value);
-}
-template <typename T, typename U, typename CHECKER>
-bool
-ParamSpecHelper<T,U,CHECKER>::Get (const ObjectBase * object, PValue val) const
-{
- U *value = val.DynCast<U*> ();
- if (value == 0)
- {
- return false;
- }
- const T *obj = dynamic_cast<const T *> (object);
- if (obj == 0)
- {
- return false;
- }
- return DoGet (obj, value);
-}
-template <typename T, typename U, typename CHECKER>
-bool
-ParamSpecHelper<T,U,CHECKER>::Check (PValue value) const
-{
- const U *val = value.DynCast<const U*> ();
- if (val == 0)
- {
- return false;
- }
- return m_checker.Check (val->Get ());
-}
-template <typename T, typename U, typename CHECKER>
-PValue
-ParamSpecHelper<T,U,CHECKER>::GetInitialValue (void) const
-{
- return m_initialValue;
-}
-
-template <typename T, typename U, typename CHECKER>
-PValue
-ParamSpecHelper<T,U,CHECKER>::CreateValue (void) const
-{
- return m_initialValue.Copy ();
-}
-
-
-
-template <typename T1, typename V>
+template <typename BASE, typename T1, typename V>
Ptr<ParamSpec>
MakeParamSpecHelper (T1 a1, V initialValue)
{
- return DoMakeParamSpecHelperOne (a1, initialValue);
+ return DoMakeParamSpecHelperOne<BASE> (a1, initialValue);
}
-template <typename T1, typename T2, typename V>
+template <typename BASE, typename T1, typename T2, typename V>
Ptr<ParamSpec>
MakeParamSpecHelper (T1 a1, T2 a2, V initialValue)
{
- return DoMakeParamSpecHelperTwo (a1, a2, initialValue);
+ return DoMakeParamSpecHelperTwo<BASE> (a1, a2, initialValue);
}
-template <typename T1, typename V, typename CHECKER>
+template <typename BASE, typename T1, typename V, typename CHECKER>
Ptr<ParamSpec>
MakeParamSpecHelperWithChecker (T1 a1, V initialValue, CHECKER checker)
{
- return DoMakeParamSpecHelperOne (a1, initialValue, checker);
+ return DoMakeParamSpecHelperOne<BASE> (a1, initialValue, checker);
}
-template <typename T1, typename T2, typename V, typename CHECKER>
+template <typename BASE, typename T1, typename T2, typename V, typename CHECKER>
Ptr<ParamSpec>
MakeParamSpecHelperWithChecker (T1 a1, T2 a2, V initialValue, CHECKER checker)
{
- return DoMakeParamSpecHelperTwo (a1, a2, initialValue, checker);
+ return DoMakeParamSpecHelperTwo<BASE> (a1, a2, initialValue, checker);
}
} // namespace ns3
--- a/src/core/random-variable.h Wed Feb 13 22:39:17 2008 +0100
+++ b/src/core/random-variable.h Wed Feb 13 23:37:46 2008 +0100
@@ -666,6 +666,7 @@
class RandomVariableValue : public Value {};
+class RandomVariableParamSpec : public ParamSpec {};
template <typename T1>
Ptr<ParamSpec> MakeRandomVariableParamSpec (T1 a1,
@@ -684,14 +685,16 @@
Ptr<ParamSpec> MakeRandomVariableParamSpec (T1 a1,
RandomVariable initialValue)
{
- return MakeClassValueHelperParamSpec<RandomVariable, RandomVariableValue> (a1, initialValue);
+ return MakeClassValueHelperParamSpec<RandomVariable,
+ RandomVariableValue, RandomVariableParamSpec> (a1, initialValue);
}
template <typename T1, typename T2>
Ptr<ParamSpec> MakeRandomVariableParamSpec (T1 a1, T2 a2,
RandomVariable initialValue)
{
- return MakeClassValueHelperParamSpec<RandomVariable, RandomVariableValue> (a1, a2, initialValue);
+ return MakeClassValueHelperParamSpec<RandomVariable,
+ RandomVariableValue,RandomVariableParamSpec> (a1, a2, initialValue);
}
--- a/src/core/uint-value.h Wed Feb 13 22:39:17 2008 +0100
+++ b/src/core/uint-value.h Wed Feb 13 23:37:46 2008 +0100
@@ -24,6 +24,8 @@
uint64_t m_value;
};
+class UintParamSpec : public ParamSpec {};
+
template <typename T1>
Ptr<ParamSpec> MakeUintParamSpec (T1 a1,
uint64_t initialValue);
@@ -76,8 +78,8 @@
MakeUintParamSpec (T1 a1,
uint64_t initialValue)
{
- return MakeParamSpecHelperWithChecker (a1, UintValue (initialValue),
- UintValueChecker::Create (a1));
+ return MakeParamSpecHelperWithChecker<UintParamSpec> (a1, UintValue (initialValue),
+ UintValueChecker::Create (a1));
}
template <typename T1>
@@ -86,15 +88,15 @@
uint64_t minValue,
uint64_t maxValue)
{
- return MakeParamSpecHelperWithChecker (a1, UintValue (initialValue),
- UintValueChecker (minValue, maxValue));
+ return MakeParamSpecHelperWithChecker<UintParamSpec> (a1, UintValue (initialValue),
+ UintValueChecker (minValue, maxValue));
}
template <typename T1, typename T2>
Ptr<ParamSpec> MakeUintParamSpec (T1 a1, T2 a2,
uint64_t initialValue)
{
- return MakeParamSpecHelperWithChecker (a1, a2, UintValue (initialValue),
- UintValueChecker::Create (a1));
+ return MakeParamSpecHelperWithChecker<UintParamSpec> (a1, a2, UintValue (initialValue),
+ UintValueChecker::Create (a1));
}
template <typename T1, typename T2>
Ptr<ParamSpec> MakeUintParamSpec (T1 a1, T2 a2,
@@ -102,8 +104,8 @@
uint64_t minValue,
uint64_t maxValue)
{
- return MakeParamSpecHelperWithChecker (a1, a2, UintValue (initialValue),
- UintValueChecker (minValue, maxValue));
+ return MakeParamSpecHelperWithChecker<UintParamSpec> (a1, a2, UintValue (initialValue),
+ UintValueChecker (minValue, maxValue));
}
} // namespace ns3
--- a/src/mobility/rectangle.h Wed Feb 13 22:39:17 2008 +0100
+++ b/src/mobility/rectangle.h Wed Feb 13 23:37:46 2008 +0100
@@ -71,6 +71,7 @@
class RectangleValue : public Value {};
+class RectangleParamSpec : public ParamSpec {};
template <typename T1>
Ptr<ParamSpec> MakeRectangleParamSpec (T1 a1,
@@ -87,13 +88,13 @@
Ptr<ParamSpec> MakeRectangleParamSpec (T1 a1,
Rectangle initialValue)
{
- return MakeClassValueHelperParamSpec<Rectangle,RectangleValue> (a1, initialValue);
+ return MakeClassValueHelperParamSpec<Rectangle,RectangleValue,RectangleParamSpec> (a1, initialValue);
}
template <typename T1, typename T2>
Ptr<ParamSpec> MakeRectangleParamSpec (T1 a1, T2 a2,
Rectangle initialValue)
{
- return MakeClassValueHelperParamSpec<Rectangle,RectangleValue> (a1, a2, initialValue);
+ return MakeClassValueHelperParamSpec<Rectangle,RectangleValue,RectangleParamSpec> (a1, a2, initialValue);
}
} // namespace ns3
--- a/src/mobility/vector.h Wed Feb 13 22:39:17 2008 +0100
+++ b/src/mobility/vector.h Wed Feb 13 23:37:46 2008 +0100
@@ -65,6 +65,7 @@
double CalculateDistance (const Vector &a, const Vector &b);
class VectorValue : public Value {};
+class VectorParamSpec : public ParamSpec {};
std::ostream &operator << (std::ostream &os, const Vector &vector);
std::istream &operator >> (std::istream &is, Vector &vector);
@@ -86,7 +87,7 @@
Ptr<ParamSpec>
MakeVectorParamSpec (T1 a1, const Vector &initialValue)
{
- return MakeClassValueHelperParamSpec<Vector,VectorValue> (a1, initialValue);
+ return MakeClassValueHelperParamSpec<Vector,VectorValue,VectorParamSpec> (a1, initialValue);
}
template <typename T1, typename T2>
@@ -94,7 +95,7 @@
MakeVectorParamSpec (T1 a1, T2 a2,
const Vector &initialValue)
{
- return MakeClassValueHelperParamSpec<Vector,VectorValue> (a1, a2, initialValue);
+ return MakeClassValueHelperParamSpec<Vector,VectorValue,VectorParamSpec> (a1, a2, initialValue);
}
} // namespace ns3
--- a/src/simulator/nstime.h Wed Feb 13 22:39:17 2008 +0100
+++ b/src/simulator/nstime.h Wed Feb 13 23:37:46 2008 +0100
@@ -671,6 +671,7 @@
class TimeValue : public Value {};
+class TimeParamSpec : public ParamSpec {};
template <typename T1>
Ptr<ParamSpec> MakeTimeParamSpec (T1 a1,
@@ -688,14 +689,14 @@
Ptr<ParamSpec> MakeTimeParamSpec (T1 a1,
Time initialValue)
{
- return MakeClassValueHelperParamSpec<Time,TimeValue> (a1, initialValue);
+ return MakeClassValueHelperParamSpec<Time,TimeValue,TimeParamSpec> (a1, initialValue);
}
template <typename T1, typename T2>
Ptr<ParamSpec> MakeTimeParamSpec (T1 a1, T2 a2,
Time initialValue)
{
- return MakeClassValueHelperParamSpec<Time,TimeValue> (a1, a2, initialValue);
+ return MakeClassValueHelperParamSpec<Time,TimeValue,TimeParamSpec> (a1, a2, initialValue);
}