00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef __DATA_CALCULATOR_H__
00022 #define __DATA_CALCULATOR_H__
00023
00024 #include "ns3/object.h"
00025 #include "ns3/nstime.h"
00026 #include "ns3/simulator.h"
00027
00028 namespace ns3 {
00029
00030 class DataOutputCallback;
00031
00032
00033
00034 class DataCalculator : public Object {
00035 public:
00036 DataCalculator();
00037 virtual ~DataCalculator();
00038
00039 bool GetEnabled() const;
00040 void Enable();
00041 void Disable();
00042
00043 void SetKey(const std::string key);
00044 std::string GetKey() const;
00045
00046 virtual void Start(const Time& startTime);
00047 virtual void Stop(const Time& stopTime);
00048
00049 virtual void Output(DataOutputCallback &callback) const = 0;
00050
00051 protected:
00052 bool m_enabled;
00053
00054 std::string m_key;
00055
00056 virtual void DoDispose(void);
00057
00058 private:
00059 EventId m_startEvent;
00060 EventId m_stopEvent;
00061
00062
00063 };
00064
00065
00066
00067 };
00068
00069
00070 #endif // __DATA_CALCULATOR_H__