keep track of trace source help strings
This commit is contained in:
@@ -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<TraceResolver>
|
||||
CompositeTraceResolverTest::CreateSubResolver (void)
|
||||
{
|
||||
Ptr<CompositeTraceResolver> subresolver = Create<CompositeTraceResolver> ();
|
||||
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<uint16_t> source;
|
||||
|
||||
resolver.AddSource ("uint16_t", source, TraceSourceTest (TraceSourceTest::UINT16_T));
|
||||
resolver.AddSource ("uint16_t", "test source", source, TraceSourceTest (TraceSourceTest::UINT16_T));
|
||||
|
||||
|
||||
return ok;
|
||||
|
||||
@@ -53,7 +53,7 @@ public:
|
||||
* be automatically extended to contain the input context.
|
||||
*/
|
||||
template <typename T>
|
||||
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<Ptr<TraceResolver> > createResolver);
|
||||
|
||||
void AddChild (std::string name, Ptr<Object> 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<Object> child, const TraceContext &context);
|
||||
void DoAddSource (std::string name,
|
||||
std::string helpText,
|
||||
TraceSource &trace,
|
||||
const TraceContext &context);
|
||||
void Add (std::string name,
|
||||
Callback<Ptr<TraceResolver> > createResolver);
|
||||
|
||||
|
||||
CompositeTraceResolver::TraceItems m_items;
|
||||
Ptr<TraceResolver> m_parent;
|
||||
@@ -139,12 +134,13 @@ namespace ns3 {
|
||||
template <typename T>
|
||||
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 <typename ITERATOR, typename INDEX>
|
||||
|
||||
@@ -346,7 +346,7 @@ public:
|
||||
{
|
||||
ns3::Ptr<ns3::CompositeTraceResolver> resolver =
|
||||
ns3::Create<ns3::CompositeTraceResolver> ();
|
||||
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<ns3::CompositeTraceResolver> resolver =
|
||||
ns3::Create<ns3::CompositeTraceResolver> ();
|
||||
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<ns3::CompositeTraceResolver> resolver =
|
||||
ns3::Create<ns3::CompositeTraceResolver> ();
|
||||
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<ns3::CompositeTraceResolver> resolver =
|
||||
ns3::Create<ns3::CompositeTraceResolver> ();
|
||||
resolver->AddSource ("derivedb-x", m_sourceDerived);
|
||||
resolver->AddSource ("derivedb-x", "test source", m_sourceDerived);
|
||||
resolver->SetParent (BaseB::GetTraceResolver ());
|
||||
return resolver;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -460,9 +460,11 @@ CsmaCdNetDevice::GetTraceResolver (void)
|
||||
Ptr<CompositeTraceResolver> resolver = Create<CompositeTraceResolver> ();
|
||||
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 ());
|
||||
|
||||
@@ -199,6 +199,7 @@ PointToPointNetDevice::GetTraceResolver (void)
|
||||
Ptr<CompositeTraceResolver> resolver = Create<CompositeTraceResolver> ();
|
||||
resolver->AddChild ("queue", m_queue);
|
||||
resolver->AddSource ("rx",
|
||||
"receive MAC packet",
|
||||
m_rxTrace,
|
||||
PointToPointTraceType ());
|
||||
resolver->SetParent (NetDevice::GetTraceResolver ());
|
||||
|
||||
@@ -162,9 +162,12 @@ Ptr<TraceResolver>
|
||||
Ipv4L3Protocol::GetTraceResolver (void)
|
||||
{
|
||||
Ptr<CompositeTraceResolver> resolver = Create<CompositeTraceResolver> ();
|
||||
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 ());
|
||||
|
||||
@@ -44,7 +44,8 @@ MobilityModelNotifier::GetTraceResolver (void)
|
||||
{
|
||||
Ptr<CompositeTraceResolver> resolver =
|
||||
Create<CompositeTraceResolver> ();
|
||||
resolver->AddSource ("course-change", m_trace);
|
||||
resolver->AddSource ("course-change", "speed vector changed value",
|
||||
m_trace);
|
||||
return resolver;
|
||||
}
|
||||
|
||||
|
||||
@@ -103,9 +103,12 @@ Ptr<TraceResolver>
|
||||
Queue::GetTraceResolver (void)
|
||||
{
|
||||
Ptr<CompositeTraceResolver> resolver = Create<CompositeTraceResolver> ();
|
||||
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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user