# HG changeset patch # User Mathieu Lacage # Date 1207768524 25200 # Node ID 73b47ce1d805b5f09ad213a2efbaa44b8c29c057 # Parent 96d1fc8166810e7eca3175bd788778a9e9cc8e8b get rid of implicit conversion of Attribute to/from Ptr<>. Replace this with an explicit Pointer class. diff -r 96d1fc816681 -r 73b47ce1d805 examples/simple-error-model.cc --- a/examples/simple-error-model.cc Wed Apr 09 11:46:04 2008 -0700 +++ b/examples/simple-error-model.cc Wed Apr 09 12:15:24 2008 -0700 @@ -159,7 +159,7 @@ // specified by the default classId Ptr em = CreateObject ("RanVar", UniformVariable (0.0, 1.0), "ErrorRate", Double (0.001)); - d3d2.Get (0)->SetAttribute ("ReceiveErrorModel", em); + d3d2.Get (0)->SetAttribute ("ReceiveErrorModel", Pointer (em)); // Now, let's use the ListErrorModel and explicitly force a loss // of the packets with pkt-uids = 11 and 17 on node 2, device 0 @@ -169,7 +169,7 @@ // This time, we'll explicitly create the error model we want Ptr pem = CreateObject (); pem->SetList (sampleList); - d0d2.Get (1)->SetAttribute ("ReceiveErrorModel", pem); + d0d2.Get (1)->SetAttribute ("ReceiveErrorModel", Pointer (pem)); std::ofstream ascii; ascii.open ("simple-error-model.tr"); diff -r 96d1fc816681 -r 73b47ce1d805 samples/main-attribute-value.cc --- a/samples/main-attribute-value.cc Wed Apr 09 11:46:04 2008 -0700 +++ b/samples/main-attribute-value.cc Wed Apr 09 12:15:24 2008 -0700 @@ -24,6 +24,7 @@ #include "ns3/config.h" #include "ns3/uinteger.h" #include "ns3/string.h" +#include "ns3/pointer.h" #include "ns3/simulator.h" #include "ns3/node.h" @@ -87,7 +88,7 @@ // First, we observe that we can get a pointer to the (base class) // queue via the PointToPointNetDevice attributes, where it is called // TxQueue - Ptr txQueue = net0->GetAttribute ("TxQueue"); + Ptr txQueue = Pointer (net0->GetAttribute ("TxQueue")); // Using the GetObject function, we can perform a safe downcast // to a DropTailQueue, where MaxPackets is a member diff -r 96d1fc816681 -r 73b47ce1d805 src/core/attribute-test.cc --- a/src/core/attribute-test.cc Wed Apr 09 11:46:04 2008 -0700 +++ b/src/core/attribute-test.cc Wed Apr 09 12:15:24 2008 -0700 @@ -109,10 +109,6 @@ MakeBooleanAccessor (&AttributeObjectTest::DoSetTestB, &AttributeObjectTest::DoGetTestB), MakeBooleanChecker ()) - .AddAttribute ("TestPtr", "help text", - Ptr (0), - MakePtrAccessor (&AttributeObjectTest::m_derived), - MakePtrChecker ()) .AddAttribute ("TestInt16", "help text", Integer (-2), MakeIntegerAccessor (&AttributeObjectTest::m_int16), @@ -219,7 +215,6 @@ } bool m_boolTestA; bool m_boolTest; - Ptr m_derived; int16_t m_int16; int16_t m_int16WithBounds; int16_t m_int16SetGet; @@ -298,23 +293,6 @@ CHECK_GET_PARAM (p, "TestBoolA", Boolean, true); - Ptr derived = p->GetAttribute ("TestPtr"); - NS_TEST_ASSERT (derived == 0); - derived = Create (); - NS_TEST_ASSERT (p->SetAttributeFailSafe("TestPtr", derived)); - Ptr stored = p->GetAttribute ("TestPtr"); - NS_TEST_ASSERT (stored == derived); - Ptr storedBase = p->GetAttribute ("TestPtr"); - NS_TEST_ASSERT (stored == storedBase); - Ptr x = p->GetAttribute ("TestPtr"); - NS_TEST_ASSERT (x == 0); - - p = CreateObject ("TestPtr", Create ()); - NS_TEST_ASSERT (p != 0); - derived = 0; - derived = p->GetAttribute ("TestPtr"); - NS_TEST_ASSERT (derived != 0); - CHECK_GET_STR (p, "TestInt16", "-2"); CHECK_GET_PARAM (p, "TestInt16", Integer, -2); @@ -488,16 +466,15 @@ NS_TEST_ASSERT (p->TraceConnectWithoutContext ("ValueSource", MakeCallback (&AttributeTest::NotifySourceValue, this))); - - derived = Pointer (p->GetAttribute ("Pointer")); + Ptrderived = Pointer (p->GetAttribute ("Pointer")); NS_TEST_ASSERT (derived == 0); derived = Create (); NS_TEST_ASSERT (p->SetAttributeFailSafe("Pointer", Pointer (derived))); - stored = Pointer (p->GetAttribute ("Pointer")); + Ptr stored = Pointer (p->GetAttribute ("Pointer")); NS_TEST_ASSERT (stored == derived); - storedBase = Pointer (p->GetAttribute ("Pointer")); + Ptr storedBase = Pointer (p->GetAttribute ("Pointer")); NS_TEST_ASSERT (stored == storedBase); - x = Pointer (p->GetAttribute ("Pointer")); + Ptr x = Pointer (p->GetAttribute ("Pointer")); NS_TEST_ASSERT (x == 0); p = CreateObject ("Pointer", Pointer (Create ())); diff -r 96d1fc816681 -r 73b47ce1d805 src/core/attribute.cc --- a/src/core/attribute.cc Wed Apr 09 11:46:04 2008 -0700 +++ b/src/core/attribute.cc Wed Apr 09 12:15:24 2008 -0700 @@ -172,19 +172,4 @@ AttributeChecker::~AttributeChecker () {} -std::string -PtrValueBase::SerializeToString (Ptr checker) const -{ - std::ostringstream oss; - oss << PeekObjectBase (); - return oss.str (); -} - -bool -PtrValueBase::DeserializeFromString (std::string value, Ptr checker) -{ - // XXX - return false; -} - } // namespace ns3 diff -r 96d1fc816681 -r 73b47ce1d805 src/core/attribute.h --- a/src/core/attribute.h Wed Apr 09 11:46:04 2008 -0700 +++ b/src/core/attribute.h Wed Apr 09 12:15:24 2008 -0700 @@ -135,17 +135,6 @@ template T DynCast (void) const; - /** - * \param pointer a pointer to convert into an Attribute. - */ - template - Attribute (Ptr pointer); - /** - * \returns a pointer converted from this Attribute instance. - */ - template - operator Ptr (); - private: Attribute (AttributeValue *value); AttributeValue *m_value; @@ -231,171 +220,11 @@ mutable uint32_t m_count; }; -template -Ptr -MakePtrAccessor (Ptr T::*memberVariable); - -template -Ptr -MakePtrAccessor (void (T::*setter) (Ptr)); -template -Ptr -MakePtrAccessor (Ptr (T::*getter) (void) const); -template -Ptr -MakePtrAccessor (void (T::*setter) (Ptr), - Ptr (T::*getter) (void) const); -template -Ptr -MakePtrAccessor (Ptr (T::*getter) (void) const, - void (T::*setter) (Ptr)); - - - -class PtrChecker : public AttributeChecker {}; - -template -Ptr MakePtrChecker (void); - - - } // namespace ns3 namespace ns3 { /******************************************************** - * The class used to access the pointer stored in a - * PtrValue AttributeValue instance. - ********************************************************/ - -class PtrValueBase : public AttributeValue -{ -public: - virtual ObjectBase *PeekObjectBase (void) const = 0; - virtual bool SetObjectBase (ObjectBase *object) = 0; - virtual std::string SerializeToString (Ptr checker) const; - virtual bool DeserializeFromString (std::string value, Ptr checker); -}; - -/******************************************************** - * Store the content of a Ptr in a AttributeValue - ********************************************************/ - -namespace internal { - -template -class PtrValue : public PtrValueBase -{ -public: - PtrValue () - : m_pointer () {} - PtrValue (Ptr pointer) - : m_pointer (pointer) {} - - virtual ObjectBase *PeekObjectBase (void) const { - return PeekPointer (m_pointer); - } - virtual bool SetObjectBase (ObjectBase *object) { - T *ptr = dynamic_cast (object); - if (ptr == 0) - { - return false; - } - m_pointer = ptr; - return true; - } - virtual Attribute Copy (void) const { - return Attribute::Create > (*this); - } -private: - Ptr m_pointer; -}; - -template -class APtrChecker : public PtrChecker -{ - virtual bool Check (Attribute val) const { - const PtrValueBase *value = val.DynCast (); - if (value == 0) - { - return false; - } - if (value->PeekObjectBase () == 0) - { - return true; - } - T *ptr = dynamic_cast (value->PeekObjectBase ()); - if (ptr == 0) - { - return false; - } - return true; - } - virtual std::string GetType (void) const { - // XXX: we should be able to return better information - return "Ptr<>"; - } - virtual bool HasTypeConstraints (void) const { - return false; - } - virtual std::string GetTypeConstraints (void) const { - return ""; - } - virtual Attribute Create (void) const { - return Attribute::Create > (); - } -}; - -/******************************************************** - * The Accessor associated to - * PtrValue - ********************************************************/ - -template -class PtrAccessor : public AttributeAccessor -{ -public: - virtual ~PtrAccessor () {} - virtual bool Set (ObjectBase * object, Attribute val) const { - T *obj = dynamic_cast (object); - if (obj == 0) - { - return false; - } - const PtrValueBase *value = val.DynCast (); - if (value == 0) - { - return false; - } - Ptr ptr = dynamic_cast (value->PeekObjectBase ()); - if (ptr == 0) - { - return false; - } - DoSet (obj, ptr); - return true; - } - virtual bool Get (const ObjectBase * object, Attribute val) const { - const T *obj = dynamic_cast (object); - if (obj == 0) - { - return false; - } - PtrValueBase *value = val.DynCast (); - if (value == 0) - { - return false; - } - return value->SetObjectBase (PeekPointer (DoGet (obj))); - } -private: - virtual void DoSet (T *object, Ptr value) const = 0; - virtual Ptr DoGet (const T *object) const = 0; -}; - -} // namespace internal - -/******************************************************** * The implementation of the Attribute * class template methods. ********************************************************/ @@ -420,120 +249,6 @@ return dynamic_cast (m_value); } -template -Attribute::Attribute (Ptr pointer) - : m_value (new internal::PtrValue (pointer)) -{} -template -Attribute::operator Ptr () -{ - PtrValueBase *value = DynCast (); - if (value == 0) - { - return 0; - } - ObjectBase *objectBase = value->PeekObjectBase (); - T *obj = dynamic_cast (objectBase); - if (obj == 0) - { - return 0; - } - return obj; -} - - - -template -Ptr -MakePtrAccessor (Ptr T::*memberVariable) -{ - struct MemberVariable : public internal::PtrAccessor - { - Ptr T::*m_memberVariable; - virtual void DoSet (T *object, Ptr value) const { - (object->*m_memberVariable) = value; - } - virtual Ptr DoGet (const T *object) const { - return object->*m_memberVariable; - } - } *spec = new MemberVariable (); - spec->m_memberVariable = memberVariable; - return Ptr (spec, false); -} - -template -Ptr -MakePtrAccessor (void (T::*setter) (Ptr)) -{ - struct MemberMethod : public internal::PtrAccessor - { - void (T::*m_setter) (Ptr); - virtual void DoSet (T *object, Ptr value) const { - (object->*m_setter) (value); - } - virtual Ptr DoGet (const T *object) const { - return 0; - //return (object->*m_getter) (); - } - } *spec = new MemberMethod (); - spec->m_setter = setter; - return Ptr (spec, false); -} - -template -Ptr -MakePtrAccessor (Ptr (T::*getter) (void) const) -{ - struct MemberMethod : public internal::PtrAccessor - { - Ptr (T::*m_getter) (void) const; - virtual void DoSet (T *object, Ptr value) const { - //(object->*m_setter) (value); - } - virtual Ptr DoGet (const T *object) const { - return (object->*m_getter) (); - } - } *spec = new MemberMethod (); - spec->m_getter = getter; - return Ptr (spec, false); -} -template -Ptr -MakePtrAccessor (void (T::*setter) (Ptr), - Ptr (T::*getter) (void) const) -{ - return MakePtrAccessor (getter, setter); -} -template -Ptr -MakePtrAccessor (Ptr (T::*getter) (void) const, - void (T::*setter) (Ptr)) -{ - struct MemberMethod : public internal::PtrAccessor - { - void (T::*m_setter) (Ptr); - Ptr (T::*m_getter) (void) const; - virtual void DoSet (T *object, Ptr value) const { - (object->*m_setter) (value); - } - virtual Ptr DoGet (const T *object) const { - return (object->*m_getter) (); - } - } *spec = new MemberMethod (); - spec->m_setter = setter; - spec->m_getter = getter; - return Ptr (spec, false); -} - - - -template -Ptr -MakePtrChecker (void) -{ - return Create > (); -} - } // namespace ns3 #endif /* ATTRIBUTE_H */ diff -r 96d1fc816681 -r 73b47ce1d805 src/core/config.cc --- a/src/core/config.cc Wed Apr 09 11:46:04 2008 -0700 +++ b/src/core/config.cc Wed Apr 09 12:15:24 2008 -0700 @@ -22,6 +22,7 @@ #include "object.h" #include "global-value.h" #include "object-vector.h" +#include "pointer.h" #include "log.h" #include @@ -213,14 +214,11 @@ return; } // attempt to cast to a pointer checker. - const PtrChecker *ptr = dynamic_cast (PeekPointer (info.checker)); + const PointerChecker *ptr = dynamic_cast (PeekPointer (info.checker)); if (ptr != 0) { NS_LOG_DEBUG ("GetAttribute(ptr)="<. We really need to fix this by thinking seriously about our - // object hierarchy. - Ptr object = root->GetAttribute (item); + Ptr object = Pointer (root->GetAttribute (item)); if (object == 0) { NS_LOG_ERROR ("Requested object name=\""< (0), - MakePtrAccessor (&MyNode::m_nodeA), - MakePtrChecker ()) + Pointer (), + MakePointerAccessor (&MyNode::m_nodeA), + MakePointerChecker ()) .AddAttribute ("NodeB", "", - Ptr (0), - MakePtrAccessor (&MyNode::m_nodeB), - MakePtrChecker ()) + Pointer (), + MakePointerAccessor (&MyNode::m_nodeB), + MakePointerChecker ()) .AddAttribute ("A", "", Integer (10), MakeIntegerAccessor (&MyNode::m_a), diff -r 96d1fc816681 -r 73b47ce1d805 src/core/pointer.h --- a/src/core/pointer.h Wed Apr 09 11:46:04 2008 -0700 +++ b/src/core/pointer.h Wed Apr 09 12:15:24 2008 -0700 @@ -88,7 +88,7 @@ namespace internal { template -class APointerChecker : public PtrChecker +class APointerChecker : public PointerChecker { virtual bool Check (Attribute val) const { const PointerValue *value = val.DynCast (); diff -r 96d1fc816681 -r 73b47ce1d805 src/devices/csma/csma-net-device.cc --- a/src/devices/csma/csma-net-device.cc Wed Apr 09 11:46:04 2008 -0700 +++ b/src/devices/csma/csma-net-device.cc Wed Apr 09 12:15:24 2008 -0700 @@ -27,6 +27,7 @@ #include "ns3/error-model.h" #include "ns3/enum.h" #include "ns3/boolean.h" +#include "ns3/pointer.h" #include "ns3/trace-source-accessor.h" #include "csma-net-device.h" #include "csma-channel.h" @@ -68,13 +69,13 @@ MakeDataRateAccessor (&CsmaNetDevice::m_bps), MakeDataRateChecker ()) .AddAttribute ("RxErrorModel", "XXX", - Ptr (0), - MakePtrAccessor (&CsmaNetDevice::m_receiveErrorModel), - MakePtrChecker ()) + Pointer (), + MakePointerAccessor (&CsmaNetDevice::m_receiveErrorModel), + MakePointerChecker ()) .AddAttribute ("TxQueue", "XXX", - Ptr (0), - MakePtrAccessor (&CsmaNetDevice::m_queue), - MakePtrChecker ()) + Pointer (), + MakePointerAccessor (&CsmaNetDevice::m_queue), + MakePointerChecker ()) .AddTraceSource ("Rx", "Receive MAC packet.", MakeTraceSourceAccessor (&CsmaNetDevice::m_rxTrace)) .AddTraceSource ("Drop", "Drop MAC packet.", diff -r 96d1fc816681 -r 73b47ce1d805 src/devices/point-to-point/point-to-point-net-device.cc --- a/src/devices/point-to-point/point-to-point-net-device.cc Wed Apr 09 11:46:04 2008 -0700 +++ b/src/devices/point-to-point/point-to-point-net-device.cc Wed Apr 09 12:15:24 2008 -0700 @@ -26,6 +26,7 @@ #include "ns3/llc-snap-header.h" #include "ns3/error-model.h" #include "ns3/trace-source-accessor.h" +#include "ns3/pointer.h" #include "point-to-point-net-device.h" #include "point-to-point-channel.h" @@ -50,13 +51,13 @@ MakeDataRateAccessor (&PointToPointNetDevice::m_bps), MakeDataRateChecker ()) .AddAttribute ("ReceiveErrorModel", "XXX", - Ptr (0), - MakePtrAccessor (&PointToPointNetDevice::m_receiveErrorModel), - MakePtrChecker ()) + Pointer (), + MakePointerAccessor (&PointToPointNetDevice::m_receiveErrorModel), + MakePointerChecker ()) .AddAttribute ("TxQueue", "XXX", - Ptr (0), - MakePtrAccessor (&PointToPointNetDevice::m_queue), - MakePtrChecker ()) + Pointer (), + MakePointerAccessor (&PointToPointNetDevice::m_queue), + MakePointerChecker ()) .AddAttribute ("InterframeGap", "XXX", Seconds (0.0), MakeTimeAccessor (&PointToPointNetDevice::m_tInterframeGap), diff -r 96d1fc816681 -r 73b47ce1d805 src/devices/wifi/propagation-loss-model.cc --- a/src/devices/wifi/propagation-loss-model.cc Wed Apr 09 11:46:04 2008 -0700 +++ b/src/devices/wifi/propagation-loss-model.cc Wed Apr 09 12:15:24 2008 -0700 @@ -22,6 +22,7 @@ #include "ns3/mobility-model.h" #include "ns3/static-mobility-model.h" #include "ns3/double.h" +#include "ns3/pointer.h" #include NS_LOG_COMPONENT_DEFINE ("PropagationLossModel"); @@ -192,9 +193,9 @@ MakeDoubleChecker ()) .AddAttribute ("ReferenceModel", "The reference model at the reference distance.", - Ptr (0), - MakePtrAccessor (&LogDistancePropagationLossModel::m_reference), - MakePtrChecker ()) + Pointer (), + MakePointerAccessor (&LogDistancePropagationLossModel::m_reference), + MakePointerChecker ()) ; return tid; diff -r 96d1fc816681 -r 73b47ce1d805 src/devices/wifi/wifi-channel.cc --- a/src/devices/wifi/wifi-channel.cc Wed Apr 09 11:46:04 2008 -0700 +++ b/src/devices/wifi/wifi-channel.cc Wed Apr 09 12:15:24 2008 -0700 @@ -23,6 +23,7 @@ #include "ns3/net-device.h" #include "ns3/node.h" #include "ns3/log.h" +#include "ns3/pointer.h" #include "wifi-channel.h" #include "propagation-loss-model.h" #include "propagation-delay-model.h" @@ -38,13 +39,13 @@ .SetParent () .AddConstructor () .AddAttribute ("PropagationLossModel", "XXX", - Ptr (0), - MakePtrAccessor (&WifiChannel::m_loss), - MakePtrChecker ()) + Pointer (), + MakePointerAccessor (&WifiChannel::m_loss), + MakePointerChecker ()) .AddAttribute ("PropagationDelayModel", "XXX", - Ptr (0), - MakePtrAccessor (&WifiChannel::m_delay), - MakePtrChecker ()) + Pointer (), + MakePointerAccessor (&WifiChannel::m_delay), + MakePointerChecker ()) ; return tid; } diff -r 96d1fc816681 -r 73b47ce1d805 src/devices/wifi/wifi-net-device.cc --- a/src/devices/wifi/wifi-net-device.cc Wed Apr 09 11:46:04 2008 -0700 +++ b/src/devices/wifi/wifi-net-device.cc Wed Apr 09 12:15:24 2008 -0700 @@ -25,6 +25,7 @@ #include "ns3/llc-snap-header.h" #include "ns3/packet.h" #include "ns3/uinteger.h" +#include "ns3/pointer.h" #include "ns3/node.h" #include "ns3/trace-source-accessor.h" @@ -36,25 +37,25 @@ static TypeId tid = TypeId ("ns3::WifiNetDevice") .SetParent () .AddAttribute ("Channel", "XXX", - Ptr (0), - MakePtrAccessor (&WifiNetDevice::DoGetChannel, - &WifiNetDevice::SetChannel), - MakePtrChecker ()) + Pointer (), + MakePointerAccessor (&WifiNetDevice::DoGetChannel, + &WifiNetDevice::SetChannel), + MakePointerChecker ()) .AddAttribute ("Phy", "XXX", - Ptr (0), - MakePtrAccessor (&WifiNetDevice::GetPhy, - &WifiNetDevice::SetPhy), - MakePtrChecker ()) + Pointer (), + MakePointerAccessor (&WifiNetDevice::GetPhy, + &WifiNetDevice::SetPhy), + MakePointerChecker ()) .AddAttribute ("Mac", "XXX", - Ptr (0), - MakePtrAccessor (&WifiNetDevice::GetMac, - &WifiNetDevice::SetMac), - MakePtrChecker ()) + Pointer (), + MakePointerAccessor (&WifiNetDevice::GetMac, + &WifiNetDevice::SetMac), + MakePointerChecker ()) .AddAttribute ("RemoteStationManager", "XXX", - Ptr (0), - MakePtrAccessor (&WifiNetDevice::SetRemoteStationManager, - &WifiNetDevice::GetRemoteStationManager), - MakePtrChecker ()) + Pointer (), + MakePointerAccessor (&WifiNetDevice::SetRemoteStationManager, + &WifiNetDevice::GetRemoteStationManager), + MakePointerChecker ()) .AddTraceSource ("Rx", "XXX", MakeTraceSourceAccessor (&WifiNetDevice::m_rxLogger)) .AddTraceSource ("Tx", "XXX", diff -r 96d1fc816681 -r 73b47ce1d805 src/helper/mobility-helper.cc --- a/src/helper/mobility-helper.cc Wed Apr 09 11:46:04 2008 -0700 +++ b/src/helper/mobility-helper.cc Wed Apr 09 12:15:24 2008 -0700 @@ -23,6 +23,7 @@ #include "ns3/position-allocator.h" #include "ns3/hierarchical-mobility-model.h" #include "ns3/log.h" +#include "ns3/pointer.h" namespace ns3 { @@ -146,8 +147,8 @@ // we need to setup a hierarchical mobility model Ptr parent = m_mobilityStack.back (); Ptr hierarchical = - CreateObject ("Child", model, - "Parent", parent); + CreateObject ("Child", Pointer (model), + "Parent", Pointer (parent)); object->AggregateObject (hierarchical); NS_LOG_DEBUG ("node="< () .AddConstructor () .AddAttribute ("Child", "The child mobility model.", - Ptr (0), - MakePtrAccessor (&HierarchicalMobilityModel::SetChild), - MakePtrChecker ()) + Pointer (), + MakePointerAccessor (&HierarchicalMobilityModel::SetChild), + MakePointerChecker ()) .AddAttribute ("Parent", "The parent mobility model.", - Ptr (0), - MakePtrAccessor (&HierarchicalMobilityModel::SetParent), - MakePtrChecker ()) + Pointer (), + MakePointerAccessor (&HierarchicalMobilityModel::SetParent), + MakePointerChecker ()) ; return tid; } diff -r 96d1fc816681 -r 73b47ce1d805 src/mobility/random-waypoint-mobility-model.cc --- a/src/mobility/random-waypoint-mobility-model.cc Wed Apr 09 11:46:04 2008 -0700 +++ b/src/mobility/random-waypoint-mobility-model.cc Wed Apr 09 12:15:24 2008 -0700 @@ -20,6 +20,7 @@ #include #include "ns3/simulator.h" #include "ns3/random-variable.h" +#include "ns3/pointer.h" #include "random-waypoint-mobility-model.h" #include "position-allocator.h" @@ -46,9 +47,9 @@ MakeRandomVariableChecker ()) .AddAttribute ("Position", "The position model used to pick a destination point.", - Ptr (0), - MakePtrAccessor (&RandomWaypointMobilityModel::m_position), - MakePtrChecker ()); + Pointer (), + MakePointerAccessor (&RandomWaypointMobilityModel::m_position), + MakePointerChecker ()); return tid; } diff -r 96d1fc816681 -r 73b47ce1d805 src/simulator/simulator.cc --- a/src/simulator/simulator.cc Wed Apr 09 11:46:04 2008 -0700 +++ b/src/simulator/simulator.cc Wed Apr 09 12:15:24 2008 -0700 @@ -23,6 +23,7 @@ #include "event-impl.h" #include "ns3/ptr.h" +#include "ns3/pointer.h" #include "ns3/assert.h" @@ -108,10 +109,10 @@ .AddConstructor () .AddAttribute ("Scheduler", "XXX", - Ptr (0), + Pointer (), // XXX: allow getting the scheduler too. - MakePtrAccessor (&SimulatorPrivate::SetScheduler), - MakePtrChecker ()) + MakePointerAccessor (&SimulatorPrivate::SetScheduler), + MakePointerChecker ()) ; return tid; }