move printing to client code
This commit is contained in:
@@ -94,76 +94,14 @@ TraceResolver::SourceCollection::AddUnique (std::string path,
|
||||
source.doc = doc;
|
||||
m_sources.push_back (source);
|
||||
}
|
||||
void
|
||||
TraceResolver::SourceCollection::Print (std::ostream &os) const
|
||||
TraceResolver::SourceCollection::Iterator
|
||||
TraceResolver::SourceCollection::Begin (void) const
|
||||
{
|
||||
for (SourceVector::const_iterator i = m_sources.begin (); i != m_sources.end (); i++)
|
||||
{
|
||||
os << "source=" << i->path << std::endl;
|
||||
os << "TraceContext=[";
|
||||
i->context.PrintAvailable (os, ",");
|
||||
os << "]" << std::endl;
|
||||
os << "help=\"" << i->doc.GetHelp () << "\"" << std::endl;
|
||||
os << "void TraceSinkCallback (const TraceContext &";
|
||||
for (TraceDoc::Iterator k = i->doc.ArgsBegin (); k != i->doc.ArgsEnd (); k++)
|
||||
{
|
||||
os << ", " << k->first;
|
||||
}
|
||||
os << ")" << std::endl;
|
||||
os << "argument 1 -- the trace context associated to the connected trace source." << std::endl;
|
||||
uint32_t k = 2;
|
||||
for (TraceDoc::Iterator j = i->doc.ArgsBegin (); j != i->doc.ArgsEnd (); j++)
|
||||
{
|
||||
os << "argument " << k << " -- " << j->second << "." << std::endl;
|
||||
k++;
|
||||
}
|
||||
os << std::endl;
|
||||
}
|
||||
return m_sources.begin ();
|
||||
}
|
||||
void
|
||||
TraceResolver::SourceCollection::PrintDoxygen (std::ostream &os) const
|
||||
TraceResolver::SourceCollection::Iterator
|
||||
TraceResolver::SourceCollection::End (void) const
|
||||
{
|
||||
uint32_t z = 0;
|
||||
for (SourceVector::const_iterator i = m_sources.begin (); i != m_sources.end (); i++)
|
||||
{
|
||||
os << "///" << std::endl;
|
||||
os << "/// \\ingroup TraceSourceList" << std::endl;
|
||||
os << "/// \\brief " << i->doc.GetHelp () << std::endl;
|
||||
os << "/// \\param arg1 the trace context associated to the connected trace source." << std::endl;
|
||||
uint32_t j = 2;
|
||||
for (TraceDoc::Iterator l = i->doc.ArgsBegin (); l != i->doc.ArgsEnd (); l++)
|
||||
{
|
||||
os << "/// \\param arg" << j << " " << l->second << "." << std::endl;
|
||||
j++;
|
||||
}
|
||||
os << "///" << std::endl;
|
||||
os << "///" << std::endl;
|
||||
os << "/// The path to this trace source is: " << i->path << "." << std::endl;
|
||||
os << "///" << std::endl;
|
||||
if (i->context.AvailableBegin () == i->context.AvailableEnd ())
|
||||
{
|
||||
os << "/// No data can be extracted from \\p arg1 with ns3::TraceContext::GetElement." << std::endl;
|
||||
}
|
||||
else
|
||||
{
|
||||
os << "/// The following classes can be extracted from \\p arg1 with " << std::endl;
|
||||
os << "/// ns3::TraceContext::GetElement:" << std::endl;
|
||||
for (TraceContext::Iterator m = i->context.AvailableBegin (); m != i->context.AvailableEnd (); m++)
|
||||
{
|
||||
os << "/// - " << (*m) << std::endl;
|
||||
}
|
||||
}
|
||||
os << "void TraceSinkCallback" << z << " (const TraceContext & arg1" ;
|
||||
j = 2;
|
||||
for (TraceDoc::Iterator k = i->doc.ArgsBegin (); k != i->doc.ArgsEnd (); k++)
|
||||
{
|
||||
os << ", " << k->first << " arg" << j;
|
||||
j++;
|
||||
}
|
||||
os << ");" << std::endl;
|
||||
os << std::endl;
|
||||
z++;
|
||||
}
|
||||
return m_sources.end ();
|
||||
}
|
||||
|
||||
}//namespace ns3
|
||||
|
||||
@@ -73,18 +73,20 @@ public:
|
||||
class SourceCollection
|
||||
{
|
||||
public:
|
||||
void Print (std::ostream &os) const;
|
||||
void PrintDoxygen (std::ostream &os) const;
|
||||
void AddUnique (std::string path,
|
||||
const TraceContext &context,
|
||||
const TraceDoc &doc);
|
||||
private:
|
||||
struct Source
|
||||
{
|
||||
std::string path;
|
||||
TraceContext context;
|
||||
TraceDoc doc;
|
||||
};
|
||||
typedef std::vector<struct Source>::const_iterator Iterator;
|
||||
void AddUnique (std::string path,
|
||||
const TraceContext &context,
|
||||
const TraceDoc &doc);
|
||||
|
||||
Iterator Begin (void) const;
|
||||
Iterator End (void) const;
|
||||
private:
|
||||
typedef std::vector<struct Source> SourceVector;
|
||||
SourceVector m_sources;
|
||||
};
|
||||
|
||||
@@ -9,6 +9,79 @@
|
||||
|
||||
using namespace ns3;
|
||||
|
||||
void
|
||||
PrintSimpleText (const TraceResolver::SourceCollection *sources, std::ostream &os)
|
||||
{
|
||||
for (TraceResolver::SourceCollection::Iterator i = sources->Begin (); i != sources->End (); i++)
|
||||
{
|
||||
os << "source=" << i->path << std::endl;
|
||||
os << "TraceContext=[";
|
||||
i->context.PrintAvailable (os, ",");
|
||||
os << "]" << std::endl;
|
||||
os << "help=\"" << i->doc.GetHelp () << "\"" << std::endl;
|
||||
os << "void TraceSinkCallback (const TraceContext &";
|
||||
for (TraceDoc::Iterator k = i->doc.ArgsBegin (); k != i->doc.ArgsEnd (); k++)
|
||||
{
|
||||
os << ", " << k->first;
|
||||
}
|
||||
os << ")" << std::endl;
|
||||
os << "argument 1 -- the trace context associated to the connected trace source." << std::endl;
|
||||
uint32_t k = 2;
|
||||
for (TraceDoc::Iterator j = i->doc.ArgsBegin (); j != i->doc.ArgsEnd (); j++)
|
||||
{
|
||||
os << "argument " << k << " -- " << j->second << "." << std::endl;
|
||||
k++;
|
||||
}
|
||||
os << std::endl;
|
||||
}
|
||||
}
|
||||
void
|
||||
PrintDoxygenText (const TraceResolver::SourceCollection *sources, std::ostream &os)
|
||||
{
|
||||
uint32_t z = 0;
|
||||
for (TraceResolver::SourceCollection::Iterator i = sources->Begin (); i != sources->End (); i++)
|
||||
{
|
||||
os << "///" << std::endl;
|
||||
os << "/// \\ingroup TraceSourceList" << std::endl;
|
||||
os << "/// \\brief " << i->doc.GetHelp () << std::endl;
|
||||
os << "/// \\param arg1 the trace context associated to the connected trace source." << std::endl;
|
||||
uint32_t j = 2;
|
||||
for (TraceDoc::Iterator l = i->doc.ArgsBegin (); l != i->doc.ArgsEnd (); l++)
|
||||
{
|
||||
os << "/// \\param arg" << j << " " << l->second << "." << std::endl;
|
||||
j++;
|
||||
}
|
||||
os << "///" << std::endl;
|
||||
os << "///" << std::endl;
|
||||
os << "/// The path to this trace source is: " << i->path << "." << std::endl;
|
||||
os << "///" << std::endl;
|
||||
if (i->context.AvailableBegin () == i->context.AvailableEnd ())
|
||||
{
|
||||
os << "/// No data can be extracted from \\p arg1 with ns3::TraceContext::GetElement." << std::endl;
|
||||
}
|
||||
else
|
||||
{
|
||||
os << "/// The following classes can be extracted from \\p arg1 with " << std::endl;
|
||||
os << "/// ns3::TraceContext::GetElement:" << std::endl;
|
||||
for (TraceContext::Iterator m = i->context.AvailableBegin (); m != i->context.AvailableEnd (); m++)
|
||||
{
|
||||
os << "/// - " << (*m) << std::endl;
|
||||
}
|
||||
}
|
||||
os << "void TraceSinkCallback" << z << " (const TraceContext & arg1" ;
|
||||
j = 2;
|
||||
for (TraceDoc::Iterator k = i->doc.ArgsBegin (); k != i->doc.ArgsEnd (); k++)
|
||||
{
|
||||
os << ", " << k->first << " arg" << j;
|
||||
j++;
|
||||
}
|
||||
os << ");" << std::endl;
|
||||
os << std::endl;
|
||||
z++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int main (int argc, char *argv[])
|
||||
{
|
||||
Ptr<Node> node = Create<InternetNode> ();
|
||||
@@ -21,7 +94,7 @@ int main (int argc, char *argv[])
|
||||
|
||||
TraceResolver::SourceCollection collection;
|
||||
NodeList::GetTraceResolver ()->CollectSources ("", TraceContext (), &collection);
|
||||
collection.Print (std::cout);
|
||||
PrintDoxygenText (&collection, std::cout);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user