dxd - dynax driver framework 3.0.2
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx::source< _event_t, _clock_t > Class Template Reference

clock source base: the only thing that may signal a tick - itself the event driven source (hw clock fan-out) More...

#include <dx_clock.h>

Inheritance diagram for dx::source< _event_t, _clock_t >:
Collaboration diagram for dx::source< _event_t, _clock_t >:

Public Types

typedef _clock_t clock_t
typedef _event_t event_t

Public Member Functions

virtual void sync(const typename clock_t::time_point& now)
virtual source& wait(bool reset= false)
virtual ~source()= default

Protected Attributes

std::condition_variable condition_variable
_event_t event
std::mutex mutex
_clock_t::time_point objective
std::atomic<bool> running{false}
os_result status{not_initialized}

Detailed Description

template<typename _event_t = event<user>, typename _clock_t = std::chrono::high_resolution_clock>
class dx::source< _event_t, _clock_t >

clock source base: the only thing that may signal a tick - itself the event driven source (hw clock fan-out)

Member Typedef Documentation

◆ clock_t

template<typename _event_t= event<user>, typename _clock_t= std::chrono::high_resolution_clock>
typedef _clock_t dx::source<_event_t, _clock_t>::clock_t

◆ event_t

template<typename _event_t= event<user>, typename _clock_t= std::chrono::high_resolution_clock>
typedef _event_t dx::source<_event_t, _clock_t>::event_t

Constructor & Destructor Documentation

◆ ~source()

template<typename _event_t= event<user>, typename _clock_t= std::chrono::high_resolution_clock>
virtual dx::source<_event_t, _clock_t>::~source()
virtualdefault

Member Function Documentation

◆ sync()

template<typename _event_t= event<user>, typename _clock_t= std::chrono::high_resolution_clock>
virtual void dx::source<_event_t, _clock_t>::sync(const typename clock_t::time_point& now)
inlinevirtual
Here is the caller graph for this function:

◆ wait()

template<typename _event_t= event<user>, typename _clock_t= std::chrono::high_resolution_clock>
virtual source& dx::source<_event_t, _clock_t>::wait(bool reset= false)
inlinevirtual

Reimplemented in dx::free_run< event_t, clock_t >, dx::timer< event_t, clock_t >, dx::timer< dx::event< kernel >, frame >, and dx::usb::clock::source< device_t >.

Here is the caller graph for this function:

Member Data Documentation

◆ condition_variable

template<typename _event_t= event<user>, typename _clock_t= std::chrono::high_resolution_clock>
std::condition_variable dx::source<_event_t, _clock_t>::condition_variable
protected

◆ event

template<typename _event_t= event<user>, typename _clock_t= std::chrono::high_resolution_clock>
_event_t dx::source<_event_t, _clock_t>::event
protected
Todo
evaluate clock::status replacement (exception?)

◆ mutex

template<typename _event_t= event<user>, typename _clock_t= std::chrono::high_resolution_clock>
std::mutex dx::source<_event_t, _clock_t>::mutex
protected

◆ objective

template<typename _event_t= event<user>, typename _clock_t= std::chrono::high_resolution_clock>
_clock_t::time_point dx::source<_event_t, _clock_t>::objective
protected

◆ running

template<typename _event_t= event<user>, typename _clock_t= std::chrono::high_resolution_clock>
std::atomic<bool> dx::source<_event_t, _clock_t>::running{false}
protected

◆ status

template<typename _event_t= event<user>, typename _clock_t= std::chrono::high_resolution_clock>
os_result dx::source<_event_t, _clock_t>::status{not_initialized}
protected

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