NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.0: NDN, CCN, CCNx, content centric networks
API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ndn-app-delay-tracer.hpp
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
20 #ifndef CCNX_APP_DELAY_TRACER_H
21 #define CCNX_APP_DELAY_TRACER_H
22 
23 #include "ns3/ndnSIM/model/ndn-common.hpp"
24 
25 #include "ns3/ptr.h"
26 #include "ns3/simple-ref-count.h"
27 #include <ns3/nstime.h>
28 #include <ns3/event-id.h>
29 #include <ns3/node-container.h>
30 
31 #include <tuple>
32 #include <list>
33 
34 namespace ns3 {
35 
36 class Node;
37 class Packet;
38 
39 namespace ndn {
40 
41 class App;
42 
47 class AppDelayTracer : public SimpleRefCount<AppDelayTracer> {
48 public:
59  static void
60  InstallAll(const std::string& file);
61 
73  static void
74  Install(const NodeContainer& nodes, const std::string& file);
75 
89  static void
90  Install(Ptr<Node> node, const std::string& file);
91 
104  static Ptr<AppDelayTracer>
105  Install(Ptr<Node> node, shared_ptr<std::ostream> outputStream);
106 
113  static void
114  Destroy();
115 
121  AppDelayTracer(shared_ptr<std::ostream> os, Ptr<Node> node);
122 
128  AppDelayTracer(shared_ptr<std::ostream> os, const std::string& node);
129 
133  ~AppDelayTracer();
134 
140  void
141  PrintHeader(std::ostream& os) const;
142 
143 private:
144  void
145  Connect();
146 
147  void
148  LastRetransmittedInterestDataDelay(Ptr<App> app, uint32_t seqno, Time delay, int32_t hopCount);
149 
150  void
151  FirstInterestDataDelay(Ptr<App> app, uint32_t seqno, Time delay, uint32_t rextCount,
152  int32_t hopCount);
153 
154 private:
155  std::string m_node;
156  Ptr<Node> m_nodePtr;
157 
158  shared_ptr<std::ostream> m_os;
159 };
160 
161 } // namespace ndn
162 } // namespace ns3
163 
164 #endif // CCNX_CS_TRACER_H
static void Install(const NodeContainer &nodes, const std::string &file)
Helper method to install tracers on the selected simulation nodes.
ndn App
Copyright (c) 2011-2015 Regents of the University of California.
Definition: ndn-app.cpp:28
Tracer to obtain application-level delays.
static void Destroy()
Explicit request to remove all statically created tracers.
AppDelayTracer(shared_ptr< std::ostream > os, Ptr< Node > node)
Trace constructor that attaches to all applications on the node using node's pointer.
static void InstallAll(const std::string &file)
Helper method to install tracers on all simulation nodes.
void PrintHeader(std::ostream &os) const
Print head of the trace (e.g., for post-processing)