Separating ccnx-tracers into separate files.
Rescanned bindings
diff --git a/helper/ccnx-trace-helper.h b/helper/ccnx-trace-helper.h
index 7668b1b..54d7405 100644
--- a/helper/ccnx-trace-helper.h
+++ b/helper/ccnx-trace-helper.h
@@ -21,342 +21,15 @@
#ifndef CCNX_TRACE_HELPER_H
#define CCNX_TRACE_HELPER_H
-#include "ns3/ptr.h"
-#include "ns3/simple-ref-count.h"
-#include "ns3/ccnx.h"
#include "ns3/nstime.h"
#include "ns3/event-id.h"
-#include <boost/tuple/tuple.hpp>
-#include <map>
+#include <list>
namespace ns3 {
-class CcnxApp;
-
-class CcnxAppTracer : public SimpleRefCount<CcnxAppTracer>
-{
-public:
- CcnxAppTracer (const std::string &app, Ptr<Node> node, const std::string &appId = "*");
- CcnxAppTracer (const std::string &app, const std::string &node, const std::string &appId = "*");
- virtual ~CcnxAppTracer () { };
-
- void
- Connect ();
-
- virtual void
- PrintHeader (std::ostream &os) const = 0;
-
- virtual void
- Print (std::ostream &os) const = 0;
-
- virtual void
- OutInterests (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<CcnxApp>, Ptr<CcnxFace>) = 0;
-
- virtual void
- InInterests (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<CcnxApp>, Ptr<CcnxFace>) = 0;
-
- virtual void
- InNacks (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<CcnxApp>, Ptr<CcnxFace>) = 0;
-
- virtual void
- OutData (std::string context,
- Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, Ptr<CcnxApp>, Ptr<CcnxFace>) = 0;
-
- virtual void
- InData (std::string context,
- Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, Ptr<CcnxApp>, Ptr<CcnxFace>) = 0;
-
-protected:
- std::string m_app;
- std::string m_appId;
- std::string m_node;
- Ptr<Node> m_nodePtr;
-};
-
-std::ostream&
-operator << (std::ostream &os, const CcnxAppTracer &tracer)
-{
- os << "# ";
- tracer.PrintHeader (os);
- os << "\n";
- tracer.Print (os);
- return os;
-}
-
-class CcnxL3Tracer : public SimpleRefCount<CcnxL3Tracer>
-{
-public:
- CcnxL3Tracer (Ptr<Node> node);
- CcnxL3Tracer (const std::string &node);
- virtual ~CcnxL3Tracer () { };
-
- void
- Connect ();
-
- virtual void
- PrintHeader (std::ostream &os) const = 0;
-
- virtual void
- Print (std::ostream &os) const = 0;
-
- virtual void
- OutInterests (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<const CcnxFace>) = 0;
-
- virtual void
- InInterests (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<const CcnxFace>) = 0;
-
- virtual void
- DropInterests (std::string context,
- Ptr<const CcnxInterestHeader>, Ccnx::DropReason, Ptr<const CcnxFace>) = 0;
-
- virtual void
- OutNacks (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<const CcnxFace>) = 0;
-
- virtual void
- InNacks (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<const CcnxFace>) = 0;
-
- virtual void
- DropNacks (std::string context,
- Ptr<const CcnxInterestHeader>, Ccnx::DropReason, Ptr<const CcnxFace>) = 0;
-
-
- virtual void
- OutData (std::string context,
- Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, bool fromCache, Ptr<const CcnxFace>) = 0;
-
- virtual void
- InData (std::string context,
- Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, Ptr<const CcnxFace>) = 0;
-
- virtual void
- DropData (std::string context,
- Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, Ccnx::DropReason, Ptr<const CcnxFace>) = 0;
-
-protected:
- std::string m_node;
- Ptr<Node> m_nodePtr;
-
- struct Stats
- {
- void Reset ();
-
- uint64_t m_inInterests;
- uint64_t m_outInterests;
- uint64_t m_dropInterests;
- uint64_t m_inNacks;
- uint64_t m_outNacks;
- uint64_t m_dropNacks;
- uint64_t m_inData;
- uint64_t m_outData;
- uint64_t m_dropData;
- };
-};
-
-std::ostream&
-operator << (std::ostream &os, const CcnxL3Tracer &tracer)
-{
- os << "# ";
- tracer.PrintHeader (os);
- os << "\n";
- tracer.Print (os);
- return os;
-}
-
-////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////
-
-class CcnxAggregateAppTracer : public CcnxAppTracer
-{
-public:
- CcnxAggregateAppTracer (const std::string &app, Ptr<Node> node, const std::string &appId = "*");
- CcnxAggregateAppTracer (const std::string &app, const std::string &node, const std::string &appId = "*");
- virtual ~CcnxAggregateAppTracer () { };
-
- virtual void
- PrintHeader (std::ostream &os) const;
-
- virtual void
- Print (std::ostream &os) const;
-
- virtual void
- OutInterests (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<CcnxApp>, Ptr<CcnxFace>);
-
- virtual void
- InInterests (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<CcnxApp>, Ptr<CcnxFace>);
-
- virtual void
- InNacks (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<CcnxApp>, Ptr<CcnxFace>);
-
- virtual void
- OutData (std::string context,
- Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, Ptr<CcnxApp>, Ptr<CcnxFace>);
-
- virtual void
- InData (std::string context,
- Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, Ptr<CcnxApp>, Ptr<CcnxFace>);
-
-protected:
- void
- Reset ();
-
-protected:
- uint64_t m_inInterests;
- uint64_t m_outInterests;
- uint64_t m_inNacks;
- uint64_t m_inData;
- uint64_t m_outData;
-
- uint64_t m_inInterestsBytes;
- uint64_t m_outInterestsBytes;
- uint64_t m_inNacksBytes;
- uint64_t m_inDataBytes;
- uint64_t m_outDataBytes;
-};
-
-class CcnxAggregateL3Tracer : public CcnxL3Tracer
-{
-public:
- CcnxAggregateL3Tracer (Ptr<Node> node);
- CcnxAggregateL3Tracer (const std::string &node);
- virtual ~CcnxAggregateL3Tracer () { };
-
- virtual void
- PrintHeader (std::ostream &os) const;
-
- virtual void
- Print (std::ostream &os) const;
-
- virtual void
- OutInterests (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<const CcnxFace>);
-
- virtual void
- InInterests (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<const CcnxFace>);
-
- virtual void
- DropInterests (std::string context,
- Ptr<const CcnxInterestHeader>, Ccnx::DropReason, Ptr<const CcnxFace>);
-
- virtual void
- OutNacks (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<const CcnxFace>);
-
- virtual void
- InNacks (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<const CcnxFace>);
-
- virtual void
- DropNacks (std::string context,
- Ptr<const CcnxInterestHeader>, Ccnx::DropReason, Ptr<const CcnxFace>);
-
- virtual void
- OutData (std::string context,
- Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, bool fromCache, Ptr<const CcnxFace>);
-
- virtual void
- InData (std::string context,
- Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, Ptr<const CcnxFace>);
-
- virtual void
- DropData (std::string context,
- Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, Ccnx::DropReason, Ptr<const CcnxFace>);
-
-protected:
- void
- Reset ();
-
-protected:
- Stats m_packets;
- Stats m_bytes;
-};
-
-/**
- * @ingroup ccnx
- * @brief CCNx network-layer rate tracer
- */
-class CcnxRateL3Tracer : public CcnxL3Tracer
-{
-public:
- /**
- * @brief Network layer tracer constructor
- */
- CcnxRateL3Tracer (std::ostream &os, Ptr<Node> node);
- CcnxRateL3Tracer (std::ostream &os, const std::string &node);
- virtual ~CcnxRateL3Tracer ();
-
- void
- SetAveragingPeriod (const Time &period);
-
- virtual void
- PrintHeader (std::ostream &os) const;
-
- virtual void
- Print (std::ostream &os) const;
-
- virtual void
- OutInterests (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<const CcnxFace>);
-
- virtual void
- InInterests (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<const CcnxFace>);
-
- virtual void
- DropInterests (std::string context,
- Ptr<const CcnxInterestHeader>, Ccnx::DropReason, Ptr<const CcnxFace>);
-
- virtual void
- OutNacks (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<const CcnxFace>);
-
- virtual void
- InNacks (std::string context,
- Ptr<const CcnxInterestHeader>, Ptr<const CcnxFace>);
-
- virtual void
- DropNacks (std::string context,
- Ptr<const CcnxInterestHeader>, Ccnx::DropReason, Ptr<const CcnxFace>);
-
- virtual void
- OutData (std::string context,
- Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, bool fromCache, Ptr<const CcnxFace>);
-
- virtual void
- InData (std::string context,
- Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, Ptr<const CcnxFace>);
-
- virtual void
- DropData (std::string context,
- Ptr<const CcnxContentObjectHeader>, Ptr<const Packet>, Ccnx::DropReason, Ptr<const CcnxFace>);
-
-private:
- void
- PeriodicPrinter ();
-
- void
- Reset ();
-
-private:
- std::ostream& m_os;
- Time m_period;
- EventId m_printEvent;
-
- mutable std::map<Ptr<const CcnxFace>, boost::tuple<Stats, Stats, Stats, Stats> > m_stats;
-};
-
+class CcnxAppTracer;
+class CcnxL3Tracer;
class CcnxTraceHelper
{
@@ -410,12 +83,12 @@
private:
std::string m_appTrace;
- std::list<Ptr<CcnxAggregateAppTracer> > m_apps;
+ std::list<Ptr<CcnxAppTracer> > m_apps;
std::string m_l3Trace;
- std::list<Ptr<CcnxAggregateL3Tracer> > m_l3s;
+ std::list<Ptr<CcnxL3Tracer> > m_l3s;
- std::list<Ptr<CcnxRateL3Tracer> > m_l3Rates;
+ std::list<Ptr<CcnxL3Tracer> > m_l3Rates;
std::ostream *m_l3RateTrace;
};