dxd - dynax driver framework  2979
cross platform open source driver development framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
dx::stream::pin< io_t, bus_t, pin_desc_t, device_t > Class Template Reference

generic streaming pin class More...

#include <dx_stream_device.h>

+ Inheritance diagram for dx::stream::pin< io_t, bus_t, pin_desc_t, device_t >:
+ Collaboration diagram for dx::stream::pin< io_t, bus_t, pin_desc_t, device_t >:

Public Member Functions

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 More...
 
 catch (std::system_error &exception)
 
 catch (std::system_error &exception)
 
 catch (std::system_error &exception)
 
 catchall_rethrow () void flush() noexcept
 
 catchall_rethrow () void signal() try
 signal data available More...
 
 catchall_rethrow () void launch()
 
virtual void launch ()
 
 operator io_t * () const noexcept
 
 operator os_event () noexcept
 
io_t * operator-> () const noexcept
 
bool operator== (const device_t &test) const
 
 pin (device_t &device, open< bus_t > open, const pin_desc_t &pin_desc={})
 generic pin constructor More...
 
 pin (const pin &pin)
 
eventreset () try
 
eventsignal () try
 
void start () try
 
void stop (bool force=false) try
 
eventwait () try
 
virtual ~pin () noexcept
 closes the pin More...
 

Public Attributes

channel::controlcontrol =nullptr
 

Detailed Description

template<typename io_t, typename bus_t, typename pin_desc_t, typename device_t = dx::device>
class dx::stream::pin< io_t, bus_t, pin_desc_t, device_t >

generic streaming pin class

example:

Exceptions
incase of an error returned by the underlaying API the device class throws a dx::exception.

Constructor & Destructor Documentation

template<typename io_t, typename bus_t, typename pin_desc_t, typename device_t = dx::device>
dx::stream::pin< io_t, bus_t, pin_desc_t, device_t >::pin ( device_t &  device,
open< bus_t >  open,
const pin_desc_t &  pin_desc = {} 
)
inline

generic pin constructor

Exceptions
n/a
template<typename io_t, typename bus_t, typename pin_desc_t, typename device_t = dx::device>
dx::stream::pin< io_t, bus_t, pin_desc_t, device_t >::pin ( const pin< io_t, bus_t, pin_desc_t, device_t > &  pin)
inline
template<typename io_t, typename bus_t, typename pin_desc_t, typename device_t = dx::device>
virtual dx::stream::pin< io_t, bus_t, pin_desc_t, device_t >::~pin ( )
inlinenoexcept

closes the pin

+ Here is the call graph for this function:

Member Function Documentation

template<typename io_t, typename bus_t, typename pin_desc_t, typename device_t = dx::device>
template<unsigned int channels, typename channel_t >
void dx::stream::pin< io_t, bus_t, pin_desc_t, device_t >::attach ( channel_t **  io[2],
uint64_t  channel_map[(channels+63)/64] 
)
inline

kernel streaming channel creator

dx::event< user >::catch ( std::system_error &  exception)
inlineinherited
dx::event< user >::catch ( std::system_error &  exception)
inlineinherited
dx::event< user >::catch ( std::system_error &  exception)
inlineinherited
template<typename io_t, typename bus_t, typename pin_desc_t, typename device_t = dx::device>
dx::stream::pin< io_t, bus_t, pin_desc_t, device_t >::catchall_rethrow ( )
inlinenoexcept
template<typename io_t, typename bus_t, typename pin_desc_t, typename device_t = dx::device>
dx::stream::pin< io_t, bus_t, pin_desc_t, device_t >::catchall_rethrow ( )
inline

signal data available

template<typename io_t, typename bus_t, typename pin_desc_t, typename device_t = dx::device>
dx::stream::pin< io_t, bus_t, pin_desc_t, device_t >::catchall_rethrow ( )
inline
virtual void dx::event< kernel >::launch ( )
inlinevirtualinherited

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.

Reimplemented in dx::coremidi::stream< io_t, bus_t, stream_desc_t, device_t >.

template<typename io_t, typename bus_t, typename pin_desc_t, typename device_t = dx::device>
dx::stream::pin< io_t, bus_t, pin_desc_t, device_t >::operator io_t * ( ) const
inlinenoexcept
dx::event< kernel >::operator os_event ( )
inlinenoexceptinherited
template<typename io_t, typename bus_t, typename pin_desc_t, typename device_t = dx::device>
io_t* dx::stream::pin< io_t, bus_t, pin_desc_t, device_t >::operator-> ( ) const
inlinenoexcept
template<typename io_t, typename bus_t, typename pin_desc_t, typename device_t = dx::device>
bool dx::stream::pin< io_t, bus_t, pin_desc_t, device_t >::operator== ( const device_t &  test) const
inline
event& dx::event< user >::reset ( )
inlineinherited

+ Here is the caller graph for this function:

event& dx::event< user >::signal ( )
inlineinherited

+ Here is the caller graph for this function:

template<typename io_t, typename bus_t, typename pin_desc_t, typename device_t = dx::device>
void dx::stream::pin< io_t, bus_t, pin_desc_t, device_t >::start ( )
inline

+ Here is the caller graph for this function:

template<typename io_t, typename bus_t, typename pin_desc_t, typename device_t = dx::device>
void dx::stream::pin< io_t, bus_t, pin_desc_t, device_t >::stop ( bool  force = false)
inline
Todo:
connect flush

+ Here is the caller graph for this function:

event& dx::event< user >::wait ( )
inlineinherited

Member Data Documentation

template<typename io_t, typename bus_t, typename pin_desc_t, typename device_t = dx::device>
channel::control* dx::stream::pin< io_t, bus_t, pin_desc_t, device_t >::control =nullptr

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

(c) copyright 2009 dynamic acoustics e.U. generated on Fri Nov 8 2019

a closed source license may be obtained by requesting a written permission from dynamic acoustics e.U.
however - governmental use generally and military use especially is strictly prohibited though.