utils: Porting several new IPv4 tracers from the old code. Extending ndn-app-delay-tracer
diff --git a/utils/tracers/ipv4-seqs-app-tracer.h b/utils/tracers/ipv4-seqs-app-tracer.h
index 9ae24ac..5baa9f5 100644
--- a/utils/tracers/ipv4-seqs-app-tracer.h
+++ b/utils/tracers/ipv4-seqs-app-tracer.h
@@ -22,15 +22,30 @@
#define IPV4_SEQS_APP_TRACER_H
#include "ipv4-app-tracer.h"
+#include <boost/shared_ptr.hpp>
+#include <boost/tuple/tuple.hpp>
namespace ns3 {
class Ipv4SeqsAppTracer : public Ipv4AppTracer
{
public:
- Ipv4SeqsAppTracer (std::ostream &os, Ptr<Node> node, const std::string &appId = "*");
+ Ipv4SeqsAppTracer (boost::shared_ptr<std::ostream> os, Ptr<Node> node);
virtual ~Ipv4SeqsAppTracer () { };
+ /**
+ * @brief Helper method to install tracers on all simulation nodes
+ *
+ * @param file File to which traces will be written
+ *
+ * @returns a tuple of reference to output stream and list of tracers. !!! Attention !!! This tuple needs to be preserved
+ * for the lifetime of simulation, otherwise SEGFAULTs are inevitable
+ *
+ */
+ static boost::tuple< boost::shared_ptr<std::ostream>, std::list<Ptr<Ipv4SeqsAppTracer> > >
+ InstallAll (const std::string &file);
+
+
virtual void
PrintHeader (std::ostream &os) const;
@@ -50,7 +65,7 @@
Reset ();
protected:
- std::ostream& m_os;
+ boost::shared_ptr<std::ostream> m_os;
};
} // namespace ns3