diff --git a/src/core/composite-trace-resolver.cc b/src/core/composite-trace-resolver.cc index 0b45b7cd7..5f04b2c28 100644 --- a/src/core/composite-trace-resolver.cc +++ b/src/core/composite-trace-resolver.cc @@ -74,7 +74,7 @@ CompositeTraceResolver::Add (std::string name, void CompositeTraceResolver::AddSource (std::string name, const TraceDoc &doc, - TraceSource &trace) + const TraceSource &trace) { DoAddSource (name, doc, trace, TraceContext ()); } @@ -82,7 +82,7 @@ CompositeTraceResolver::AddSource (std::string name, void CompositeTraceResolver::DoAddSource (std::string name, const TraceDoc &doc, - TraceSource &trace, + const TraceSource &trace, const TraceContext &context) { class SourceCompositeItem : public CompositeItem @@ -106,7 +106,7 @@ CompositeTraceResolver::DoAddSource (std::string name, } *item = new SourceCompositeItem (); item->name = name; item->context = context; - item->trace = &trace; + item->trace = const_cast (&trace); item->doc = doc; AddItem (item); } diff --git a/src/core/composite-trace-resolver.h b/src/core/composite-trace-resolver.h index c9b0fd1d7..e9ead6af0 100644 --- a/src/core/composite-trace-resolver.h +++ b/src/core/composite-trace-resolver.h @@ -55,7 +55,7 @@ public: */ template void AddSource (std::string name, const TraceDoc &doc, - TraceSource &trace, T const &context); + const TraceSource &trace, T const &context); /** * \param name name of trace source * \param trace a callback trace source @@ -66,7 +66,7 @@ public: */ void AddSource (std::string name, const TraceDoc &doc, - TraceSource &trace); + const TraceSource &trace); void AddChild (std::string name, Ptr child); @@ -116,7 +116,7 @@ private: void DoAddChild (std::string name, Ptr child, const TraceContext &context); void DoAddSource (std::string name, const TraceDoc &doc, - TraceSource &trace, + const TraceSource &trace, const TraceContext &context); void Add (std::string name, Callback > createResolver); @@ -136,7 +136,7 @@ template void CompositeTraceResolver::AddSource (std::string name, const TraceDoc &doc, - TraceSource &trace, + const TraceSource &trace, T const &context) { TraceContext ctx; diff --git a/src/core/object.cc b/src/core/object.cc index 8b5852665..56768be5d 100644 --- a/src/core/object.cc +++ b/src/core/object.cc @@ -63,20 +63,20 @@ namespace ns3 { class InterfaceIdTraceResolver : public TraceResolver { public: - InterfaceIdTraceResolver (Ptr aggregate); + InterfaceIdTraceResolver (Ptr aggregate); virtual void Connect (std::string path, CallbackBase const &cb, const TraceContext &context); virtual void Disconnect (std::string path, CallbackBase const &cb); virtual void CollectSources (std::string path, const TraceContext &context, SourceCollection *collection); private: - Ptr ParseForInterface (std::string path); - Ptr m_aggregate; + Ptr ParseForInterface (std::string path); + Ptr m_aggregate; }; -InterfaceIdTraceResolver::InterfaceIdTraceResolver (Ptr aggregate) +InterfaceIdTraceResolver::InterfaceIdTraceResolver (Ptr aggregate) : m_aggregate (aggregate) {} -Ptr +Ptr InterfaceIdTraceResolver::ParseForInterface (std::string path) { std::string element = GetElement (path); @@ -93,7 +93,7 @@ InterfaceIdTraceResolver::ParseForInterface (std::string path) void InterfaceIdTraceResolver::Connect (std::string path, CallbackBase const &cb, const TraceContext &context) { - Ptr interface = ParseForInterface (path); + Ptr interface = ParseForInterface (path); if (interface != 0) { interface->GetTraceResolver ()->Connect (GetSubpath (path), cb, context); @@ -102,7 +102,7 @@ InterfaceIdTraceResolver::Connect (std::string path, CallbackBase const &cb, con void InterfaceIdTraceResolver::Disconnect (std::string path, CallbackBase const &cb) { - Ptr interface = ParseForInterface (path); + Ptr interface = ParseForInterface (path); if (interface != 0) { interface->TraceDisconnect (GetSubpath (path), cb); @@ -232,12 +232,12 @@ Object::AddInterface (Ptr o) } void -Object::TraceConnect (std::string path, const CallbackBase &cb) +Object::TraceConnect (std::string path, const CallbackBase &cb) const { GetTraceResolver ()->Connect (path, cb, TraceContext ()); } void -Object::TraceDisconnect (std::string path, const CallbackBase &cb) +Object::TraceDisconnect (std::string path, const CallbackBase &cb) const { GetTraceResolver ()->Disconnect (path, cb); } @@ -256,7 +256,7 @@ Object::DoDispose (void) } Ptr -Object::GetTraceResolver (void) +Object::GetTraceResolver (void) const { Ptr resolver = Create (this); @@ -298,9 +298,9 @@ Object::MaybeDelete (void) const void Object::DoCollectSources (std::string path, const TraceContext &context, - TraceResolver::SourceCollection *collection) + TraceResolver::SourceCollection *collection) const { - Object *current; + const Object *current; current = this; do { if (current->m_collecting) diff --git a/src/core/object.h b/src/core/object.h index 8124ec991..ea4f091db 100644 --- a/src/core/object.h +++ b/src/core/object.h @@ -149,7 +149,7 @@ public: * match the input path. * */ - void TraceConnect (std::string path, const CallbackBase &cb); + void TraceConnect (std::string path, const CallbackBase &cb) const; /** * \param path the path to match for the callback * \param cb callback to disconnect @@ -157,13 +157,13 @@ public: * Disconnect the input callback from all trace sources which * match the input path. */ - void TraceDisconnect (std::string path, const CallbackBase &cb); + void TraceDisconnect (std::string path, const CallbackBase &cb) const; /** * \returns the trace resolver associated to this object. * * This method should be rarely called by users. */ - virtual Ptr GetTraceResolver (void); + virtual Ptr GetTraceResolver (void) const; protected: /** * \param iid an InterfaceId @@ -183,13 +183,13 @@ private: friend class InterfaceIdTraceResolver; Ptr DoQueryInterface (InterfaceId iid) const; void DoCollectSources (std::string path, const TraceContext &context, - TraceResolver::SourceCollection *collection); + TraceResolver::SourceCollection *collection) const; bool Check (void) const; void MaybeDelete (void) const; mutable uint32_t m_count; InterfaceId m_iid; bool m_disposed; - bool m_collecting; + mutable bool m_collecting; Object *m_next; }; diff --git a/src/devices/csma/csma-net-device.cc b/src/devices/csma/csma-net-device.cc index 06fea4895..8b11ec583 100644 --- a/src/devices/csma/csma-net-device.cc +++ b/src/devices/csma/csma-net-device.cc @@ -458,7 +458,7 @@ CsmaNetDevice::TransmitReadyEvent (void) } Ptr -CsmaNetDevice::GetTraceResolver (void) +CsmaNetDevice::GetTraceResolver (void) const { Ptr resolver = Create (); resolver->AddChild ("queue", m_queue); diff --git a/src/devices/csma/csma-net-device.h b/src/devices/csma/csma-net-device.h index 392e8c91d..db850914e 100644 --- a/src/devices/csma/csma-net-device.h +++ b/src/devices/csma/csma-net-device.h @@ -212,7 +212,7 @@ protected: * (NOT TESTED) * @see class TraceResolver */ - virtual Ptr GetTraceResolver (void); + virtual Ptr GetTraceResolver (void) const; /** * Get a copy of the attached Queue. diff --git a/src/devices/point-to-point/point-to-point-net-device.cc b/src/devices/point-to-point/point-to-point-net-device.cc index e6c2d8de6..d2b5e45e0 100644 --- a/src/devices/point-to-point/point-to-point-net-device.cc +++ b/src/devices/point-to-point/point-to-point-net-device.cc @@ -195,7 +195,7 @@ void PointToPointNetDevice::TransmitComplete (void) } Ptr -PointToPointNetDevice::GetTraceResolver (void) +PointToPointNetDevice::GetTraceResolver (void) const { Ptr resolver = Create (); resolver->AddChild ("queue", m_queue); diff --git a/src/devices/point-to-point/point-to-point-net-device.h b/src/devices/point-to-point/point-to-point-net-device.h index 0adc8fde0..88544b7ed 100644 --- a/src/devices/point-to-point/point-to-point-net-device.h +++ b/src/devices/point-to-point/point-to-point-net-device.h @@ -158,7 +158,7 @@ protected: * * @see class TraceResolver */ - virtual Ptr GetTraceResolver (void); + virtual Ptr GetTraceResolver (void) const; virtual void DoDispose (void); /** * Get a copy of the attached Queue. diff --git a/src/internet-node/arp-ipv4-interface.cc b/src/internet-node/arp-ipv4-interface.cc index 2648c5ec4..c6dff084e 100644 --- a/src/internet-node/arp-ipv4-interface.cc +++ b/src/internet-node/arp-ipv4-interface.cc @@ -41,7 +41,7 @@ ArpIpv4Interface::~ArpIpv4Interface () {} Ptr -ArpIpv4Interface::GetTraceResolver (void) +ArpIpv4Interface::GetTraceResolver (void) const { Ptr resolver = Create (); if (GetDevice () != 0) diff --git a/src/internet-node/arp-ipv4-interface.h b/src/internet-node/arp-ipv4-interface.h index 73bf4f462..c5d36a29f 100644 --- a/src/internet-node/arp-ipv4-interface.h +++ b/src/internet-node/arp-ipv4-interface.h @@ -43,7 +43,7 @@ class ArpIpv4Interface : public Ipv4Interface virtual ~ArpIpv4Interface (); protected: - virtual Ptr GetTraceResolver (void); + virtual Ptr GetTraceResolver (void) const; private: virtual void SendTo (Packet p, Ipv4Address dest); Ptr m_node; diff --git a/src/internet-node/internet-node.cc b/src/internet-node/internet-node.cc index 7bc9cd3c8..a27288ebc 100644 --- a/src/internet-node/internet-node.cc +++ b/src/internet-node/internet-node.cc @@ -75,7 +75,7 @@ InternetNode::Construct (void) } Ptr -InternetNode::GetTraceResolver () +InternetNode::GetTraceResolver () const { Ptr resolver = Create (); Ptr ipv4 = QueryInterface (Ipv4L3Protocol::iid); diff --git a/src/internet-node/internet-node.h b/src/internet-node/internet-node.h index d54714a8b..0c855029e 100644 --- a/src/internet-node/internet-node.h +++ b/src/internet-node/internet-node.h @@ -42,7 +42,7 @@ public: protected: virtual void DoDispose(void); - virtual Ptr GetTraceResolver (void); + virtual Ptr GetTraceResolver (void) const; private: bool ReceiveFromDevice (Ptr device, const Packet &p, uint16_t protocolNumber) const; void Construct (void); diff --git a/src/internet-node/ipv4-l3-protocol.cc b/src/internet-node/ipv4-l3-protocol.cc index 2eab180d9..1409cad50 100644 --- a/src/internet-node/ipv4-l3-protocol.cc +++ b/src/internet-node/ipv4-l3-protocol.cc @@ -159,7 +159,7 @@ Ipv4L3Protocol::SetupLoopback (void) } Ptr -Ipv4L3Protocol::GetTraceResolver (void) +Ipv4L3Protocol::GetTraceResolver (void) const { Ptr resolver = Create (); resolver->AddSource ("tx", diff --git a/src/internet-node/ipv4-l3-protocol.h b/src/internet-node/ipv4-l3-protocol.h index ad9d482d2..f5e8aef04 100644 --- a/src/internet-node/ipv4-l3-protocol.h +++ b/src/internet-node/ipv4-l3-protocol.h @@ -171,7 +171,7 @@ public: protected: virtual void DoDispose (void); - virtual Ptr GetTraceResolver (void); + virtual Ptr GetTraceResolver (void) const; private: diff --git a/src/internet-node/ipv4-l4-demux.cc b/src/internet-node/ipv4-l4-demux.cc index 120b3f47e..b4e7e0860 100644 --- a/src/internet-node/ipv4-l4-demux.cc +++ b/src/internet-node/ipv4-l4-demux.cc @@ -84,7 +84,7 @@ Ipv4L4Demux::DoDispose (void) } Ptr -Ipv4L4Demux::GetTraceResolver (void) +Ipv4L4Demux::GetTraceResolver (void) const { Ptr resolver = Create (); for (L4List_t::const_iterator i = m_protocols.begin(); i != m_protocols.end(); ++i) diff --git a/src/internet-node/ipv4-l4-demux.h b/src/internet-node/ipv4-l4-demux.h index efd91bd44..40641485b 100644 --- a/src/internet-node/ipv4-l4-demux.h +++ b/src/internet-node/ipv4-l4-demux.h @@ -89,7 +89,7 @@ public: */ void Remove (Ptr protocol); protected: - Ptr GetTraceResolver (void); + Ptr GetTraceResolver (void) const; virtual void DoDispose (void); private: typedef std::list > L4List_t; diff --git a/src/mobility/mobility-model-notifier.cc b/src/mobility/mobility-model-notifier.cc index e7cb8bc3e..5dbb1bbc2 100644 --- a/src/mobility/mobility-model-notifier.cc +++ b/src/mobility/mobility-model-notifier.cc @@ -41,7 +41,7 @@ MobilityModelNotifier::Notify (Ptr position) const } Ptr -MobilityModelNotifier::GetTraceResolver (void) +MobilityModelNotifier::GetTraceResolver (void) const { Ptr resolver = Create (); diff --git a/src/mobility/mobility-model-notifier.h b/src/mobility/mobility-model-notifier.h index 0f8422d4e..1d2409f8e 100644 --- a/src/mobility/mobility-model-notifier.h +++ b/src/mobility/mobility-model-notifier.h @@ -48,7 +48,7 @@ public: */ void Notify (Ptr position) const; protected: - virtual Ptr GetTraceResolver (void); + virtual Ptr GetTraceResolver (void) const; private: CallbackTraceSource > m_trace; }; diff --git a/src/node/node-list.cc b/src/node/node-list.cc index 7278f2e3a..9c3b27ce7 100644 --- a/src/node/node-list.cc +++ b/src/node/node-list.cc @@ -67,9 +67,9 @@ public: ~NodeListPriv (); uint32_t Add (Ptr node); - NodeList::Iterator Begin (void); - NodeList::Iterator End (void); - Ptr GetTraceResolver (void); + NodeList::Iterator Begin (void) const; + NodeList::Iterator End (void) const; + Ptr GetTraceResolver (void) const; Ptr GetNode (uint32_t n); uint32_t GetNNodes (void); @@ -101,12 +101,12 @@ NodeListPriv::Add (Ptr node) } NodeList::Iterator -NodeListPriv::Begin (void) +NodeListPriv::Begin (void) const { return m_nodes.begin (); } NodeList::Iterator -NodeListPriv::End (void) +NodeListPriv::End (void) const { return m_nodes.end (); } @@ -124,7 +124,7 @@ NodeListPriv::GetNode (uint32_t n) Ptr -NodeListPriv::GetTraceResolver (void) +NodeListPriv::GetTraceResolver (void) const { Ptr resolver = Create (); resolver->AddArray ("nodes", Begin (), End (), NodeListIndex ()); diff --git a/src/node/node-list.h b/src/node/node-list.h index dfb4e4ce9..d256953c1 100644 --- a/src/node/node-list.h +++ b/src/node/node-list.h @@ -54,7 +54,7 @@ private: class NodeList { public: - typedef std::vector< Ptr >::iterator Iterator; + typedef std::vector< Ptr >::const_iterator Iterator; /** * \param node node to add diff --git a/src/node/node.cc b/src/node/node.cc index 52231fa1b..c9b304a93 100644 --- a/src/node/node.cc +++ b/src/node/node.cc @@ -87,7 +87,7 @@ Node::~Node () {} Ptr -Node::GetTraceResolver (void) +Node::GetTraceResolver (void) const { Ptr resolver = Create (); resolver->AddArray ("devices", m_devices.begin (), m_devices.end (), NodeNetDeviceIndex ()); diff --git a/src/node/node.h b/src/node/node.h index 062f259c6..4f1c5be86 100644 --- a/src/node/node.h +++ b/src/node/node.h @@ -173,7 +173,7 @@ public: void UnregisterProtocolHandler (ProtocolHandler handler); protected: - virtual Ptr GetTraceResolver (void); + virtual Ptr GetTraceResolver (void) const; /** * The dispose method. Subclasses must override this method * and must chain up to it by calling Node::DoDispose at the diff --git a/src/node/queue.cc b/src/node/queue.cc index 809600854..74e36f3ee 100644 --- a/src/node/queue.cc +++ b/src/node/queue.cc @@ -100,7 +100,7 @@ Queue::~Queue() } Ptr -Queue::GetTraceResolver (void) +Queue::GetTraceResolver (void) const { Ptr resolver = Create (); resolver->AddSource ("enqueue", diff --git a/src/node/queue.h b/src/node/queue.h index f10191fad..7b54f6e72 100644 --- a/src/node/queue.h +++ b/src/node/queue.h @@ -166,7 +166,7 @@ private: virtual bool DoPeek (Packet &p) = 0; protected: - Ptr GetTraceResolver (void); + Ptr GetTraceResolver (void) const; // called by subclasses to notify parent of packet drops. void Drop (const Packet& p);