Open Model Railroad Network (OpenMRN)
Loading...
Searching...
No Matches
BufferPort::BufferTimer Class Reference

Timer that triggers the parent flow when expiring. More...

Inheritance diagram for BufferPort::BufferTimer:
Timer Executable Notifiable QMember Destructable

Public Member Functions

 BufferTimer (BufferPort *parent)
 Constructor.
 
long long timeout () override
 Clients of timer should override this function.
 
- Public Member Functions inherited from Timer
 Timer (ActiveTimers *timers)
 Constructor.
 
 ~Timer ()
 Destructor.
 
void run () override
 Callback from the executor when this timer is scheduled.
 
long long schedule_time ()
 
void start (long long period=-1)
 Starts a timer.
 
void start_absolute (long long expiry_time_nsec)
 Starts the timer with an absolute deadline.
 
void restart ()
 Restart a timer with the existing period but from the current time.
 
void trigger ()
 This will wakeup the timer prematurely, immediately.
 
void ensure_triggered ()
 Triggers the timer if it is not expired yet.
 
void cancel ()
 Dangerous, do not call.
 
bool is_triggered ()
 
void set_triggered ()
 Sets the timer as if it was woken up by a trigger(), even if it was never started.
 
- Public Member Functions inherited from Executable
void test_deletion ()
 
void notify () override
 Crashes the program – everyone who is expecting notify calls must override this function.
 
virtual void alloc_result (QMember *item)
 Return the result of an alloc_async() from a memory Pool.
 
- Public Member Functions inherited from QMember
void init ()
 Initiailize a QMember, in place of a public placement construction.
 

Private Attributes

BufferPortparent_
 what to notify upon timeout.
 

Additional Inherited Members

- Public Types inherited from Timer
enum  { NONE = 0 , RESTART = 1 , DELETE = -1 }
 Special return values from the timeout function. More...
 
- Protected Member Functions inherited from Timer
void update_period (long long period)
 Updates the period, to be used after the next expiration of the timer in order to restart it.
 
- Protected Member Functions inherited from QMember
 QMember ()
 Constructor.
 
 ~QMember ()
 Destructor.
 
- Protected Attributes inherited from QMember
QMembernext
 pointer to the next member in the queue
 

Detailed Description

Timer that triggers the parent flow when expiring.

Used to flush the accumulated gridconnect bytes to the downstream HUB.

Definition at line 194 of file BufferPort.hxx.

Constructor & Destructor Documentation

◆ BufferTimer()

BufferPort::BufferTimer::BufferTimer ( BufferPort parent)
inline

Constructor.

Parameters
parentwhat to call when expiring.

Definition at line 198 of file BufferPort.hxx.

Member Function Documentation

◆ timeout()

long long BufferPort::BufferTimer::timeout ( )
inlineoverridevirtual

Clients of timer should override this function.

It will be called on the executor of the timer.

Returns
the new timer period, or one of the above special values.

Implements Timer.

Definition at line 204 of file BufferPort.hxx.

Member Data Documentation

◆ parent_

BufferPort* BufferPort::BufferTimer::parent_
private

what to notify upon timeout.

Definition at line 211 of file BufferPort.hxx.


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