--- a/src/core/trace-resolver.cc Wed Aug 29 16:43:19 2007 +0200
+++ b/src/core/trace-resolver.cc Thu Aug 30 13:58:15 2007 +0200
@@ -94,76 +94,14 @@
source.doc = doc;
m_sources.push_back (source);
}
-void
-TraceResolver::SourceCollection::Print (std::ostream &os) 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;
- }
-}
-void
-TraceResolver::SourceCollection::PrintDoxygen (std::ostream &os) const
+TraceResolver::SourceCollection::Iterator
+TraceResolver::SourceCollection::Begin (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.begin ();
}
-
+TraceResolver::SourceCollection::Iterator
+TraceResolver::SourceCollection::End (void) const
+{
+ return m_sources.end ();
+}
}//namespace ns3
--- a/src/core/trace-resolver.h Wed Aug 29 16:43:19 2007 +0200
+++ b/src/core/trace-resolver.h Thu Aug 30 13:58:15 2007 +0200
@@ -73,18 +73,20 @@
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;
};
--- a/utils/print-trace-sources.cc Wed Aug 29 16:43:19 2007 +0200
+++ b/utils/print-trace-sources.cc Thu Aug 30 13:58:15 2007 +0200
@@ -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 @@
TraceResolver::SourceCollection collection;
NodeList::GetTraceResolver ()->CollectSources ("", TraceContext (), &collection);
- collection.Print (std::cout);
+ PrintDoxygenText (&collection, std::cout);
return 0;
}