SNode.C
Loading...
Searching...
No Matches
core::TimerEventReceiver Class Referenceabstract

#include <TimerEventReceiver.h>

Inheritance diagram for core::TimerEventReceiver:
Collaboration diagram for core::TimerEventReceiver:

Public Member Functions

 TimerEventReceiver (const TimerEventReceiver &)=delete
 
TimerEventReceiveroperator= (const TimerEventReceiver &)=delete
 
void restart ()
 
- Public Member Functions inherited from core::EventReceiver
 EventReceiver (const std::string &name)
 
 EventReceiver (EventReceiver &)=delete
 
 EventReceiver (EventReceiver &&)=delete
 
EventReceiveroperator= (EventReceiver &)=delete
 
EventReceiveroperator= (EventReceiver &&)=delete
 
virtual void destruct ()
 
void span ()
 
void relax ()
 
const std::string & getName () const
 

Protected Member Functions

 TimerEventReceiver (const std::string &name, const utils::Timeval &delay)
 
 ~TimerEventReceiver () override
 
utils::Timeval getTimeoutAbsolut () const
 
utils::Timeval getTimeoutRelative (const utils::Timeval &currentTime) const
 
void enable ()
 
void update ()
 
void cancel ()
 
- Protected Member Functions inherited from core::EventReceiver
virtual ~EventReceiver ()=default
 

Private Member Functions

void onEvent (const utils::Timeval &currentTime) final
 
virtual void dispatchEvent ()=0
 
virtual void unobservedEvent ()=0
 
void setTimer (Timer *timer)
 

Private Attributes

TimerEventPublishertimerEventPublisher
 
Timertimer = nullptr
 
utils::Timeval absoluteTimeout
 
utils::Timeval delay
 

Friends

class Timer
 
class TimerEventPublisher
 

Additional Inherited Members

- Static Public Member Functions inherited from core::EventReceiver
static void atNextTick (const std::function< void(void)> &callBack)
 

Detailed Description

Definition at line 40 of file TimerEventReceiver.h.

Constructor & Destructor Documentation

◆ TimerEventReceiver() [1/2]

core::TimerEventReceiver::TimerEventReceiver ( const TimerEventReceiver & )
delete

◆ TimerEventReceiver() [2/2]

core::TimerEventReceiver::TimerEventReceiver ( const std::string & name,
const utils::Timeval & delay )
protected

Definition at line 35 of file TimerEventReceiver.cpp.

36 : EventReceiver(name)
37 , timerEventPublisher(EventLoop::instance().getEventMultiplexer().getTimerEventPublisher())
39 , delay(delay) {
40 }
static EventLoop & instance()
Definition EventLoop.cpp:57
EventReceiver(const std::string &name)
TimerEventPublisher & timerEventPublisher
static Timeval currentTime()
Definition Timeval.cpp:54

Referenced by core::timer::IntervalTimer::IntervalTimer(), core::timer::IntervalTimerStopable::IntervalTimerStopable(), and core::timer::SingleshotTimer::SingleshotTimer().

Here is the caller graph for this function:

◆ ~TimerEventReceiver()

core::TimerEventReceiver::~TimerEventReceiver ( )
overrideprotected

Definition at line 48 of file TimerEventReceiver.cpp.

48 {
49 if (timer != nullptr) {
51 }
52 }
void removeTimerEventReceiver()
Definition Timer.cpp:74

Member Function Documentation

◆ cancel()

void core::TimerEventReceiver::cancel ( )
protected

Definition at line 77 of file TimerEventReceiver.cpp.

77 {
79 }
void remove(TimerEventReceiver *timer)

Referenced by core::Timer::cancel(), and core::timer::SingleshotTimer::dispatchEvent().

Here is the caller graph for this function:

◆ dispatchEvent()

virtual void core::TimerEventReceiver::dispatchEvent ( )
privatepure virtual

◆ enable()

void core::TimerEventReceiver::enable ( )
protected

Definition at line 62 of file TimerEventReceiver.cpp.

62 {
65 } else {
66 LOG(WARNING) << "TimerEventReceiver - Enable after signal: Not enabled";
67 delete this;
68 }
69 }
void insert(TimerEventReceiver *timer)
State eventLoopState()
Definition State.cpp:30

Referenced by core::Timer::Timer().

Here is the caller graph for this function:

◆ getTimeoutAbsolut()

utils::Timeval core::TimerEventReceiver::getTimeoutAbsolut ( ) const
protected

Definition at line 54 of file TimerEventReceiver.cpp.

54 {
55 return absoluteTimeout;
56 }

Referenced by core::TimerEventPublisher::timernode_lt::operator()().

Here is the caller graph for this function:

◆ getTimeoutRelative()

utils::Timeval core::TimerEventReceiver::getTimeoutRelative ( const utils::Timeval & currentTime) const
protected

Definition at line 58 of file TimerEventReceiver.cpp.

58 {
59 return absoluteTimeout > currentTime ? absoluteTimeout - currentTime : 0;
60 }

◆ onEvent()

void core::TimerEventReceiver::onEvent ( const utils::Timeval & currentTime)
finalprivatevirtual

Implements core::EventReceiver.

Definition at line 81 of file TimerEventReceiver.cpp.

81 {
82 LOG(TRACE) << "TimerEventReceiver: Dispatch delta = " << (currentTime - getTimeoutAbsolut()).getMsd() << " ms";
83
85 }
virtual void dispatchEvent()=0
utils::Timeval getTimeoutAbsolut() const

◆ operator=()

TimerEventReceiver & core::TimerEventReceiver::operator= ( const TimerEventReceiver & )
delete

◆ restart()

void core::TimerEventReceiver::restart ( )

Definition at line 42 of file TimerEventReceiver.cpp.

Referenced by core::Timer::restart().

Here is the caller graph for this function:

◆ setTimer()

void core::TimerEventReceiver::setTimer ( Timer * timer)
private

Definition at line 87 of file TimerEventReceiver.cpp.

87 {
88 this->timer = timer;
89 }

Referenced by core::Timer::operator=(), core::Timer::Timer(), core::Timer::Timer(), and core::Timer::~Timer().

Here is the caller graph for this function:

◆ unobservedEvent()

virtual void core::TimerEventReceiver::unobservedEvent ( )
privatepure virtual

◆ update()

void core::TimerEventReceiver::update ( )
protected

Definition at line 71 of file TimerEventReceiver.cpp.

Referenced by core::timer::IntervalTimer::dispatchEvent(), and core::timer::IntervalTimerStopable::dispatchEvent().

Here is the caller graph for this function:

Friends And Related Symbol Documentation

◆ Timer

friend class Timer
friend

Definition at line 73 of file TimerEventReceiver.h.

◆ TimerEventPublisher

friend class TimerEventPublisher
friend

Definition at line 74 of file TimerEventReceiver.h.

Member Data Documentation

◆ absoluteTimeout

utils::Timeval core::TimerEventReceiver::absoluteTimeout
private

Definition at line 70 of file TimerEventReceiver.h.

◆ delay

utils::Timeval core::TimerEventReceiver::delay
private

Definition at line 71 of file TimerEventReceiver.h.

◆ timer

Timer* core::TimerEventReceiver::timer = nullptr
private

Definition at line 69 of file TimerEventReceiver.h.

◆ timerEventPublisher

TimerEventPublisher& core::TimerEventReceiver::timerEventPublisher
private

Definition at line 67 of file TimerEventReceiver.h.


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