From 8acd0300cdff95dd10d287ebf84b895854d9bc64 Mon Sep 17 00:00:00 2001 From: Mathieu Lacage Date: Tue, 28 Aug 2007 11:01:00 +0200 Subject: [PATCH] keep track of trace source help strings --- src/core/composite-trace-resolver.cc | 18 +++++++++------ src/core/composite-trace-resolver.h | 22 ++++++++----------- src/core/object.cc | 8 +++---- src/core/trace-resolver.cc | 7 ++++-- src/devices/csma-cd/csma-cd-net-device.cc | 2 ++ .../point-to-point-net-device.cc | 1 + src/internet-node/ipv4-l3-protocol.cc | 9 +++++--- src/mobility/mobility-model-notifier.cc | 3 ++- src/node/queue.cc | 9 +++++--- 9 files changed, 46 insertions(+), 33 deletions(-) diff --git a/src/core/composite-trace-resolver.cc b/src/core/composite-trace-resolver.cc index 0e8f5a947..959561f6e 100644 --- a/src/core/composite-trace-resolver.cc +++ b/src/core/composite-trace-resolver.cc @@ -73,13 +73,15 @@ CompositeTraceResolver::Add (std::string name, void CompositeTraceResolver::AddSource (std::string name, - TraceSource &trace) + std::string helpText, + TraceSource &trace) { - DoAddSource (name, trace, TraceContext ()); + DoAddSource (name, helpText, trace, TraceContext ()); } void CompositeTraceResolver::DoAddSource (std::string name, + std::string helpText, TraceSource &trace, const TraceContext &context) { @@ -98,13 +100,15 @@ CompositeTraceResolver::DoAddSource (std::string name, TraceContext ctx = context; ctx.Union (this->context); // XXX help string - collection->AddUnique (path, ctx, ""); + collection->AddUnique (path, ctx, helpText); } TraceSource *trace; + std::string helpText; } *item = new SourceCompositeItem (); item->name = name; item->context = context; item->trace = &trace; + item->helpText = helpText; AddItem (item); } @@ -397,7 +401,7 @@ Ptr CompositeTraceResolverTest::CreateSubResolver (void) { Ptr subresolver = Create (); - subresolver->AddSource ("trace-int", m_traceInt, + subresolver->AddSource ("trace-int", "test source", m_traceInt, SubTraceSourceTest (SubTraceSourceTest::INT)); return subresolver; } @@ -412,9 +416,9 @@ CompositeTraceResolverTest::RunTests (void) CompositeTraceResolver resolver; - resolver.AddSource ("trace-double-a", traceDoubleA, + resolver.AddSource ("trace-double-a", "test source", traceDoubleA, TraceSourceTest (TraceSourceTest::DOUBLEA)); - resolver.AddSource ("trace-double-b", traceDoubleB, + resolver.AddSource ("trace-double-b", "test source", traceDoubleB, TraceSourceTest (TraceSourceTest::DOUBLEB)); resolver.Connect ("/*", MakeCallback (&CompositeTraceResolverTest::TraceDouble, this), TraceContext ()); @@ -547,7 +551,7 @@ CompositeTraceResolverTest::RunTests (void) SVTraceSource source; - resolver.AddSource ("uint16_t", source, TraceSourceTest (TraceSourceTest::UINT16_T)); + resolver.AddSource ("uint16_t", "test source", source, TraceSourceTest (TraceSourceTest::UINT16_T)); return ok; diff --git a/src/core/composite-trace-resolver.h b/src/core/composite-trace-resolver.h index b65682fbb..47fd4ca3f 100644 --- a/src/core/composite-trace-resolver.h +++ b/src/core/composite-trace-resolver.h @@ -53,7 +53,7 @@ public: * be automatically extended to contain the input context. */ template - void AddSource (std::string name, + void AddSource (std::string name, std::string helpText, TraceSource &trace, T const &context); /** * \param name name of trace source @@ -64,18 +64,8 @@ public: * resolution. */ void AddSource (std::string name, + std::string helpText, TraceSource &trace); - /** - * \param name name of child trace resolver - * \param createResolver a trace resolver constructor - * - * Add a child trace resolver to this resolver. This child - * trace resolver will match the name specified during - * namespace resolution. When this happens, the constructor - * will be invoked to create the child trace resolver. - */ - void Add (std::string name, - Callback > createResolver); void AddChild (std::string name, Ptr child); @@ -95,6 +85,7 @@ public: SourceCollection *collection); private: + friend class CompositeTraceResolverTest; class CompositeItem { public: @@ -123,8 +114,12 @@ private: const Operation &operation); void DoAddChild (std::string name, Ptr child, const TraceContext &context); void DoAddSource (std::string name, + std::string helpText, TraceSource &trace, const TraceContext &context); + void Add (std::string name, + Callback > createResolver); + CompositeTraceResolver::TraceItems m_items; Ptr m_parent; @@ -139,12 +134,13 @@ namespace ns3 { template void CompositeTraceResolver::AddSource (std::string name, + std::string helpText, TraceSource &trace, T const &context) { TraceContext ctx; ctx.AddElement (context); - DoAddSource (name, trace, ctx); + DoAddSource (name, helpText, trace, ctx); } template diff --git a/src/core/object.cc b/src/core/object.cc index a59da10e2..c2d7c389a 100644 --- a/src/core/object.cc +++ b/src/core/object.cc @@ -346,7 +346,7 @@ public: { ns3::Ptr resolver = ns3::Create (); - resolver->AddSource ("basea-x", m_source); + resolver->AddSource ("basea-x", "test source", m_source); resolver->SetParent (Object::GetTraceResolver ()); return resolver; } @@ -370,7 +370,7 @@ public: { ns3::Ptr resolver = ns3::Create (); - resolver->AddSource ("deriveda-x", m_sourceDerived); + resolver->AddSource ("deriveda-x", "test source", m_sourceDerived); resolver->SetParent (BaseA::GetTraceResolver ()); return resolver; } @@ -397,7 +397,7 @@ public: { ns3::Ptr resolver = ns3::Create (); - resolver->AddSource ("baseb-x", m_source); + resolver->AddSource ("baseb-x", "test source", m_source); resolver->SetParent (Object::GetTraceResolver ()); return resolver; } @@ -421,7 +421,7 @@ public: { ns3::Ptr resolver = ns3::Create (); - resolver->AddSource ("derivedb-x", m_sourceDerived); + resolver->AddSource ("derivedb-x", "test source", m_sourceDerived); resolver->SetParent (BaseB::GetTraceResolver ()); return resolver; } diff --git a/src/core/trace-resolver.cc b/src/core/trace-resolver.cc index b4acde66c..a5f5267a4 100644 --- a/src/core/trace-resolver.cc +++ b/src/core/trace-resolver.cc @@ -99,9 +99,12 @@ TraceResolver::SourceCollection::Print (std::ostream &os) const { for (SourceVector::const_iterator i = m_sources.begin (); i != m_sources.end (); i++) { - os << i->path << " ["; + os << "source=" << i->path << std::endl; + os << "TraceContextElement="; i->context.PrintAvailable (os, " "); - os << "] " << i->help << std::endl; + os << std::endl; + os << i->help << std::endl; + os << std::endl; } } diff --git a/src/devices/csma-cd/csma-cd-net-device.cc b/src/devices/csma-cd/csma-cd-net-device.cc index 6454ae724..29fa3dd4a 100644 --- a/src/devices/csma-cd/csma-cd-net-device.cc +++ b/src/devices/csma-cd/csma-cd-net-device.cc @@ -460,9 +460,11 @@ CsmaCdNetDevice::GetTraceResolver (void) Ptr resolver = Create (); resolver->AddChild ("queue", m_queue); resolver->AddSource ("rx", + "receive MAC packet", m_rxTrace, CsmaCdTraceType (CsmaCdTraceType::RX)); resolver->AddSource ("drop", + "drop MAC packet", m_dropTrace, CsmaCdTraceType (CsmaCdTraceType::DROP)); resolver->SetParent (NetDevice::GetTraceResolver ()); 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 4d7e89e7c..19cb27b7a 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 @@ -199,6 +199,7 @@ PointToPointNetDevice::GetTraceResolver (void) Ptr resolver = Create (); resolver->AddChild ("queue", m_queue); resolver->AddSource ("rx", + "receive MAC packet", m_rxTrace, PointToPointTraceType ()); resolver->SetParent (NetDevice::GetTraceResolver ()); diff --git a/src/internet-node/ipv4-l3-protocol.cc b/src/internet-node/ipv4-l3-protocol.cc index d01034ef2..b59901dc2 100644 --- a/src/internet-node/ipv4-l3-protocol.cc +++ b/src/internet-node/ipv4-l3-protocol.cc @@ -162,9 +162,12 @@ Ptr Ipv4L3Protocol::GetTraceResolver (void) { Ptr resolver = Create (); - resolver->AddSource ("tx", m_txTrace, Ipv4L3ProtocolTraceContextElement(Ipv4L3ProtocolTraceContextElement::TX)); - resolver->AddSource ("rx", m_rxTrace, Ipv4L3ProtocolTraceContextElement(Ipv4L3ProtocolTraceContextElement::RX)); - resolver->AddSource ("drop", m_dropTrace, Ipv4L3ProtocolTraceContextElement (Ipv4L3ProtocolTraceContextElement::DROP)); + resolver->AddSource ("tx", "send ipv4 packet to outgoing interface", + m_txTrace, Ipv4L3ProtocolTraceContextElement(Ipv4L3ProtocolTraceContextElement::TX)); + resolver->AddSource ("rx", "receive ipv4 packet from incoming interface", + m_rxTrace, Ipv4L3ProtocolTraceContextElement(Ipv4L3ProtocolTraceContextElement::RX)); + resolver->AddSource ("drop", "drop ipv4 packet", + m_dropTrace, Ipv4L3ProtocolTraceContextElement (Ipv4L3ProtocolTraceContextElement::DROP)); resolver->AddArray ("interfaces", m_interfaces.begin (), m_interfaces.end (), Ipv4L3ProtocolInterfaceIndex ()); diff --git a/src/mobility/mobility-model-notifier.cc b/src/mobility/mobility-model-notifier.cc index ffab72953..01bad6070 100644 --- a/src/mobility/mobility-model-notifier.cc +++ b/src/mobility/mobility-model-notifier.cc @@ -44,7 +44,8 @@ MobilityModelNotifier::GetTraceResolver (void) { Ptr resolver = Create (); - resolver->AddSource ("course-change", m_trace); + resolver->AddSource ("course-change", "speed vector changed value", + m_trace); return resolver; } diff --git a/src/node/queue.cc b/src/node/queue.cc index 10bcc1c04..7ebbf838e 100644 --- a/src/node/queue.cc +++ b/src/node/queue.cc @@ -103,9 +103,12 @@ Ptr Queue::GetTraceResolver (void) { Ptr resolver = Create (); - resolver->AddSource ("enqueue", m_traceEnqueue, QueueTraceType (QueueTraceType::ENQUEUE)); - resolver->AddSource ("dequeue", m_traceDequeue, QueueTraceType (QueueTraceType::DEQUEUE)); - resolver->AddSource ("drop", m_traceDrop, QueueTraceType (QueueTraceType::DROP)); + resolver->AddSource ("enqueue", "store packet in queue", + m_traceEnqueue, QueueTraceType (QueueTraceType::ENQUEUE)); + resolver->AddSource ("dequeue", "remove packet from queue", + m_traceDequeue, QueueTraceType (QueueTraceType::DEQUEUE)); + resolver->AddSource ("drop", "drop packet from queue", + m_traceDrop, QueueTraceType (QueueTraceType::DROP)); resolver->SetParent (Object::GetTraceResolver ()); return resolver; }