21 #ifndef CCNX_RATE_L3_TRACER_H
22 #define CCNX_RATE_L3_TRACER_H
24 #include "ndn-l3-tracer.h"
26 #include "ns3/nstime.h"
27 #include "ns3/event-id.h"
28 #include <ns3/node-container.h>
30 #include <boost/tuple/tuple.hpp>
31 #include <boost/shared_ptr.hpp>
53 InstallAll (
const std::string &file, Time averagingPeriod = Seconds (0.5));
63 Install (
const NodeContainer &nodes,
const std::string &file, Time averagingPeriod = Seconds (0.5));
73 Install (Ptr<Node> node,
const std::string &file, Time averagingPeriod = Seconds (0.5));
89 L3RateTracer (boost::shared_ptr<std::ostream> os, Ptr<Node> node);
96 L3RateTracer (boost::shared_ptr<std::ostream> os,
const std::string &node);
113 static Ptr<L3RateTracer>
114 Install (Ptr<Node> node, boost::shared_ptr<std::ostream> outputStream, Time averagingPeriod = Seconds (0.5));
121 Print (std::ostream &os)
const;
126 OutInterests (Ptr<const Interest>, Ptr<const Face>);
129 InInterests (Ptr<const Interest>, Ptr<const Face>);
132 DropInterests (Ptr<const Interest>, Ptr<const Face>);
135 OutNacks (Ptr<const Interest>, Ptr<const Face>);
138 InNacks (Ptr<const Interest>, Ptr<const Face>);
141 DropNacks (Ptr<const Interest>, Ptr<const Face>);
144 OutData (Ptr<const Data>,
bool fromCache, Ptr<const Face>);
147 InData (Ptr<const Data>, Ptr<const Face>);
150 DropData (Ptr<const Data>, Ptr<const Face>);
153 SatisfiedInterests (Ptr<const pit::Entry>);
156 TimedOutInterests (Ptr<const pit::Entry>);
160 SetAveragingPeriod (
const Time &period);
169 boost::shared_ptr<std::ostream> m_os;
171 EventId m_printEvent;
173 mutable std::map<Ptr<const Face>, boost::tuple<Stats, Stats, Stats, Stats> > m_stats;
179 #endif // CCNX_RATE_L3_TRACER_H
virtual void Print(std::ostream &os) const
Print current trace data.
virtual ~L3RateTracer()
Destructor.
static void Destroy()
Explicit request to remove all statically created tracers.
static void InstallAll(const std::string &file, Time averagingPeriod=Seconds(0.5))
Helper method to install tracers on all simulation nodes.
static void Install(const NodeContainer &nodes, const std::string &file, Time averagingPeriod=Seconds(0.5))
Helper method to install tracers on the selected simulation nodes.
L3RateTracer(boost::shared_ptr< std::ostream > os, Ptr< Node > node)
Trace constructor that attaches to the node using node pointer.
Base class for network-layer (incoming/outgoing Interests and Data) tracing of NDN stack...
virtual void PrintHeader(std::ostream &os) const
Print head of the trace (e.g., for post-processing)
NDN network-layer rate tracer.