Unfortunately, templating the base MinMaxAvgTotalCalculator to operate over Time values isn't straightforward. More...
#include <time-data-calculators.h>
Public Member Functions | |
TimeMinMaxAvgTotalCalculator () | |
virtual | ~TimeMinMaxAvgTotalCalculator () |
virtual void | Output (DataOutputCallback &callback) const |
Outputs data based on the provided callback. More... | |
void | Update (const Time i) |
Updates all variables of TimeMinMaxAvgTotalCalculator. More... | |
Public Member Functions inherited from ns3::DataCalculator | |
DataCalculator () | |
virtual | ~DataCalculator () |
void | Disable () |
Disables DataCalculator when simulation stops. More... | |
void | Enable () |
Enables DataCalculator when simulation starts. More... | |
std::string | GetContext () const |
Gets the DataCalculator context. More... | |
bool | GetEnabled () const |
Returns whether the DataCalculator is enabled. More... | |
std::string | GetKey () const |
Gets the DataCalculator key. More... | |
void | SetContext (const std::string context) |
Sets the DataCalculator context to the provided context. More... | |
void | SetKey (const std::string key) |
Sets the DataCalculator key to the provided key. More... | |
virtual void | Start (const Time &startTime) |
Starts DataCalculator at a given time in the simulation. More... | |
virtual void | Stop (const Time &stopTime) |
Stops DataCalculator at a given time in the simulation. More... | |
Public Member Functions inherited from ns3::Object | |
Object () | |
virtual | ~Object () |
void | AggregateObject (Ptr< Object > other) |
void | Dispose (void) |
Run the DoDispose methods of this object and all the objects aggregated to it. More... | |
AggregateIterator | GetAggregateIterator (void) const |
virtual TypeId | GetInstanceTypeId (void) const |
template<typename T > | |
Ptr< T > | GetObject (void) const |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
void | Initialize (void) |
This method calls the virtual DoInitialize method on all the objects aggregated to this object. More... | |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
SimpleRefCount () | |
Constructor. More... | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount (void) const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment. More... | |
void | Ref (void) const |
Increment the reference count. More... | |
void | Unref (void) const |
Decrement the reference count. More... | |
Public Member Functions inherited from ns3::ObjectBase | |
virtual | ~ObjectBase () |
Virtual destructor. More... | |
void | GetAttribute (std::string name, AttributeValue &value) const |
bool | GetAttributeFailSafe (std::string name, AttributeValue &attribute) const |
void | SetAttribute (std::string name, const AttributeValue &value) |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Protected Member Functions | |
virtual void | DoDispose (void) |
This method is called by Object::Dispose or by the object's destructor, whichever comes first. More... | |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
virtual void | DoInitialize (void) |
This method is called only once by Object::Initialize. More... | |
virtual void | NotifyNewAggregate (void) |
This method is invoked whenever two sets of objects are aggregated together. More... | |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
virtual void | NotifyConstructionCompleted (void) |
This method is invoked once all member attributes have been initialized. More... | |
Protected Attributes | |
uint32_t | m_count |
Count value of TimeMinMaxAvgTotalCalculator. More... | |
Time | m_max |
Maximum value of TimeMinMaxAvgTotalCalculator. More... | |
Time | m_min |
Minimum value of TimeMinMaxAvgTotalCalculator. More... | |
Time | m_total |
Total value of TimeMinMaxAvgTotalCalculator. More... | |
Protected Attributes inherited from ns3::DataCalculator | |
std::string | m_context |
Context value. More... | |
bool | m_enabled |
Descendant classes must check & respect m_enabled! More... | |
std::string | m_key |
Key value. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId (void) |
Register this type. More... | |
Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
static void | Cleanup (void) |
Noop. More... | |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
Unfortunately, templating the base MinMaxAvgTotalCalculator to operate over Time values isn't straightforward.
The main issues are setting the maximum value, which can be worked around easily as it done here, and dividing to get the average, which is not as easily worked around.
Definition at line 42 of file time-data-calculators.h.
TimeMinMaxAvgTotalCalculator::TimeMinMaxAvgTotalCalculator | ( | ) |
Definition at line 33 of file time-data-calculators.cc.
References m_count.
|
virtual |
Definition at line 37 of file time-data-calculators.cc.
|
protectedvirtual |
This method is called by Object::Dispose or by the object's destructor, whichever comes first.
Subclasses are expected to implement their real destruction code in an overriden version of this method and chain up to their parent's implementation once they are done. i.e., for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose method.
It is safe to call GetObject from within this method.
Reimplemented from ns3::DataCalculator.
Definition at line 41 of file time-data-calculators.cc.
References ns3::DataCalculator::DoDispose().
|
virtual |
Outputs data based on the provided callback.
callback |
Implements ns3::DataCalculator.
Definition at line 71 of file time-data-calculators.cc.
References ns3::DataCalculator::m_context, m_count, ns3::DataCalculator::m_key, m_max, m_min, m_total, and ns3::DataOutputCallback::OutputSingleton().
void TimeMinMaxAvgTotalCalculator::Update | ( | const Time | i | ) |
Updates all variables of TimeMinMaxAvgTotalCalculator.
i | value of type Time to use for updating the calculator |
Definition at line 48 of file time-data-calculators.cc.
References m_count, ns3::DataCalculator::m_enabled, m_max, m_min, and m_total.
Referenced by Receiver::Receive().
|
protected |
Count value of TimeMinMaxAvgTotalCalculator.
Definition at line 62 of file time-data-calculators.h.
Referenced by Output(), TimeMinMaxAvgTotalCalculator(), and Update().
|
protected |
Maximum value of TimeMinMaxAvgTotalCalculator.
Definition at line 65 of file time-data-calculators.h.
|
protected |
Minimum value of TimeMinMaxAvgTotalCalculator.
Definition at line 64 of file time-data-calculators.h.
|
protected |
Total value of TimeMinMaxAvgTotalCalculator.
Definition at line 63 of file time-data-calculators.h.