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 62 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 57 of file TimerEventReceiver.cpp.

58 : EventReceiver(name)
59 , timerEventPublisher(EventLoop::instance().getEventMultiplexer().getTimerEventPublisher())
61 , delay(delay) {
62 }
static EventLoop & instance()
Definition EventLoop.cpp:79
EventReceiver(const std::string &name)
TimerEventPublisher & timerEventPublisher
static Timeval currentTime()
Definition Timeval.cpp:76

References absoluteTimeout, utils::Timeval::currentTime(), delay, core::EventReceiver::EventReceiver(), core::EventLoop::getEventMultiplexer(), core::EventMultiplexer::getTimerEventPublisher(), core::EventLoop::instance(), utils::Timeval::operator+(), timerEventPublisher, and utils::Timeval::Timeval().

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

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ~TimerEventReceiver()

core::TimerEventReceiver::~TimerEventReceiver ( )
overrideprotected

Definition at line 70 of file TimerEventReceiver.cpp.

70 {
71 if (timer != nullptr) {
73 }
74 }
void removeTimerEventReceiver()
Definition Timer.cpp:96

References core::Timer::removeTimerEventReceiver(), and timer.

Here is the call graph for this function:

Member Function Documentation

◆ cancel()

void core::TimerEventReceiver::cancel ( )
protected

Definition at line 99 of file TimerEventReceiver.cpp.

99 {
101 }
void remove(TimerEventReceiver *timer)

References core::TimerEventPublisher::remove(), and timerEventPublisher.

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

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dispatchEvent()

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

Implemented in core::timer::IntervalTimer, core::timer::IntervalTimerStopable, and core::timer::SingleshotTimer.

Referenced by onEvent().

Here is the caller graph for this function:

◆ enable()

void core::TimerEventReceiver::enable ( )
protected

Definition at line 84 of file TimerEventReceiver.cpp.

84 {
87 } else {
88 LOG(WARNING) << "TimerEventReceiver - Enable after signal: Not enabled";
89 delete this;
90 }
91 }
void insert(TimerEventReceiver *timer)
State eventLoopState()
Definition State.cpp:52

References core::eventLoopState(), core::TimerEventPublisher::insert(), core::STOPPING, and timerEventPublisher.

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

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getTimeoutAbsolut()

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

Definition at line 76 of file TimerEventReceiver.cpp.

76 {
77 return absoluteTimeout;
78 }

References absoluteTimeout.

Referenced by onEvent(), core::TimerEventPublisher::timernode_lt::operator()(), and core::TimerEventPublisher::spanActiveEvents().

Here is the caller graph for this function:

◆ getTimeoutRelative()

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

Definition at line 80 of file TimerEventReceiver.cpp.

80 {
81 return absoluteTimeout > currentTime ? absoluteTimeout - currentTime : 0;
82 }

References absoluteTimeout, utils::Timeval::operator-(), and utils::Timeval::operator>().

Referenced by core::TimerEventPublisher::getNextTimeout().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ onEvent()

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

Implements core::EventReceiver.

Definition at line 103 of file TimerEventReceiver.cpp.

103 {
104 LOG(TRACE) << "TimerEventReceiver: Dispatch delta = " << (currentTime - getTimeoutAbsolut()).getMsd() << " ms";
105
107 }
virtual void dispatchEvent()=0
utils::Timeval getTimeoutAbsolut() const

References dispatchEvent(), utils::Timeval::getMsd(), getTimeoutAbsolut(), and utils::Timeval::operator-().

Here is the call graph for this function:

◆ operator=()

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

◆ restart()

void core::TimerEventReceiver::restart ( )

Definition at line 64 of file TimerEventReceiver.cpp.

References absoluteTimeout, utils::Timeval::currentTime(), delay, core::TimerEventPublisher::erase(), core::TimerEventPublisher::insert(), utils::Timeval::operator+(), utils::Timeval::operator=(), and timerEventPublisher.

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

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setTimer()

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

Definition at line 109 of file TimerEventReceiver.cpp.

109 {
110 this->timer = timer;
111 }

References timer.

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

Implemented in core::timer::IntervalTimer, core::timer::IntervalTimerStopable, and core::timer::SingleshotTimer.

Referenced by core::TimerEventPublisher::unobserveDisableEvents().

Here is the caller graph for this function:

◆ update()

void core::TimerEventReceiver::update ( )
protected

Definition at line 93 of file TimerEventReceiver.cpp.

References absoluteTimeout, delay, core::TimerEventPublisher::erase(), core::TimerEventPublisher::insert(), utils::Timeval::operator+=(), and timerEventPublisher.

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

Here is the call graph for this function:
Here is the caller graph for this function:

Friends And Related Symbol Documentation

◆ Timer

friend class Timer
friend

Definition at line 95 of file TimerEventReceiver.h.

◆ TimerEventPublisher

friend class TimerEventPublisher
friend

Definition at line 96 of file TimerEventReceiver.h.

Member Data Documentation

◆ absoluteTimeout

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

◆ delay

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

Definition at line 93 of file TimerEventReceiver.h.

Referenced by restart(), TimerEventReceiver(), and update().

◆ timer

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

Definition at line 91 of file TimerEventReceiver.h.

Referenced by setTimer(), and ~TimerEventReceiver().

◆ timerEventPublisher

TimerEventPublisher& core::TimerEventReceiver::timerEventPublisher
private

Definition at line 89 of file TimerEventReceiver.h.

Referenced by cancel(), enable(), restart(), TimerEventReceiver(), and update().


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