From 99f4928d7c294b5143550cfc4aa41108945442e5 Mon Sep 17 00:00:00 2001 From: Mathieu Lacage Date: Sun, 2 Mar 2008 22:08:17 +0100 Subject: [PATCH] port AsciiTrace to Config::ConnectWithContext --- src/internet-node/ascii-trace.cc | 35 ++++++++++++++++---------------- src/internet-node/ascii-trace.h | 8 ++++---- src/node/queue.cc | 7 +++++++ 3 files changed, 29 insertions(+), 21 deletions(-) diff --git a/src/internet-node/ascii-trace.cc b/src/internet-node/ascii-trace.cc index b50c51243..2253d0322 100644 --- a/src/internet-node/ascii-trace.cc +++ b/src/internet-node/ascii-trace.cc @@ -20,10 +20,10 @@ */ #include "ascii-trace.h" +#include "ns3/config.h" #include "ns3/trace-context.h" #include "ns3/simulator.h" #include "ns3/node.h" -#include "ns3/node-list.h" #include "ns3/packet.h" #include "ns3/queue.h" @@ -41,61 +41,62 @@ void AsciiTrace::TraceAllQueues (void) { Packet::EnableMetadata (); - NodeList::Connect ("/nodes/*/devices/*/queue/enqueue", - MakeCallback (&AsciiTrace::LogDevQueueEnqueue, this)); - NodeList::Connect ("/nodes/*/devices/*/queue/dequeue", - MakeCallback (&AsciiTrace::LogDevQueueDequeue, this)); - NodeList::Connect ("/nodes/*/devices/*/queue/drop", - MakeCallback (&AsciiTrace::LogDevQueueDrop, this)); + Config::ConnectWithContext ("/NodeList/*/DeviceList/*/TxQueue/Enqueue", + MakeCallback (&AsciiTrace::LogDevQueueEnqueue, this)); + Config::ConnectWithContext ("/NodeList/*/DeviceList/*/TxQueue/Dequeue", + MakeCallback (&AsciiTrace::LogDevQueueDequeue, this)); + Config::ConnectWithContext ("/NodeList/*/DeviceList/*/TxQueue/Drop", + MakeCallback (&AsciiTrace::LogDevQueueDrop, this)); } void AsciiTrace::TraceAllNetDeviceRx (void) { Packet::EnableMetadata (); - NodeList::Connect ("/nodes/*/devices/*/rx", - MakeCallback (&AsciiTrace::LogDevRx, this)); + Config::ConnectWithContext ("/NodeList/*/DeviceList/*/Rx", + MakeCallback (&AsciiTrace::LogDevRx, this)); } void -AsciiTrace::LogDevQueueEnqueue (TraceContext const &context, +AsciiTrace::LogDevQueueEnqueue (std::string context, Ptr packet) { m_os << "+ "; m_os << Simulator::Now ().GetSeconds () << " "; - context.Print (m_os); + m_os << context; m_os << " pkt-uid=" << packet->GetUid () << " "; packet->Print (m_os); m_os << std::endl; } void -AsciiTrace::LogDevQueueDequeue (TraceContext const &context, +AsciiTrace::LogDevQueueDequeue (std::string context, Ptr packet) { m_os << "- "; m_os << Simulator::Now ().GetSeconds () << " "; - context.Print (m_os); + m_os << context; m_os << " pkt-uid=" << packet->GetUid () << " "; packet->Print (m_os); m_os << std::endl; } void -AsciiTrace::LogDevQueueDrop (TraceContext const &context, +AsciiTrace::LogDevQueueDrop (std::string context, Ptr packet) { m_os << "d "; m_os << Simulator::Now ().GetSeconds () << " "; - context.Print (m_os); + m_os << context; m_os << " pkt-uid=" << packet->GetUid () << " "; packet->Print (m_os); m_os << std::endl; } void -AsciiTrace::LogDevRx (TraceContext const &context, Ptr p) +AsciiTrace::LogDevRx (std::string context, + Ptr p) { m_os << "r " << Simulator::Now ().GetSeconds () << " "; - context.Print (m_os); + m_os << context; m_os << " pkt-uid=" << p->GetUid () << " "; p->Print (m_os); m_os << std::endl; diff --git a/src/internet-node/ascii-trace.h b/src/internet-node/ascii-trace.h index 230e9db38..18b436cd6 100644 --- a/src/internet-node/ascii-trace.h +++ b/src/internet-node/ascii-trace.h @@ -38,10 +38,10 @@ public: void TraceAllQueues (void); void TraceAllNetDeviceRx (void); private: - void LogDevQueueEnqueue (TraceContext const &context, Ptr p); - void LogDevQueueDequeue (TraceContext const &context, Ptr p); - void LogDevQueueDrop (TraceContext const &context, Ptr p); - void LogDevRx (TraceContext const &context, Ptr p); + void LogDevQueueEnqueue (std::string context, Ptr p); + void LogDevQueueDequeue (std::string context, Ptr p); + void LogDevQueueDrop (std::string context, Ptr p); + void LogDevRx (std::string context, Ptr p); std::ofstream m_os; }; diff --git a/src/node/queue.cc b/src/node/queue.cc index f1d7f0cf6..f71d9af75 100644 --- a/src/node/queue.cc +++ b/src/node/queue.cc @@ -18,6 +18,7 @@ */ #include "ns3/log.h" +#include "ns3/trace-source-accessor.h" #include "queue.h" NS_LOG_COMPONENT_DEFINE ("Queue"); @@ -31,6 +32,12 @@ Queue::GetTypeId (void) { static TypeId tid = TypeId ("Queue") .SetParent () + .AddTraceSource ("Enqueue", "XXX", + MakeTraceSourceAccessor (&Queue::m_traceEnqueue)) + .AddTraceSource ("Dequeue", "XXX", + MakeTraceSourceAccessor (&Queue::m_traceDequeue)) + .AddTraceSource ("Drop", "XXX", + MakeTraceSourceAccessor (&Queue::m_traceDrop)) ; return tid; }