A Discrete-Event Network Simulator
API
anonymous_namespace{sample-show-progress.cc}::Hold Class Reference

Execute a function periodically, which takes more or less time to run. More...

+ Inheritance diagram for anonymous_namespace{sample-show-progress.cc}::Hold:
+ Collaboration diagram for anonymous_namespace{sample-show-progress.cc}::Hold:

Public Member Functions

 Hold (Ptr< RandomVariableStream > rng)
 Create a hold with a specified random number generator for the wait time. More...
 
 Hold (Time wait, Time interval)
 Create a Hold with mean inter-event time wait, changing workload every interval. More...
 
void Event (void)
 The Hold event. More...
 
- Public Member Functions inherited from ns3::SimpleRefCount< Hold >
 SimpleRefCount ()
 Default constructor. More...
 
 SimpleRefCount (const SimpleRefCount &o[[maybe_unused]])
 Copy constructor. More...
 
uint32_t GetReferenceCount (void) const
 Get the reference count of the object. More...
 
SimpleRefCountoperator= ([[maybe_unused]] const SimpleRefCount &o)
 Assignment operator. More...
 
void Ref (void) const
 Increment the reference count. More...
 
void Unref (void) const
 Decrement the reference count. More...
 

Private Attributes

Time m_interval
 Time between switching workloads. More...
 
Ptr< RandomVariableStreamm_rng
 The random number generator for the interval between events. More...
 
Time m_wait
 Mean inter-event time. More...
 

Detailed Description

Execute a function periodically, which takes more or less time to run.

Inspired by PHOLD.

Definition at line 54 of file sample-show-progress.cc.

Constructor & Destructor Documentation

◆ Hold() [1/2]

anonymous_namespace{sample-show-progress.cc}::Hold::Hold ( Time  wait,
Time  interval 
)
inline

Create a Hold with mean inter-event time wait, changing workload every interval.

Parameters
waitThe mean inter-event time.
intervalHow often to change work load. This should be an order of magnitude larger than wait.

Definition at line 65 of file sample-show-progress.cc.

◆ Hold() [2/2]

anonymous_namespace{sample-show-progress.cc}::Hold::Hold ( Ptr< RandomVariableStream rng)
inline

Create a hold with a specified random number generator for the wait time.

The RNG value will be interpreted as seconds.

Parameters
rngThe random variable generator to use for the inter-event time.

Definition at line 79 of file sample-show-progress.cc.

Member Function Documentation

◆ Event()

void anonymous_namespace{sample-show-progress.cc}::Hold::Event ( void  )
inline

The Hold event.

Definition at line 84 of file sample-show-progress.cc.

References ns3::int64x64_t::GetHigh(), ns3::Time::GetNanoSeconds(), ns3::Simulator::Now(), NS_LOG_LOGIC, ns3::Simulator::Schedule(), and ns3::Seconds().

+ Here is the call graph for this function:

Member Data Documentation

◆ m_interval

Time anonymous_namespace{sample-show-progress.cc}::Hold::m_interval
private

Time between switching workloads.

Definition at line 105 of file sample-show-progress.cc.

◆ m_rng

Ptr<RandomVariableStream> anonymous_namespace{sample-show-progress.cc}::Hold::m_rng
private

The random number generator for the interval between events.

Definition at line 101 of file sample-show-progress.cc.

◆ m_wait

Time anonymous_namespace{sample-show-progress.cc}::Hold::m_wait
private

Mean inter-event time.

Definition at line 103 of file sample-show-progress.cc.


The documentation for this class was generated from the following file: