#ifndef GANTT_TRACE_H #define GANTT_TRACE_H #include "ns3/object.h" #include "ns3/config.h" #include "ns3/log.h" #include "ns3/net-device.h" #include "ns3/node-list.h" #include "ns3/nstime.h" #include "ns3/ptr.h" #include "ns3/simulator.h" #include #include // Add a doxygen group for this module. // If you have more than one file, this should be in only one of them. /** * \defgroup gantt-trace Description of the gantt-trace */ namespace ns3 { class GanttTrace : public Object { public: /** * \brief Constructor * \param filename The Filename for the trace file used by the Animator * */ GanttTrace(const std::string filename); /** * \brief Destructor for the animator interface. * */ ~GanttTrace(); void StartGantt(); void StopGantt(); private: void SetOutputFile(const std::string& fn); void ConnectCallbacks(); void DevTxTrace(std::string context, Ptr p, Ptr tx, Ptr rx, Time txTime, Time rxTime); void FifoEntryTrace(std::string context, Ptr p, Ptr net); void WritePacketTxEvent(std::string srcNetDeviceName, std::string dstNetDeviceName, Time txBeginTime, Time txEndTime, Time rxBeginTime, Time rxEndTime, int pktId, int vlanId, int prio); void WriteFifoEnterEvent(Time t, std::string netDeviceName, int pktId, int fifoId); int WriteN(const std::string& st, FILE* f); int WriteN(const char* data, uint32_t count, FILE* f); std::string GetPacketMetadata(Ptr p); std::string m_outputFileName; FILE* m_f; }; } #endif /* GANTT_TRACE_H */