dxd - dynax driver framework 2.1.0d73
cross platform open source driver development framework
|
generic streaming pin class More...
#include <dx_stream_device.h>
Public Types | |
typedef _circular_t | circular_t |
typedef _desc_t | desc_t |
typedef _device_t | device_t |
Public Member Functions | |
pin & | abort () |
template<unsigned int channels, typename channel_t > | |
void | attach (channel_t **io[2], uint64_t channel_map[(channels+63)/64]) try |
kernel streaming channel creator | |
catch (std::system_error &exception) | |
catch (std::system_error &exception) | |
catch (std::system_error &exception) | |
catch (std::system_error &exception) | |
pin & | clear () |
dx_catchall_rethrow () pin &wait() | |
dx_catchall_rethrow () void flush() noexcept | |
dx_catchall_rethrow () void launch() | |
virtual void | launch () |
operator circular_t * () const noexcept | |
operator os_event () noexcept | |
circular_t * | operator-> () const noexcept |
bool | operator== (const device_t &test) const |
pin (device_t &device, const bus_t &bus, const typename desc_t::stream::pin::desc &desc={}) | |
generic pin constructor | |
event & | reset (uint64_t count=0) try |
uint32_t | samplerate () const noexcept |
void | signal () try |
signal data available | |
event & | signal (uint64_t count=1) try |
uint64_t | signalled () const |
virtual void | start () try |
virtual void | stop (bool force=false) try |
event & | wait (bool reset=false) try |
template<typename rep_t , typename period_t > | |
bool | wait (const std::chrono::duration< rep_t, period_t > &timeout, bool reset=false) try |
virtual | ~pin () noexcept |
closes the pin | |
Public Attributes | |
channel::control * | control = nullptr |
const struct desc_t::stream & | stream |
Protected Types | |
typedef decltype(_desc_t::stream::target) | bus_t |
Protected Attributes | |
std::atomic< int > | started {} |
generic streaming pin class
example:
in | case of an error returned by the underlaying API the device class throws a dx::exception. |
|
protected |
typedef _circular_t dx::stream::pin< _desc_t, _circular_t, _device_t >::circular_t |
typedef _desc_t dx::stream::pin< _desc_t, _circular_t, _device_t >::desc_t |
typedef _device_t dx::stream::pin< _desc_t, _circular_t, _device_t >::device_t |
|
inline |
generic pin constructor
n/a |
|
inlinevirtualnoexcept |
closes the pin
|
inline |
|
inline |
kernel streaming channel creator
|
inline |
|
inline |
|
inlinenoexcept |
|
inline |
The default implementation is based on event<user> which is signalled when triggered via launch() from kernel. This is to achieve compatibility with Windows events. Its probably more adequate to overwrite launch() and do the work here if feasible.
|
inlinenoexcept |
|
inlinenoexcept |
|
inline |
|
inlinenoexcept |
|
inline |
signal data available
|
inlinevirtual |
|
inlinevirtual |
|
inlineinherited |
wait with duration timeout returns true: signalled false: timed out
channel::control* dx::stream::pin< _desc_t, _circular_t, _device_t >::control = nullptr |
|
protected |
const struct desc_t::stream& dx::stream::pin< _desc_t, _circular_t, _device_t >::stream |
(c) copyright 2009 dynamic acoustics e.U. | generated on Fri Nov 15 2024 |