|
dxd - dynax driver framework 3.0.0d222
cross platform open source driver development framework
|
streaming group: the streams of one device sharing a desc::stream::group id, streamed together by one realtime thread More...
#include <dx_stream_group.h>
Public Types | |
| typedef settings< device_t >::client | client |
| typedef dx::clock< source_t > | clock |
| the one clock of this group, its source freely selectable | |
| typedef dx::source<>::clock_t | clock_t |
| typedef _device_t | device_t |
| typedef dx::source<>::event_t | event_t |
| typedef std::conditional_t< store, typename dx::promoted< uint32_t >::template preference< decltype(device_t::preference)>, dx::promoted< uint32_t > > | promoted |
| typedef std::conditional_t< store, typename dx::promoted< uint32_t >::template preference< decltype(device_t::preference)>, dx::promoted< uint32_t > > | promoted |
| typedef device_t::stream_t | stream_t |
| typedef settings< device_t >::transport | transport |
| the group's two sides, reached as transport::/client:: members | |
Public Member Functions | |
| __dx_catchall (std::cerr<< dx::exception(&exception, exception.error, __PRETTY_FUNCTION__, __FILE__, __LINE__)<< std::endl;,) void conclude() noexcept | |
| dx_catchall_rethrow () virtual ~source()=default | |
| template<typename... args_t> | |
| group (device_t &device, args_t &&... args) | |
| virtual void | halt () noexcept |
| stop and remove clock thread | |
| void | info (std::ostream &os) noexcept override try |
| realtime & | initialize (const std::chrono::high_resolution_clock::duration &resolution) |
| void | initialize (const typename clock_t::duration &duration) |
| operator event_t & () noexcept | |
| operator event_t * () noexcept | |
| virtual void | run () |
| create and start clock thread | |
| virtual void | sync (const typename clock_t::time_point &now) |
| virtual source & | wait (bool reset=false) try |
Static Public Member Functions | |
| static std::string | key (direction::direction direction, uint32_t) |
| static std::string | key (direction::direction direction, uint32_t strategy) |
Public Attributes | |
| promoted | safety_offset [direction::directions] |
| promoted | safety_offset [direction::directions] |
| promoted< uint32_t > | start |
| promoted< bool > | started |
| std::map< decltype(stream_t::target.idx()), std::weak_ptr< stream_t > > | streams |
| shared stream ownership: central weak reference per stream, guarded by device | |
| promoted | sync_strategy |
| promoted | sync_strategy |
Protected Member Functions | |
| virtual void | notify () noexcept |
| notify change from device requiring streaming reset | |
| void | tick () override |
| the plain container has no transport of its own: a bus whose group moves the data overrides this, a group fed from outside (service, kernel, SDK callback) has nothing to do here | |
Protected Attributes | |
| std::condition_variable | condition_variable |
| device_t & | device |
| also the mutex serializing membership against the tick | |
| _event_t | event |
| std::function< void()> | flush_hook |
| std::function< void()> | halt_hook |
| std::mutex | mutex |
| _clock_t::time_point | objective |
| std::function< void()> | run_hook |
| std::atomic< bool > | running |
| os_result | status |
streaming group: the streams of one device sharing a desc::stream::group id, streamed together by one realtime thread
| typedef settings<device_t>::client dx::stream::group< _device_t, source_t >::client |
| typedef dx::clock<source_t> dx::stream::group< _device_t, source_t >::clock |
the one clock of this group, its source freely selectable
|
inherited |
| typedef _device_t dx::stream::group< _device_t, source_t >::device_t |
|
inherited |
|
inherited |
|
inherited |
| typedef device_t::stream_t dx::stream::group< _device_t, source_t >::stream_t |
| typedef settings<device_t>::transport dx::stream::group< _device_t, source_t >::transport |
the group's two sides, reached as transport::/client:: members
|
inline |
|
inlinenoexceptinherited |
|
defaultinherited |
|
inlinevirtualnoexceptinherited |
stop and remove clock thread
<halting from its own tick: the loop ends once the tick returns, nobody can join here
<elect the single caller allowed to join() - concurrent halt() callers (e.g. async surprise vs. the main test thread) would otherwise both reach join() on the same thread, undefined behavior
|
inlineoverridevirtualnoexceptinherited |
Reimplemented from dx::clock< dx::source<> >.
|
inlineinherited |
|
inlineinherited |
|
inlinestaticinherited |
|
inlinestaticinherited |
|
inlineprotectedvirtualnoexceptinherited |
notify change from device requiring streaming reset
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinevirtualinherited |
create and start clock thread
|
inlinevirtualinherited |
|
inlineoverrideprotectedvirtual |
the plain container has no transport of its own: a bus whose group moves the data overrides this, a group fed from outside (service, kernel, SDK callback) has nothing to do here
Implements dx::clock< dx::source<> >.
|
inlinevirtualinherited |
|
protectedinherited |
|
protected |
also the mutex serializing membership against the tick
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
protectedinherited |
| std::map<decltype(stream_t::target.idx()), std::weak_ptr<stream_t> > dx::stream::group< _device_t, source_t >::streams |
shared stream ownership: central weak reference per stream, guarded by device
|
inherited |
|
inherited |
| (c) copyright 2009 dynamic acoustics e.U. | generated on |