Accessor -> AttributeAccessor

This commit is contained in:
Mathieu Lacage
2008-02-20 20:57:59 +01:00
parent ad7d70ae34
commit b511f31d39
23 changed files with 145 additions and 145 deletions

View File

@@ -71,7 +71,7 @@ BooleanValue::operator Attribute () const
return Attribute::Create<BooleanValue> (*this);
}
Ptr<AttributeChecker> MakeBooleanChecker (void)
Ptr<const AttributeChecker> MakeBooleanChecker (void)
{
return MakeSimpleAttributeChecker<BooleanValue> ();
}

View File

@@ -24,16 +24,16 @@ private:
bool m_value;
};
class BooleanAccessor : public Accessor {};
class BooleanAccessor : public AttributeAccessor {};
template <typename T1>
Ptr<Accessor> MakeBooleanAccessor (T1 a1);
Ptr<const AttributeAccessor> MakeBooleanAccessor (T1 a1);
template <typename T1, typename T2>
Ptr<Accessor> MakeBooleanAccessor (T1 a1, T2 a2);
Ptr<const AttributeAccessor> MakeBooleanAccessor (T1 a1, T2 a2);
Ptr<AttributeChecker> MakeBooleanChecker (void);
Ptr<const AttributeChecker> MakeBooleanChecker (void);
} // namespace ns3
@@ -42,13 +42,13 @@ Ptr<AttributeChecker> MakeBooleanChecker (void);
namespace ns3 {
template <typename T1>
Ptr<Accessor> MakeBooleanAccessor (T1 a1)
Ptr<const AttributeAccessor> MakeBooleanAccessor (T1 a1)
{
return MakeAccessorHelper<BooleanAccessor,BooleanValue> (a1);
}
template <typename T1, typename T2>
Ptr<Accessor> MakeBooleanAccessor (T1 a1, T2 a2)
Ptr<const AttributeAccessor> MakeBooleanAccessor (T1 a1, T2 a2)
{
return MakeAccessorHelper<BooleanAccessor,BooleanValue> (a1, a2);
}

View File

@@ -77,7 +77,7 @@ ClassValueHelperConvertTo (const T *self)
template <typename T, typename U, typename BASE, typename T1>
Ptr<Accessor>
Ptr<const AttributeAccessor>
MakeClassValueHelperAccessor (T1 a1)
{
return MakeAccessorHelper<BASE,ClassValue<T,U> > (a1);
@@ -85,7 +85,7 @@ MakeClassValueHelperAccessor (T1 a1)
template <typename T, typename U, typename BASE, typename T1, typename T2>
Ptr<Accessor>
Ptr<const AttributeAccessor>
MakeClassValueHelperAccessor (T1 a1, T2 a2)
{
return MakeAccessorHelper<BASE,ClassValue<T,U> > (a1, a2);

View File

@@ -104,7 +104,7 @@ EnumChecker::Check (Attribute value) const
return false;
}
Ptr<AttributeChecker>
Ptr<const AttributeChecker>
MakeEnumChecker (int v1, std::string n1,
int v2, std::string n2,
int v3, std::string n3,

View File

@@ -24,7 +24,7 @@ private:
int m_v;
};
class EnumAccessor : public Accessor {};
class EnumAccessor : public AttributeAccessor {};
class EnumChecker : public AttributeChecker
{
public:
@@ -42,23 +42,23 @@ private:
};
template <typename T1>
Ptr<Accessor> MakeEnumAccessor (T1 a1);
Ptr<const AttributeAccessor> MakeEnumAccessor (T1 a1);
template <typename T1, typename T2>
Ptr<Accessor> MakeEnumAccessor (T1 a1, T2 a2);
Ptr<const AttributeAccessor> MakeEnumAccessor (T1 a1, T2 a2);
Ptr<AttributeChecker> MakeEnumChecker (int v1, std::string n1,
int v2 = 0, std::string n2 = "",
int v3 = 0, std::string n3 = "",
int v4 = 0, std::string n4 = "",
int v5 = 0, std::string n5 = "",
int v6 = 0, std::string n6 = "",
int v7 = 0, std::string n7 = "",
int v8 = 0, std::string n8 = "",
int v9 = 0, std::string n9 = "",
int v10 = 0, std::string n10 = "",
int v11 = 0, std::string n11 = "",
int v12 = 0, std::string n12 = "");
Ptr<const AttributeChecker> MakeEnumChecker (int v1, std::string n1,
int v2 = 0, std::string n2 = "",
int v3 = 0, std::string n3 = "",
int v4 = 0, std::string n4 = "",
int v5 = 0, std::string n5 = "",
int v6 = 0, std::string n6 = "",
int v7 = 0, std::string n7 = "",
int v8 = 0, std::string n8 = "",
int v9 = 0, std::string n9 = "",
int v10 = 0, std::string n10 = "",
int v11 = 0, std::string n11 = "",
int v12 = 0, std::string n12 = "");
} // namespace ns3
@@ -66,13 +66,13 @@ Ptr<AttributeChecker> MakeEnumChecker (int v1, std::string n1,
namespace ns3 {
template <typename T1>
Ptr<Accessor> MakeEnumAccessor (T1 a1)
Ptr<const AttributeAccessor> MakeEnumAccessor (T1 a1)
{
return MakeAccessorHelper<EnumAccessor,EnumValue> (a1);
}
template <typename T1, typename T2>
Ptr<Accessor> MakeEnumAccessor (T1 a1, T2 a2)
Ptr<const AttributeAccessor> MakeEnumAccessor (T1 a1, T2 a2)
{
return MakeAccessorHelper<EnumAccessor,EnumValue> (a1, a2);
}

View File

@@ -59,7 +59,7 @@ FpValue::operator Attribute () const
return Attribute::Create<FpValue> (*this);
}
Ptr<AttributeChecker> MakeFpChecker (double min, double max)
Ptr<const AttributeChecker> MakeFpChecker (double min, double max)
{
struct Checker : public AttributeChecker
{
@@ -77,7 +77,7 @@ Ptr<AttributeChecker> MakeFpChecker (double min, double max)
double m_minValue;
double m_maxValue;
} *checker = new Checker (min, max);
return Ptr<AttributeChecker> (checker, false);
return Ptr<const AttributeChecker> (checker, false);
}

View File

@@ -25,17 +25,17 @@ private:
double m_value;
};
class FpAccessor : public Accessor {};
class FpAccessor : public AttributeAccessor {};
template <typename T1>
Ptr<Accessor> MakeFpAccessor (T1 a1);
Ptr<const AttributeAccessor> MakeFpAccessor (T1 a1);
template <typename T1, typename T2>
Ptr<Accessor> MakeFpAccessor (T1 a1, T2 a2);
Ptr<const AttributeAccessor> MakeFpAccessor (T1 a1, T2 a2);
template <typename T>
Ptr<AttributeChecker> MakeFpChecker (void);
Ptr<const AttributeChecker> MakeFpChecker (void);
Ptr<AttributeChecker> MakeFpChecker (double min, double max);
Ptr<const AttributeChecker> MakeFpChecker (double min, double max);
@@ -44,18 +44,18 @@ Ptr<AttributeChecker> MakeFpChecker (double min, double max);
namespace ns3 {
template <typename T1>
Ptr<Accessor> MakeFpAccessor (T1 a1)
Ptr<const AttributeAccessor> MakeFpAccessor (T1 a1)
{
return MakeAccessorHelper<FpAccessor,FpValue> (a1);
}
template <typename T1, typename T2>
Ptr<Accessor> MakeFpAccessor (T1 a1, T2 a2)
Ptr<const AttributeAccessor> MakeFpAccessor (T1 a1, T2 a2)
{
return MakeAccessorHelper<FpAccessor,FpValue> (a1, a2);
}
template <typename T>
Ptr<AttributeChecker> MakeFpChecker (void)
Ptr<const AttributeChecker> MakeFpChecker (void)
{
return MakeFpChecker (-std::numeric_limits<T>::max (),
std::numeric_limits<T>::max ());

View File

@@ -59,7 +59,7 @@ IntValue::operator Attribute () const
return Attribute::Create<IntValue> (*this);
}
Ptr<AttributeChecker>
Ptr<const AttributeChecker>
MakeIntChecker (int64_t min, int64_t max)
{
struct IntChecker : public AttributeChecker

View File

@@ -24,36 +24,36 @@ private:
int64_t m_value;
};
class IntAccessor : public Accessor {};
class IntAccessor : public AttributeAccessor {};
template <typename T1>
Ptr<Accessor> MakeIntAccessor (T1 a1);
Ptr<const AttributeAccessor> MakeIntAccessor (T1 a1);
template <typename T1, typename T2>
Ptr<Accessor> MakeIntAccessor (T1 a1, T2 a2);
Ptr<const AttributeAccessor> MakeIntAccessor (T1 a1, T2 a2);
template <typename T>
Ptr<AttributeChecker> MakeIntChecker (void);
Ptr<const AttributeChecker> MakeIntChecker (void);
Ptr<AttributeChecker> MakeIntChecker (int64_t min, int64_t max);
Ptr<const AttributeChecker> MakeIntChecker (int64_t min, int64_t max);
} // namespace ns3
namespace ns3 {
template <typename T1>
Ptr<Accessor>
Ptr<const AttributeAccessor>
MakeIntAccessor (T1 a1)
{
return MakeAccessorHelper<IntAccessor,IntValue> (a1);
}
template <typename T1, typename T2>
Ptr<Accessor> MakeIntAccessor (T1 a1, T2 a2)
Ptr<const AttributeAccessor> MakeIntAccessor (T1 a1, T2 a2)
{
return MakeAccessorHelper<IntAccessor,IntValue> (a1, a2);
}
template <typename T>
Ptr<AttributeChecker>
Ptr<const AttributeChecker>
MakeIntChecker (void)
{
return MakeIntChecker (std::numeric_limits<T>::min (),

View File

@@ -101,7 +101,7 @@ ObjectVectorAccessor::Get (const ObjectBase * object, Attribute value) const
}
return true;
}
Ptr<AttributeChecker>
Ptr<const AttributeChecker>
MakeObjectVectorChecker (void)
{
return MakeSimpleAttributeChecker<ObjectVectorValue> ();

View File

@@ -28,21 +28,21 @@ private:
};
template <typename T, typename U>
Ptr<Accessor>
Ptr<const AttributeAccessor>
MakeObjectVectorAccessor (U T::*memberVector);
template <typename T, typename U, typename INDEX>
Ptr<Accessor>
Ptr<const AttributeAccessor>
MakeObjectVectorAccessor (Ptr<U> (T::*get) (INDEX) const,
INDEX (T::*getN) (void) const);
template <typename T, typename U, typename INDEX>
Ptr<Accessor>
Ptr<const AttributeAccessor>
MakeObjectVectorAccessor (INDEX (T::*getN) (void) const,
Ptr<U> (T::*get) (INDEX) const);
Ptr<AttributeChecker> MakeObjectVectorChecker (void);
Ptr<const AttributeChecker> MakeObjectVectorChecker (void);
} // namespace ns3
@@ -65,7 +65,7 @@ private:
ObjectVector m_vector;
};
class ObjectVectorAccessor : public Accessor
class ObjectVectorAccessor : public AttributeAccessor
{
public:
virtual bool Set (ObjectBase * object, Attribute value) const;
@@ -76,7 +76,7 @@ private:
};
template <typename T, typename U>
Ptr<Accessor>
Ptr<const AttributeAccessor>
MakeObjectVectorAccessor (U T::*memberVector)
{
struct MemberStdContainer : public ObjectVectorAccessor
@@ -97,11 +97,11 @@ MakeObjectVectorAccessor (U T::*memberVector)
U T::*m_memberVector;
} *spec = new MemberStdContainer ();
spec->m_memberVector = memberVector;
return Ptr<Accessor> (spec, false);
return Ptr<const AttributeAccessor> (spec, false);
}
template <typename T, typename U, typename INDEX>
Ptr<Accessor>
Ptr<const AttributeAccessor>
MakeObjectVectorAccessor (Ptr<U> (T::*get) (INDEX) const,
INDEX (T::*getN) (void) const)
{
@@ -125,11 +125,11 @@ MakeObjectVectorAccessor (Ptr<U> (T::*get) (INDEX) const,
} *spec = new MemberGetters ();
spec->m_get = get;
spec->m_getN = getN;
return Ptr<Accessor> (spec, false);
return Ptr<const AttributeAccessor> (spec, false);
}
template <typename T, typename U, typename INDEX>
Ptr<Accessor>
Ptr<const AttributeAccessor>
MakeObjectVectorAccessor (INDEX (T::*getN) (void) const,
Ptr<U> (T::*get) (INDEX) const)
{

View File

@@ -58,13 +58,13 @@ public:
std::string help,
uint32_t flags,
ns3::Attribute initialValue,
ns3::Ptr<const ns3::Accessor> spec,
ns3::Ptr<const ns3::AttributeAccessor> spec,
ns3::Ptr<const ns3::AttributeChecker> checker);
uint32_t GetParametersN (uint16_t uid) const;
std::string GetParameterName (uint16_t uid, uint32_t i) const;
uint32_t GetParameterFlags (uint16_t uid, uint32_t i) const;
ns3::Attribute GetParameterInitialValue (uint16_t uid, uint32_t i) const;
ns3::Ptr<const ns3::Accessor> GetParameterAccessor (uint16_t uid, uint32_t i) const;
ns3::Ptr<const ns3::AttributeAccessor> GetParameterAccessor (uint16_t uid, uint32_t i) const;
ns3::Ptr<const ns3::AttributeChecker> GetParameterChecker (uint16_t uid, uint32_t i) const;
private:
struct ConstructorInformation {
@@ -76,7 +76,7 @@ private:
std::string help;
uint32_t flags;
ns3::Attribute initialValue;
ns3::Ptr<const ns3::Accessor> param;
ns3::Ptr<const ns3::AttributeAccessor> param;
ns3::Ptr<const ns3::AttributeChecker> checker;
};
struct IidInformation {
@@ -247,7 +247,7 @@ IidManager::AddParameter (uint16_t uid,
std::string help,
uint32_t flags,
ns3::Attribute initialValue,
ns3::Ptr<const ns3::Accessor> spec,
ns3::Ptr<const ns3::AttributeAccessor> spec,
ns3::Ptr<const ns3::AttributeChecker> checker)
{
struct IidInformation *information = LookupInformation (uid);
@@ -298,7 +298,7 @@ IidManager::GetParameterInitialValue (uint16_t uid, uint32_t i) const
NS_ASSERT (i < information->parameters.size ());
return information->parameters[i].initialValue;
}
ns3::Ptr<const ns3::Accessor>
ns3::Ptr<const ns3::AttributeAccessor>
IidManager::GetParameterAccessor (uint16_t uid, uint32_t i) const
{
struct IidInformation *information = LookupInformation (uid);
@@ -544,7 +544,7 @@ TypeId
TypeId::AddParameter (std::string name,
std::string help,
Attribute initialValue,
Ptr<const Accessor> param,
Ptr<const AttributeAccessor> param,
Ptr<const AttributeChecker> checker)
{
Singleton<IidManager>::Get ()->AddParameter (m_tid, name, help, ATTR_SGC, initialValue, param, checker);
@@ -556,7 +556,7 @@ TypeId::AddParameter (std::string name,
std::string help,
uint32_t flags,
Attribute initialValue,
Ptr<const Accessor> param,
Ptr<const AttributeAccessor> param,
Ptr<const AttributeChecker> checker)
{
Singleton<IidManager>::Get ()->AddParameter (m_tid, name, help, flags, initialValue, param, checker);
@@ -609,11 +609,11 @@ TypeId::GetParameterInitialValue (uint32_t i) const
Attribute value = Singleton<IidManager>::Get ()->GetParameterInitialValue (m_tid, i);
return value;
}
Ptr<const Accessor>
Ptr<const AttributeAccessor>
TypeId::GetParameterAccessor (uint32_t i) const
{
// Used exclusively by the Object class.
Ptr<const Accessor> param = Singleton<IidManager>::Get ()->GetParameterAccessor (m_tid, i);
Ptr<const AttributeAccessor> param = Singleton<IidManager>::Get ()->GetParameterAccessor (m_tid, i);
return param;
}
uint32_t
@@ -896,7 +896,7 @@ Object::Construct (const Parameters &parameters)
NS_LOG_DEBUG ("construct tid="<<tid.GetName ()<<", params="<<tid.GetParametersN ());
for (uint32_t i = 0; i < tid.GetParametersN (); i++)
{
Ptr<const Accessor> paramSpec = tid.GetParameterAccessor (i);
Ptr<const AttributeAccessor> paramSpec = tid.GetParameterAccessor (i);
Attribute initial = tid.GetParameterInitialValue (i);
Ptr<const AttributeChecker> checker = tid.GetParameterChecker (i);
NS_LOG_DEBUG ("try to construct \""<< tid.GetName ()<<"::"<<
@@ -950,7 +950,7 @@ Object::Construct (const Parameters &parameters)
NotifyConstructionCompleted ();
}
bool
Object::DoSet (Ptr<const Accessor> spec, Attribute initialValue,
Object::DoSet (Ptr<const AttributeAccessor> spec, Attribute initialValue,
Ptr<const AttributeChecker> checker, Attribute value)
{
bool ok = checker->Check (value);

View File

@@ -44,7 +44,7 @@ namespace ns3 {
class TraceContext;
class CallbackBase;
class Object;
class Accessor;
class AttributeAccessor;
class Value;
class Parameters;
@@ -210,7 +210,7 @@ public:
TypeId AddParameter (std::string name,
std::string help,
Attribute initialValue,
Ptr<const Accessor> spec,
Ptr<const AttributeAccessor> spec,
Ptr<const AttributeChecker> checker);
/**
@@ -227,7 +227,7 @@ public:
std::string help,
uint32_t flags,
Attribute initialValue,
Ptr<const Accessor> spec,
Ptr<const AttributeAccessor> spec,
Ptr<const AttributeChecker> checker);
// construct an invalid TypeId.
@@ -240,7 +240,7 @@ private:
friend bool operator != (TypeId a, TypeId b);
struct ParameterInfo {
Ptr<const Accessor> spec;
Ptr<const AttributeAccessor> spec;
Attribute initialValue;
uint32_t flags;
Ptr<const AttributeChecker> checker;
@@ -265,7 +265,7 @@ private:
explicit TypeId (uint16_t tid);
void DoAddConstructor (CallbackBase callback, uint32_t nArguments);
CallbackBase LookupConstructor (uint32_t nArguments) const;
Ptr<const Accessor> GetParameterAccessor (uint32_t i) const;
Ptr<const AttributeAccessor> GetParameterAccessor (uint32_t i) const;
uint32_t GetParameterFlags (uint32_t i) const;
Ptr<const AttributeChecker> GetParameterChecker (uint32_t i) const;
@@ -470,7 +470,7 @@ private:
friend Ptr<T> CreateObject (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7);
bool DoSet (Ptr<const Accessor> spec, Attribute intialValue,
bool DoSet (Ptr<const AttributeAccessor> spec, Attribute intialValue,
Ptr<const AttributeChecker> checker, Attribute value);
Ptr<Object> DoGetObject (TypeId tid) const;
void DoCollectSources (std::string path, const TraceContext &context,

View File

@@ -4,11 +4,11 @@
namespace ns3 {
template <typename BASE, typename V, typename T1>
Ptr<Accessor>
Ptr<const AttributeAccessor>
MakeAccessorHelper (T1 a1);
template <typename BASE, typename V, typename T1, typename T2>
Ptr<Accessor>
Ptr<const AttributeAccessor>
MakeAccessorHelper (T1 a1, T2 a2);
} // namespace ns3
@@ -62,7 +62,7 @@ private:
};
template <typename BASE, typename V, typename T, typename U>
Ptr<Accessor>
Ptr<const AttributeAccessor>
DoMakeAccessorHelperOne (U T::*memberVariable)
{
class MemberVariable : public AccessorHelper<BASE,T,V>
@@ -84,11 +84,11 @@ DoMakeAccessorHelperOne (U T::*memberVariable)
U T::*m_memberVariable;
};
return Ptr<Accessor> (new MemberVariable (memberVariable), false);
return Ptr<const AttributeAccessor> (new MemberVariable (memberVariable), false);
}
template <typename BASE, typename V, typename T, typename U>
Ptr<Accessor>
Ptr<const AttributeAccessor>
DoMakeAccessorHelperOne (U (T::*getter) (void) const)
{
class MemberMethod : public AccessorHelper<BASE,T,V>
@@ -108,12 +108,12 @@ DoMakeAccessorHelperOne (U (T::*getter) (void) const)
}
U (T::*m_getter) (void) const;
};
return Ptr<Accessor> (new MemberMethod (getter), false);
return Ptr<const AttributeAccessor> (new MemberMethod (getter), false);
}
template <typename BASE, typename V, typename T, typename U>
Ptr<Accessor>
Ptr<const AttributeAccessor>
DoMakeAccessorHelperOne (void (T::*setter) (U))
{
class MemberMethod : public AccessorHelper<BASE,T,V>
@@ -133,11 +133,11 @@ DoMakeAccessorHelperOne (void (T::*setter) (U))
}
void (T::*m_setter) (U);
};
return Ptr<Accessor> (new MemberMethod (setter), false);
return Ptr<const AttributeAccessor> (new MemberMethod (setter), false);
}
template <typename BASE, typename W, typename T, typename U, typename V>
Ptr<Accessor>
Ptr<const AttributeAccessor>
DoMakeAccessorHelperTwo (void (T::*setter) (U),
V (T::*getter) (void) const)
{
@@ -162,11 +162,11 @@ DoMakeAccessorHelperTwo (void (T::*setter) (U),
void (T::*m_setter) (U);
V (T::*m_getter) (void) const;
};
return Ptr<Accessor> (new MemberMethod (setter, getter), false);
return Ptr<const AttributeAccessor> (new MemberMethod (setter, getter), false);
}
template <typename BASE, typename W, typename T, typename U, typename V>
Ptr<Accessor>
Ptr<const AttributeAccessor>
DoMakeAccessorHelperTwo (V (T::*getter) (void) const,
void (T::*setter) (U))
{
@@ -174,14 +174,14 @@ DoMakeAccessorHelperTwo (V (T::*getter) (void) const,
}
template <typename BASE, typename V, typename T1>
Ptr<Accessor>
Ptr<const AttributeAccessor>
MakeAccessorHelper (T1 a1)
{
return DoMakeAccessorHelperOne<BASE,V> (a1);
}
template <typename BASE, typename V, typename T1, typename T2>
Ptr<Accessor>
Ptr<const AttributeAccessor>
MakeAccessorHelper (T1 a1, T2 a2)
{
return DoMakeAccessorHelperTwo<BASE,V> (a1, a2);

View File

@@ -309,7 +309,7 @@ RandomVariable::operator Attribute () const
return ClassValueHelperConvertTo<RandomVariable,RandomVariableValue> (this);
}
Ptr<AttributeChecker>
Ptr<const AttributeChecker>
MakeRandomVariableChecker (void)
{
return MakeSimpleAttributeChecker<RandomVariableValue> ();

View File

@@ -666,14 +666,14 @@ std::istream &operator >> (std::istream &os, RandomVariable &var);
class RandomVariableValue : public Value {};
class RandomVariableAccessor : public Accessor {};
class RandomVariableAccessor : public AttributeAccessor {};
template <typename T1>
Ptr<Accessor> MakeRandomVariableAccessor (T1 a1);
Ptr<const AttributeAccessor> MakeRandomVariableAccessor (T1 a1);
template <typename T1, typename T2>
Ptr<Accessor> MakeRandomVariableAccessor (T1 a1, T2 a2);
Ptr<const AttributeAccessor> MakeRandomVariableAccessor (T1 a1, T2 a2);
Ptr<AttributeChecker> MakeRandomVariableChecker (void);
Ptr<const AttributeChecker> MakeRandomVariableChecker (void);
}//namespace ns3
@@ -681,14 +681,14 @@ Ptr<AttributeChecker> MakeRandomVariableChecker (void);
namespace ns3 {
template <typename T1>
Ptr<Accessor> MakeRandomVariableAccessor (T1 a1)
Ptr<const AttributeAccessor> MakeRandomVariableAccessor (T1 a1)
{
return MakeClassValueHelperAccessor<RandomVariable,
RandomVariableValue, RandomVariableAccessor> (a1);
}
template <typename T1, typename T2>
Ptr<Accessor> MakeRandomVariableAccessor (T1 a1, T2 a2)
Ptr<const AttributeAccessor> MakeRandomVariableAccessor (T1 a1, T2 a2)
{
return MakeClassValueHelperAccessor<RandomVariable,
RandomVariableValue,RandomVariableAccessor> (a1, a2);

View File

@@ -60,7 +60,7 @@ UintValue::operator Attribute () const
}
Ptr<AttributeChecker> MakeUintChecker (uint64_t min, uint64_t max)
Ptr<const AttributeChecker> MakeUintChecker (uint64_t min, uint64_t max)
{
struct Checker : public AttributeChecker
{
@@ -78,7 +78,7 @@ Ptr<AttributeChecker> MakeUintChecker (uint64_t min, uint64_t max)
uint64_t m_minValue;
uint64_t m_maxValue;
} *checker = new Checker (min, max);
return Ptr<AttributeChecker> (checker, false);
return Ptr<const AttributeChecker> (checker, false);
}

View File

@@ -24,37 +24,37 @@ private:
uint64_t m_value;
};
class UintAccessor : public Accessor {};
class UintAccessor : public AttributeAccessor {};
template <typename T1>
Ptr<Accessor> MakeUintAccessor (T1 a1);
Ptr<const AttributeAccessor> MakeUintAccessor (T1 a1);
template <typename T1, typename T2>
Ptr<Accessor> MakeUintAccessor (T1 a1, T2 a2);
Ptr<const AttributeAccessor> MakeUintAccessor (T1 a1, T2 a2);
template <typename T>
Ptr<AttributeChecker> MakeUintChecker (void);
Ptr<const AttributeChecker> MakeUintChecker (void);
Ptr<AttributeChecker> MakeUintChecker (uint64_t min, uint64_t max);
Ptr<const AttributeChecker> MakeUintChecker (uint64_t min, uint64_t max);
} // namespace ns3
namespace ns3 {
template <typename T1>
Ptr<Accessor>
Ptr<const AttributeAccessor>
MakeUintAccessor (T1 a1)
{
return MakeAccessorHelper<UintAccessor,UintValue> (a1);
}
template <typename T1, typename T2>
Ptr<Accessor> MakeUintAccessor (T1 a1, T2 a2)
Ptr<const AttributeAccessor> MakeUintAccessor (T1 a1, T2 a2)
{
return MakeAccessorHelper<UintAccessor,UintValue> (a1, a2);
}
template <typename T>
Ptr<AttributeChecker> MakeUintChecker (void)
Ptr<const AttributeChecker> MakeUintChecker (void)
{
return MakeUintChecker (std::numeric_limits<T>::min (),
std::numeric_limits<T>::max ());

View File

@@ -7,25 +7,25 @@
type (Attribute value); \
operator Attribute () const;
#define VALUE_HELPER_HEADER_2(type) \
class type##Value : public Value {}; \
class type##Accessor : public Accessor {}; \
Ptr<AttributeChecker> Make##type##Checker (void); \
template <typename T1> \
Ptr<Accessor> Make##type##Accessor (T1 a1) \
{ \
return MakeClassValueHelperAccessor< type , \
type##Value, type##Accessor> (a1); \
} \
template <typename T1, typename T2> \
Ptr<Accessor> Make##type##Accessor (T1 a1, T2 a2) \
{ \
return MakeClassValueHelperAccessor<type, \
type##Value,type##Accessor> (a1, a2); \
#define VALUE_HELPER_HEADER_2(type) \
class type##Value : public Value {}; \
class type##Accessor : public AttributeAccessor {}; \
Ptr<const AttributeChecker> Make##type##Checker (void); \
template <typename T1> \
Ptr<const AttributeAccessor> Make##type##Accessor (T1 a1) \
{ \
return MakeClassValueHelperAccessor< type , \
type##Value, type##Accessor> (a1); \
} \
template <typename T1, typename T2> \
Ptr<const AttributeAccessor> Make##type##Accessor (T1 a1, T2 a2) \
{ \
return MakeClassValueHelperAccessor<type, \
type##Value,type##Accessor> (a1, a2); \
}
#define VALUE_HELPER_CPP(type) \
Ptr<AttributeChecker> Make##type##Checker (void) \
Ptr<const AttributeChecker> Make##type##Checker (void) \
{ \
return MakeSimpleAttributeChecker<type> (); \
} \

View File

@@ -121,16 +121,16 @@ Attribute::Attribute (std::string value)
{}
Accessor::Accessor ()
AttributeAccessor::AttributeAccessor ()
: m_count (1)
{}
void
Accessor::Ref (void) const
AttributeAccessor::Ref (void) const
{
m_count++;
}
void
Accessor::Unref (void) const
AttributeAccessor::Unref (void) const
{
m_count--;
if (m_count == 0)
@@ -138,7 +138,7 @@ Accessor::Unref (void) const
delete this;
}
}
Accessor::~Accessor ()
AttributeAccessor::~AttributeAccessor ()
{}
AttributeChecker::AttributeChecker ()

View File

@@ -8,7 +8,7 @@
namespace ns3 {
class Accessor;
class AttributeAccessor;
class AttributeChecker;
class Attribute;
@@ -60,13 +60,13 @@ private:
Value *m_value;
};
class Accessor : public ObjectBase
class AttributeAccessor : public ObjectBase
{
public:
Accessor ();
AttributeAccessor ();
void Ref (void) const;
void Unref (void) const;
virtual ~Accessor ();
virtual ~AttributeAccessor ();
/**
* \param object the object instance to set the value in
@@ -97,14 +97,14 @@ Ptr<AttributeChecker>
MakeSimpleAttributeChecker (void);
template <typename T, typename U>
Ptr<const Accessor>
Ptr<const AttributeAccessor>
MakePtrAccessor (Ptr<U> T::*memberVariable);
template <typename T, typename U>
Ptr<const Accessor>
Ptr<const AttributeAccessor>
MakePtrAccessor (void (T::*setter) (Ptr<U>));
template <typename T, typename U>
Ptr<const Accessor>
Ptr<const AttributeAccessor>
MakePtrAccessor (Ptr<U> (T::*getter) (void) const);
@@ -232,7 +232,7 @@ Attribute::operator Ptr<T> ()
********************************************************/
template <typename T, typename U>
class PtrAccessor : public Accessor
class PtrAccessor : public AttributeAccessor
{
public:
virtual ~PtrAccessor () {}
@@ -275,7 +275,7 @@ private:
template <typename T, typename U>
Ptr<const Accessor>
Ptr<const AttributeAccessor>
MakePtrAccessor (Ptr<U> T::*memberVariable)
{
struct MemberVariable : public PtrAccessor<T,U>
@@ -292,11 +292,11 @@ MakePtrAccessor (Ptr<U> T::*memberVariable)
}
} *spec = new MemberVariable ();
spec->m_memberVariable = memberVariable;
return Ptr<const Accessor> (spec, false);
return Ptr<const AttributeAccessor> (spec, false);
}
template <typename T, typename U>
Ptr<const Accessor>
Ptr<const AttributeAccessor>
MakePtrAccessor (void (T::*setter) (Ptr<U>))
{
struct MemberMethod : public PtrAccessor<T,U>
@@ -314,11 +314,11 @@ MakePtrAccessor (void (T::*setter) (Ptr<U>))
}
} *spec = new MemberMethod ();
spec->m_setter = setter;
return Ptr<const Accessor> (spec, false);
return Ptr<const AttributeAccessor> (spec, false);
}
template <typename T, typename U>
Ptr<const Accessor>
Ptr<const AttributeAccessor>
MakePtrAccessor (Ptr<U> (T::*getter) (void) const)
{
struct MemberMethod : public PtrAccessor<T,U>
@@ -335,7 +335,7 @@ MakePtrAccessor (Ptr<U> (T::*getter) (void) const)
}
} *spec = new MemberMethod ();
spec->m_getter = getter;
return Ptr<const Accessor> (spec, false);
return Ptr<const AttributeAccessor> (spec, false);
}
template <typename T>

View File

@@ -671,14 +671,14 @@ typedef TimeUnit<2> TimeSquare;
class TimeValue : public Value {};
class TimeAccessor : public Accessor {};
class TimeAccessor : public AttributeAccessor {};
template <typename T1>
Ptr<Accessor> MakeTimeAccessor (T1 a1);
Ptr<const AttributeAccessor> MakeTimeAccessor (T1 a1);
template <typename T1, typename T2>
Ptr<Accessor> MakeTimeAccessor (T1 a1, T2 a2);
Ptr<const AttributeAccessor> MakeTimeAccessor (T1 a1, T2 a2);
Ptr<AttributeChecker> MakeTimeChecker (void);
Ptr<const AttributeChecker> MakeTimeChecker (void);
@@ -687,13 +687,13 @@ Ptr<AttributeChecker> MakeTimeChecker (void);
namespace ns3 {
template <typename T1>
Ptr<Accessor> MakeTimeAccessor (T1 a1)
Ptr<const AttributeAccessor> MakeTimeAccessor (T1 a1)
{
return MakeClassValueHelperAccessor<Time,TimeValue,TimeAccessor> (a1);
}
template <typename T1, typename T2>
Ptr<Accessor> MakeTimeAccessor (T1 a1, T2 a2)
Ptr<const AttributeAccessor> MakeTimeAccessor (T1 a1, T2 a2)
{
return MakeClassValueHelperAccessor<Time,TimeValue,TimeAccessor> (a1, a2);
}

View File

@@ -305,7 +305,7 @@ TimeUnit<1>::operator Attribute () const
return ClassValueHelperConvertTo<Time,TimeValue> (this);
}
Ptr<AttributeChecker> MakeTimeChecker (void)
Ptr<const AttributeChecker> MakeTimeChecker (void)
{
return MakeSimpleAttributeChecker<Time> ();
}