dxd - dynax driver framework 2.2.0d91
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx::proxy::stream::device< desc_t, stream_t > Class Template Reference

#include <dx_proxy_stream_device.h>

+ Inheritance diagram for dx::proxy::stream::device< desc_t, stream_t >:
+ Collaboration diagram for dx::proxy::stream::device< desc_t, stream_t >:

Public Types

typedef desc_t desc
 

Public Member Functions

 __dx_catchall (iosize_persistence_helper(iosize);std::cerr<< exception<< std::endl;,) int32_t iosize() const override try
 retrieve iosize; first try from kernel device/persistence store; fallback to user mode store
 
 catch (...)
 
 catch (...)
 
 catch (...)
 
 catch (...)
 
 catch (...)
 
 catch (...)
 
 catch (...)
 
 catch (...)
 
 catch (...)
 
 catch (...)
 
 catch (const dx::exception &__dx_exception)
 
 catch (const dx::exception &__dx_exception)
 
 catch (const dx::exception &__dx_exception)
 
 catch (const dx::exception &__dx_exception)
 
 catch (const dx::exception &__dx_exception)
 
 catch (const dx::exception &__dx_exception)
 
 catch (const dx::exception &__dx_exception)
 
 catch (const dx::exception &__dx_exception)
 
 catch (const dx::exception &__dx_exception)
 
 catch (const std::exception &__std_exception)
 
 catch (const std::exception &__std_exception)
 
 catch (const std::exception &__std_exception)
 
 catch (const std::exception &__std_exception)
 
 catch (const std::exception &__std_exception)
 
 catch (const std::exception &__std_exception)
 
 catch (const std::exception &__std_exception)
 
 catch (const std::exception &__std_exception)
 
 catch (const std::exception &__std_exception)
 
 catch (const std::exception &__std_exception)
 
 catch (dx::exception &exception)
 
virtual uint32_t clocksource ()
 
virtual uint32_t clocksource (uint32_t clocksource) try
 
void conclude () noexcept override
 conclude notification: object will be removed. If you overwrite conclude() you also need to overwrite destructor and check if its needed to be called from there.
 
unsigned char configuration () const try
 
unsigned char configuration (unsigned char configuration) try
 
unsigned char configurations () const try
 
auto count () const noexcept
 
void ctl (uint32_t ioctl) const
 
void ctl (unsigned int ioctl) const
 
 dx_catchall_handler (this,) void conclude() noexcept override
 
 dx_catchall_handler_or_rethrow (this, exception.error==not_implemented,) _device &reset() override
 
 dx_catchall_handler_or_rethrow (this, exception.error==not_implemented,) bool monitor() const try
 
 dx_catchall_handler_or_rethrow (this, exception.error==not_implemented,) uint32_t safety_offset(dx
 
 dx_catchall_rethrow () ~device() noexcept override
 the device class destructor
 
 dx_catchall_rethrow (, "name: %s, access rights: %x, sharing options:%x", name, access, share)
 
registryerase (const char *key=nullptr)
 
void exception (const dx::exception &exception, bool filtered=false) const noexcept override
 notification exception handler
 
void exception (const dx::exception &exception, bool filtered=false) const noexcept override
 notification exception handler
 
uint64_t frame () const
 
::CFTypeRef get (::CFStringRef key) const
 
template<typename value_t , typename = cf::enable_if_convertible<value_t>>
value_t get (::CFStringRef key) const
 
::CFTypeRef get (::CFStringRef key, ::CFTypeRef dflt) const noexcept
 
template<typename value_t , typename = cf::enable_if_convertible<value_t>>
value_t get (::CFStringRef key, ::CFTypeRef dflt) const noexcept
 
template<typename value_t , typename = cf::enable_if_convertible<value_t>>
value_t get (::CFStringRef key, value_t dflt) const noexcept
 
template<typename key_t , typename = cf::enable_if_convertible<key_t>>
::CFTypeRef get (key_t key) const
 
template<typename key_t , typename value_t , typename = cf::enable_if_convertible<key_t>, typename = cf::enable_if_convertible<value_t>>
value_t get (key_t key) const
 
template<typename rx_t >
rx_t ictl (uint32_t ioctl) const
 member ioctl
 
template<typename rx_t >
size_t ictl (uint32_t ioctl, rx_t &rx) const
 
template<typename rx_t >
rx_t ictl (unsigned int ioctl) const
 Windows: member ioctl.
 
template<typename rx_t >
size_t ictl (unsigned int ioctl, rx_t &rx) const
 
void info (std::ostream &os) noexcept override
 log object class information
 
void initialize (const char *name, ::DWORD access=GENERIC_READ|GENERIC_WRITE, ::DWORD share=FILE_SHARE_READ|FILE_SHARE_WRITE) try
 (re-)initialization the underlaying windows API is CreateFile(). for detailed information see http://msdn.microsoft.com/en-us/library/aa363858(VS.85).aspx
 
void initialize (const char *path, ::HKEY root, ::REGSAM rights=KEY_READ, const char *key=nullptr)
 
void initialize (const char *path, ::REGSAM rights=KEY_READ, ::HKEY root=HKEY_CURRENT_USER, const char *key=nullptr)
 
template<typename rx_t , typename tx_t >
rx_t ioctl (uint32_t ioctl, const tx_t &tx) const
 
template<typename rx_t , typename tx_t >
size_t ioctl (uint32_t ioctl, const tx_t &tx, rx_t &rx) const
 
size_t ioctl (uint32_t ioctl, const void *tx=nullptr, size_t tx_size=0, void *rx=nullptr, size_t rx_size=0) const
 
template<typename rx_t , typename tx_t >
rx_t ioctl (unsigned int ioctl, const tx_t &tx) const
 
template<typename tx_t , typename rx_t >
size_t ioctl (unsigned int ioctl, const tx_t &tx, rx_t &rx) const
 
virtual int32_t iosize () const try
 
int32_t iosize (uint32_t iosize) noexcept override try
 persistently save iosize; first try to submit to kernel device/persistence store; fallback to user mode store
 
virtual int32_t iosize (uint32_t iosize, dx::event< user > &hw_clock) try
 
int32_t iosize (uint32_t iosize, os_event event) try
 set kernel mode HW clock event (also stores iosize persistently)
 
virtual void launch ()
 launch notification: object mounted and ready to use
 
template<typename monitor_t = dx::stream::clock::monitor>
monitor_t * monitor () try
 
monitor_t * monitor (bool force=false)
 
template<typename tx_t >
void octl (uint32_t ioctl, const tx_t &tx) const
 
template<typename tx_t >
void octl (unsigned int ioctl, const tx_t &tx) const
 
 operator const io_registry_entry_t & () const noexcept
 auto converter into const io_object
 
 operator io_registry_entry_t & () noexcept
 auto converter into io_object
 
 operator io_registry_entry_t * () noexcept
 auto converter into io_object pointer
 
 operator std::string () const
 
 operator uint64_t () const
 
template<typename value_t >
 operator value_t () const
 
template<typename value_t >
value_t operator() (value_t dflt) const
 
 operator::CFMutableDictionaryRef () const
 
 operator::CFStringRef () const
 
 operator::HKEY () const noexcept
 
bool operator== (io_registry_entry_t io_object) const noexcept
 
::CFTypeRef operator[] (::CFStringRef key) const
 
registry operator[] (const char *key) const
 
template<typename key_t , typename = cf::enable_if_convertible<key_t>>
::CFTypeRef operator[] (key_t key) const
 
virtual devicereset ()
 
referenceretain ()
 
uint32_t safety_offset (dx::stream::direction::direction direction) const override try
 obtain persistent number of rx safety offset ticks - defaults to stream desc config setting
 
virtual uint32_t safety_offset (dx::stream::direction::direction direction, uint32_t safety_offset) try
 set persistent number of rx/tx safety offset ticks
 
uint32_t samplerate () const override try
 
template<typename observer_t = uint32_t>
observer_t * samplerate () const try
 
uint32_t samplerate (uint32_t samplerate) override try
 
registryset (::CFStringRef key, ::CFTypeRef value) noexcept
 
template<typename value_t , typename = cf::enable_if_convertible<value_t>>
registryset (::CFStringRef key, value_t value)
 
registryset (::CFTypeRef properties)
 Setting properties in a registry entry is not generally supported, it is more common to support setting of properties of the connection based property setting of dx::device.
 
template<typename key_t , typename = cf::enable_if_convertible<key_t>>
registryset (key_t key, ::CFTypeRef value)
 
template<typename key_t , typename value_t , typename = cf::enable_if_convertible<key_t>, typename = cf::enable_if_convertible<value_t>>
registryset (key_t key, value_t value)
 
bool start (uint64_t frame, unsigned int started=1) override try
 
virtual unsigned int stop (bool force=false) noexcept
 
std::string string (uint8_t idx) const
 
virtual uint32_t sync_cycle_ticks () const try
 obtain persistent number of ticks per sync cycle - defaults to sync_cycle.hw_min_ticks with an absolute minimum of 2 ticks
 
virtual int32_t sync_reference () const try
 
virtual int32_t sync_reference (uint32_t sync_reference) try
 

Public Attributes

dx::event< user > * clock
 
std::atomic< size_t > counter
 
dx::driver< decltype(id)> & driver
 
dx::driver< decltype(id)> & driver
 
struct { 
 
   dx::event< user > *   clock 
 
   std::atomic< size_t >   counter 
 
   uint32_t   iosize 
 
hw 
 
const std::string id
 
const ::io_service_t id
 
uint32_t iosize
 
bool launched {}
 
bool launched {}
 
std::deque< std::function< void(control &)> notify )
 
sc::preference preference
 
registry preference
 
std::string puid
 persistent UID (i.e. serial number)
 
std::string puuid
 persistent universal UID
 
shared::memory< dx::stream::clock::monitorshared_monitor
 
std::atomic< unsigned int > started
 
std::map< decltype(desc_t::stream::target.idx()), std::weak_ptr< stream_t > > streams
 
uint32_t version
 
uint32_t version
 

Protected Member Functions

void halt () noexcept override
 

Protected Attributes

bool connected = false
 
struct { 
 
   cf::type< const char * >   bundle_id 
 
   cf::type< const char * >   class_name 
 
kernel 
 
io::port port
 
std::recursive_mutex start_stop_in_progress
 start/stop operation in progress
 

Member Typedef Documentation

◆ desc

typedef desc_t dx::stream::device< dx::stream::control< dx::proxy::device > , desc_t, stream_t >::desc
inherited

Member Function Documentation

◆ __dx_catchall()

template<typename desc_t , typename stream_t >
dx::proxy::stream::_device< desc_t, stream_t >::__dx_catchall ( iosize_persistence_helper(iosize);std::cerr<< exception<< std::endl; ) const
inlineoverrideinherited

retrieve iosize; first try from kernel device/persistence store; fallback to user mode store

◆ catch() [1/30]

template<typename desc_t , typename stream_t >
dx::proxy::stream::_device< desc_t, stream_t >::catch ( ...)
inlineinherited

◆ catch() [2/30]

template<typename desc_t , typename stream_t >
dx::proxy::stream::_device< desc_t, stream_t >::catch ( ...)
inlineinherited

◆ catch() [3/30]

template<typename desc_t , typename stream_t >
dx::proxy::stream::_device< desc_t, stream_t >::catch ( ...)
inlineinherited

◆ catch() [4/30]

template<typename desc_t , typename stream_t >
dx::proxy::stream::_device< desc_t, stream_t >::catch ( ...)
inlineinherited

◆ catch() [5/30]

template<typename desc_t , typename stream_t >
dx::proxy::stream::_device< desc_t, stream_t >::catch ( ...)
inlineinherited

◆ catch() [6/30]

template<typename desc_t , typename stream_t >
dx::proxy::stream::_device< desc_t, stream_t >::catch ( ...)
inlineinherited

◆ catch() [7/30]

template<typename desc_t , typename stream_t >
dx::proxy::stream::_device< desc_t, stream_t >::catch ( ...)
inlineinherited

◆ catch() [8/30]

template<typename desc_t , typename stream_t >
dx::proxy::stream::_device< desc_t, stream_t >::catch ( ...)
inlineinherited

◆ catch() [9/30]

template<typename desc_t , typename stream_t >
dx::proxy::stream::_device< desc_t, stream_t >::catch ( ...)
inlineinherited

◆ catch() [10/30]

template<typename desc_t , typename stream_t >
dx::proxy::stream::_device< desc_t, stream_t >::catch ( ...)
inlineinherited

◆ catch() [11/30]

template<typename desc_t , typename stream_t >
dx::proxy::stream::_device< desc_t, stream_t >::catch ( const dx::exception & __dx_exception)
inlineinherited

◆ catch() [12/30]

template<typename desc_t , typename stream_t >
dx::proxy::stream::_device< desc_t, stream_t >::catch ( const dx::exception & __dx_exception)
inlineinherited

◆ catch() [13/30]

template<typename desc_t , typename stream_t >
dx::proxy::stream::_device< desc_t, stream_t >::catch ( const dx::exception & __dx_exception)
inlineinherited

◆ catch() [14/30]

template<typename desc_t , typename stream_t >
dx::proxy::stream::_device< desc_t, stream_t >::catch ( const dx::exception & __dx_exception)
inlineinherited

◆ catch() [15/30]

template<typename desc_t , typename stream_t >
dx::proxy::stream::_device< desc_t, stream_t >::catch ( const dx::exception & __dx_exception)
inlineinherited

◆ catch() [16/30]

template<typename desc_t , typename stream_t >
dx::proxy::stream::_device< desc_t, stream_t >::catch ( const dx::exception & __dx_exception)
inlineinherited

◆ catch() [17/30]

template<typename desc_t , typename stream_t >
dx::proxy::stream::_device< desc_t, stream_t >::catch ( const dx::exception & __dx_exception)
inlineinherited

◆ catch() [18/30]

template<typename desc_t , typename stream_t >
dx::proxy::stream::_device< desc_t, stream_t >::catch ( const dx::exception & __dx_exception)
inlineinherited

◆ catch() [19/30]

template<typename desc_t , typename stream_t >
dx::proxy::stream::_device< desc_t, stream_t >::catch ( const dx::exception & __dx_exception)
inlineinherited

◆ catch() [20/30]

template<typename desc_t , typename stream_t >
dx::proxy::stream::_device< desc_t, stream_t >::catch ( const std::exception & __std_exception)
inlineinherited

◆ catch() [21/30]

template<typename desc_t , typename stream_t >
dx::proxy::stream::_device< desc_t, stream_t >::catch ( const std::exception & __std_exception)
inlineinherited

◆ catch() [22/30]

template<typename desc_t , typename stream_t >
dx::proxy::stream::_device< desc_t, stream_t >::catch ( const std::exception & __std_exception)
inlineinherited

◆ catch() [23/30]

template<typename desc_t , typename stream_t >
dx::proxy::stream::_device< desc_t, stream_t >::catch ( const std::exception & __std_exception)
inlineinherited

◆ catch() [24/30]

template<typename desc_t , typename stream_t >
dx::proxy::stream::_device< desc_t, stream_t >::catch ( const std::exception & __std_exception)
inlineinherited

◆ catch() [25/30]

template<typename desc_t , typename stream_t >
dx::proxy::stream::_device< desc_t, stream_t >::catch ( const std::exception & __std_exception)
inlineinherited

◆ catch() [26/30]

template<typename desc_t , typename stream_t >
dx::proxy::stream::_device< desc_t, stream_t >::catch ( const std::exception & __std_exception)
inlineinherited

◆ catch() [27/30]

template<typename desc_t , typename stream_t >
dx::proxy::stream::_device< desc_t, stream_t >::catch ( const std::exception & __std_exception)
inlineinherited

◆ catch() [28/30]

template<typename desc_t , typename stream_t >
dx::proxy::stream::_device< desc_t, stream_t >::catch ( const std::exception & __std_exception)
inlineinherited

◆ catch() [29/30]

template<typename desc_t , typename stream_t >
dx::proxy::stream::_device< desc_t, stream_t >::catch ( const std::exception & __std_exception)
inlineinherited

◆ catch() [30/30]

template<typename desc_t , typename stream_t >
dx::proxy::stream::_device< desc_t, stream_t >::catch ( dx::exception & exception)
inlineinherited

◆ clocksource() [1/2]

virtual uint32_t dx::stream::device< dx::stream::control< dx::proxy::device > , desc_t, stream_t >::clocksource ( )
inlinevirtualinherited

◆ clocksource() [2/2]

virtual uint32_t dx::stream::device< dx::stream::control< dx::proxy::device > , desc_t, stream_t >::clocksource ( uint32_t clocksource)
inlinevirtualinherited

◆ conclude()

template<typename desc_t , typename stream_t >
void dx::proxy::stream::_device< desc_t, stream_t >::conclude ( )
inlineoverridevirtualnoexceptinherited

conclude notification: object will be removed. If you overwrite conclude() you also need to overwrite destructor and check if its needed to be called from there.

Reimplemented from dx::proxy::device.

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

◆ configuration() [1/2]

template<typename desc_t , typename stream_t >
unsigned char dx::proxy::stream::_device< desc_t, stream_t >::configuration ( ) const
inlineinherited
+ Here is the caller graph for this function:

◆ configuration() [2/2]

template<typename desc_t , typename stream_t >
unsigned char dx::proxy::stream::_device< desc_t, stream_t >::configuration ( unsigned char configuration)
inlineinherited
+ Here is the call graph for this function:

◆ configurations()

template<typename desc_t , typename stream_t >
unsigned char dx::proxy::stream::_device< desc_t, stream_t >::configurations ( ) const
inlineinherited

◆ count()

auto dx::io::reference< io_registry_entry_t >::count ( ) const
inlinenoexceptinherited

◆ ctl() [1/2]

void dx::proxy::device::ctl ( uint32_t ioctl) const
inlineinherited

◆ ctl() [2/2]

void dx::proxy::device::ctl ( unsigned int ioctl) const
inlineinherited

◆ dx_catchall_handler()

dx::stream::control< dx::proxy::device >::dx_catchall_handler ( this )
inlineoverridenoexceptinherited

◆ dx_catchall_handler_or_rethrow() [1/3]

template<typename desc_t , typename stream_t >
dx::proxy::stream::_device< desc_t, stream_t >::dx_catchall_handler_or_rethrow ( this ,
exception. error = not_implemented ) &
inlineoverrideinherited

◆ dx_catchall_handler_or_rethrow() [2/3]

template<typename desc_t , typename stream_t >
dx::proxy::stream::_device< desc_t, stream_t >::dx_catchall_handler_or_rethrow ( this ,
exception. error = not_implemented ) const
inlineinherited

◆ dx_catchall_handler_or_rethrow() [3/3]

template<typename desc_t , typename stream_t >
dx::proxy::stream::_device< desc_t, stream_t >::dx_catchall_handler_or_rethrow ( this ,
exception. error = not_implemented )
inlineinherited

◆ dx_catchall_rethrow() [1/2]

dx::proxy::device::dx_catchall_rethrow ( )
inlineoverridenoexceptinherited

the device class destructor

the underlaying IOKit API is IOServiceClose().

remark: The io_service reference itself is managed by inherited io::reference

for detailed information see

Disconnect notification port,

closes the connection to the IOService object

◆ dx_catchall_rethrow() [2/2]

dx::file::dx_catchall_rethrow ( "name: % s,
access rights:% x,
sharing options:%x" ,
name ,
access ,
share  )
inherited

◆ erase()

registry & dx::registry::erase ( const char * key = nullptr)
inlineinherited
Todo
registry::erase(): investigate why it's not working

◆ exception() [1/2]

void dx::proxy::device::exception ( const dx::exception & exception,
bool filtered = false ) const
inlineoverridevirtualnoexceptinherited

notification exception handler

Reimplemented from dx::device<::io_service_t >.

Reimplemented in dx::usb::platform::device.

◆ exception() [2/2]

void dx::proxy::device::exception ( const dx::exception & exception,
bool filtered = false ) const
inlineoverridevirtualnoexceptinherited

notification exception handler

Reimplemented from dx::device<::io_service_t >.

Reimplemented in dx::usb::platform::device.

+ Here is the call graph for this function:

◆ frame()

template<typename desc_t , typename stream_t >
uint64_t dx::proxy::stream::_device< desc_t, stream_t >::frame ( ) const
inlineinherited
+ Here is the caller graph for this function:

◆ get() [1/7]

::CFTypeRef dx::io::registry::get ( ::CFStringRef key) const
inlineinherited
+ Here is the caller graph for this function:

◆ get() [2/7]

template<typename value_t , typename = cf::enable_if_convertible<value_t>>
value_t dx::io::registry::get ( ::CFStringRef key) const
inlineinherited
+ Here is the call graph for this function:

◆ get() [3/7]

::CFTypeRef dx::io::registry::get ( ::CFStringRef key,
::CFTypeRef dflt ) const
inlinenoexceptinherited

◆ get() [4/7]

template<typename value_t , typename = cf::enable_if_convertible<value_t>>
value_t dx::io::registry::get ( ::CFStringRef key,
::CFTypeRef dflt ) const
inlinenoexceptinherited
+ Here is the call graph for this function:

◆ get() [5/7]

template<typename value_t , typename = cf::enable_if_convertible<value_t>>
value_t dx::io::registry::get ( ::CFStringRef key,
value_t dflt ) const
inlinenoexceptinherited
+ Here is the call graph for this function:

◆ get() [6/7]

template<typename key_t , typename = cf::enable_if_convertible<key_t>>
::CFTypeRef dx::io::registry::get ( key_t key) const
inlineinherited
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ get() [7/7]

template<typename key_t , typename value_t , typename = cf::enable_if_convertible<key_t>, typename = cf::enable_if_convertible<value_t>>
value_t dx::io::registry::get ( key_t key) const
inlineinherited
+ Here is the call graph for this function:

◆ halt()

template<typename desc_t , typename stream_t >
void dx::proxy::stream::_device< desc_t, stream_t >::halt ( )
inlineoverrideprotectedvirtualnoexceptinherited

Reimplemented from dx::stream::control< dx::proxy::device >.

+ Here is the call graph for this function:

◆ ictl() [1/4]

template<typename rx_t >
rx_t dx::proxy::device::ictl ( uint32_t ioctl) const
inlineinherited

member ioctl

this member retreives data from the device by providing an IOCTL code. the template argument defines the type of data to be retreived. this member is intended as a convinient way to retreive only small amounts of data since there is an intermediate stack copy involved in returning the data.

+ Here is the caller graph for this function:

◆ ictl() [2/4]

template<typename rx_t >
size_t dx::proxy::device::ictl ( uint32_t ioctl,
rx_t & rx ) const
inlineinherited

◆ ictl() [3/4]

template<typename rx_t >
rx_t dx::proxy::device::ictl ( unsigned int ioctl) const
inlineinherited

Windows: member ioctl.

this member retreives data from the device by providing an IOCTL code. the template argument defines the type of data to be retreived. this member is intended as a convinient way to retreive only small amounts of data since there is an intermediate stack copy involved in returning the data.

the underlaying windows API is DeviceIoControl(). for detailed information see http://msdn.microsoft.com/en-us/library/aa363216(VS.85).aspx

Exceptions
n/amicrosoft does not give information about what possible errors values are provided by its OS other than
ERROR_INSUFFICIENT_BUFFERif the output buffer is too small to receive any data

◆ ictl() [4/4]

template<typename rx_t >
size_t dx::proxy::device::ictl ( unsigned int ioctl,
rx_t & rx ) const
inlineinherited

◆ info()

template<typename desc_t , typename stream_t >
void dx::proxy::stream::_device< desc_t, stream_t >::info ( std::ostream & os)
inlineoverridevirtualnoexceptinherited

log object class information

Reimplemented from dx::stream::device< dx::stream::control< dx::proxy::device >, desc_t, stream_t >.

+ Here is the call graph for this function:

◆ initialize() [1/3]

void dx::file::initialize ( const char * name,
::DWORD access = GENERIC_READ| GENERIC_WRITE,
::DWORD share = FILE_SHARE_READ| FILE_SHARE_WRITE )
inlineinherited

(re-)initialization the underlaying windows API is CreateFile(). for detailed information see http://msdn.microsoft.com/en-us/library/aa363858(VS.85).aspx

Exceptions
n/amicrosoft does not give information about what possible errors values are provided by its OS
+ Here is the caller graph for this function:

◆ initialize() [2/3]

void dx::registry::initialize ( const char * path,
::HKEY root,
::REGSAM rights = KEY_READ,
const char * key = nullptr )
inlineinherited
+ Here is the caller graph for this function:

◆ initialize() [3/3]

void dx::registry::initialize ( const char * path,
::REGSAM rights = KEY_READ,
::HKEY root = HKEY_CURRENT_USER,
const char * key = nullptr )
inlineinherited

◆ ioctl() [1/5]

template<typename rx_t , typename tx_t >
rx_t dx::proxy::device::ioctl ( uint32_t ioctl,
const tx_t & tx ) const
inlineinherited

◆ ioctl() [2/5]

template<typename rx_t , typename tx_t >
size_t dx::proxy::device::ioctl ( uint32_t ioctl,
const tx_t & tx,
rx_t & rx ) const
inlineinherited
+ Here is the caller graph for this function:

◆ ioctl() [3/5]

size_t dx::proxy::device::ioctl ( uint32_t ioctl,
const void * tx = nullptr,
size_t tx_size = 0,
void * rx = nullptr,
size_t rx_size = 0 ) const
inlineinherited

◆ ioctl() [4/5]

template<typename rx_t , typename tx_t >
rx_t dx::proxy::device::ioctl ( unsigned int ioctl,
const tx_t & tx ) const
inlineinherited

◆ ioctl() [5/5]

template<typename tx_t , typename rx_t >
size_t dx::proxy::device::ioctl ( unsigned int ioctl,
const tx_t & tx,
rx_t & rx ) const
inlineinherited

◆ iosize() [1/4]

virtual int32_t dx::stream::device< dx::stream::control< dx::proxy::device > , desc_t, stream_t >::iosize ( ) const
inlinevirtualinherited

<

Todo
stream::device calculate default iosize from desc

◆ iosize() [2/4]

template<typename desc_t , typename stream_t >
int32_t dx::proxy::stream::_device< desc_t, stream_t >::iosize ( uint32_t iosize)
inlineoverridevirtualnoexceptinherited

persistently save iosize; first try to submit to kernel device/persistence store; fallback to user mode store

Reimplemented from dx::stream::device< dx::stream::control< dx::proxy::device >, desc_t, stream_t >.

◆ iosize() [3/4]

virtual int32_t dx::stream::device< dx::stream::control< dx::proxy::device > , desc_t, stream_t >::iosize ( uint32_t iosize,
dx::event< user > & hw_clock )
inlinevirtualinherited

◆ iosize() [4/4]

template<typename desc_t , typename stream_t >
int32_t dx::proxy::stream::_device< desc_t, stream_t >::iosize ( uint32_t iosize,
os_event event )
inlineinherited

set kernel mode HW clock event (also stores iosize persistently)

◆ launch()

◆ monitor() [1/2]

template<typename desc_t , typename stream_t >
template<typename monitor_t = dx::stream::clock::monitor>
monitor_t * dx::proxy::stream::_device< desc_t, stream_t >::monitor ( )
inlinevirtualinherited

◆ monitor() [2/2]

monitor_t * dx::stream::device< dx::stream::control< dx::proxy::device > , desc_t, stream_t >::monitor ( bool force = false)
inlineinherited

◆ octl() [1/2]

template<typename tx_t >
void dx::proxy::device::octl ( uint32_t ioctl,
const tx_t & tx ) const
inlineinherited
+ Here is the caller graph for this function:

◆ octl() [2/2]

template<typename tx_t >
void dx::proxy::device::octl ( unsigned int ioctl,
const tx_t & tx ) const
inlineinherited

◆ operator const io_registry_entry_t &()

dx::io::reference< io_registry_entry_t >::operator const io_registry_entry_t & ( ) const
inlinenoexceptinherited

auto converter into const io_object

◆ operator io_registry_entry_t &()

dx::io::reference< io_registry_entry_t >::operator io_registry_entry_t & ( )
inlinenoexceptinherited

auto converter into io_object

◆ operator io_registry_entry_t *()

dx::io::reference< io_registry_entry_t >::operator io_registry_entry_t * ( )
inlinenoexceptinherited

auto converter into io_object pointer

◆ operator std::string()

dx::registry::operator std::string ( ) const
inlineinherited

◆ operator uint64_t()

dx::io::registry::operator uint64_t ( ) const
inlineexplicitinherited

◆ operator value_t()

template<typename value_t >
dx::registry::operator value_t ( ) const
inlineinherited

◆ operator()()

template<typename value_t >
value_t dx::registry::operator() ( value_t dflt) const
inlineinherited

◆ operator::CFMutableDictionaryRef()

dx::io::registry::operator::CFMutableDictionaryRef ( ) const
inlineexplicitinherited
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ operator::CFStringRef()

dx::io::registry::operator::CFStringRef ( ) const
inlineexplicitinherited

◆ operator::HKEY()

dx::registry::operator::HKEY ( ) const
inlinenoexceptinherited

◆ operator==()

bool dx::io::reference< io_registry_entry_t >::operator== ( io_registry_entry_t io_object) const
inlinenoexceptinherited

◆ operator[]() [1/3]

::CFTypeRef dx::io::registry::operator[] ( ::CFStringRef key) const
inlineinherited
+ Here is the call graph for this function:

◆ operator[]() [2/3]

registry dx::registry::operator[] ( const char * key) const
inlineinherited

◆ operator[]() [3/3]

template<typename key_t , typename = cf::enable_if_convertible<key_t>>
::CFTypeRef dx::io::registry::operator[] ( key_t key) const
inlineinherited
+ Here is the call graph for this function:

◆ reset()

virtual device & dx::stream::device< dx::stream::control< dx::proxy::device > , desc_t, stream_t >::reset ( )
inlinevirtualinherited

◆ retain()

reference & dx::io::reference< io_registry_entry_t >::retain ( )
inlineinherited

◆ safety_offset() [1/2]

template<typename desc_t , typename stream_t >
uint32_t dx::proxy::stream::_device< desc_t, stream_t >::safety_offset ( dx::stream::direction::direction direction) const
inlineoverridevirtualinherited

obtain persistent number of rx safety offset ticks - defaults to stream desc config setting

Reimplemented from dx::stream::device< dx::stream::control< dx::proxy::device >, desc_t, stream_t >.

◆ safety_offset() [2/2]

virtual uint32_t dx::stream::device< dx::stream::control< dx::proxy::device > , desc_t, stream_t >::safety_offset ( dx::stream::direction::direction direction,
uint32_t safety_offset )
inlinevirtualinherited

set persistent number of rx/tx safety offset ticks

◆ samplerate() [1/3]

template<typename desc_t , typename stream_t >
uint32_t dx::proxy::stream::_device< desc_t, stream_t >::samplerate ( ) const
inlineoverridevirtualinherited
Todo
dedicated stream::device::clock class

Reimplemented from dx::stream::device< dx::stream::control< dx::proxy::device >, desc_t, stream_t >.

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

◆ samplerate() [2/3]

template<typename desc_t , typename stream_t >
template<typename observer_t = uint32_t>
observer_t * dx::proxy::stream::_device< desc_t, stream_t >::samplerate ( ) const
inlinevirtualinherited

◆ samplerate() [3/3]

template<typename desc_t , typename stream_t >
uint32_t dx::proxy::stream::_device< desc_t, stream_t >::samplerate ( uint32_t samplerate)
inlineoverridevirtualinherited

Reimplemented from dx::stream::device< dx::stream::control< dx::proxy::device >, desc_t, stream_t >.

+ Here is the call graph for this function:

◆ set() [1/5]

registry & dx::proxy::device::set ( ::CFStringRef key,
::CFTypeRef value )
inlinenoexceptinherited

◆ set() [2/5]

template<typename value_t , typename = cf::enable_if_convertible<value_t>>
registry & dx::proxy::device::set ( ::CFStringRef key,
value_t value )
inlineinherited

◆ set() [3/5]

registry & dx::proxy::device::set ( ::CFTypeRef properties)
inlineinherited

Setting properties in a registry entry is not generally supported, it is more common to support setting of properties of the connection based property setting of dx::device.

◆ set() [4/5]

template<typename key_t , typename = cf::enable_if_convertible<key_t>>
registry & dx::proxy::device::set ( key_t key,
::CFTypeRef value )
inlineinherited

◆ set() [5/5]

template<typename key_t , typename value_t , typename = cf::enable_if_convertible<key_t>, typename = cf::enable_if_convertible<value_t>>
registry & dx::proxy::device::set ( key_t key,
value_t value )
inlineinherited

◆ start()

template<typename desc_t , typename stream_t >
bool dx::proxy::stream::_device< desc_t, stream_t >::start ( uint64_t ,
unsigned int starting = 1 )
inlineoverridevirtualinherited

result indicates if start changed the state.

Reimplemented from dx::stream::control< dx::proxy::device >.

+ Here is the call graph for this function:

◆ stop()

virtual unsigned int dx::stream::control< dx::proxy::device >::stop ( bool force = false)
inlinevirtualnoexceptinherited

result indicates the amount of stopped start references

◆ string()

std::string dx::proxy::device::string ( uint8_t idx) const
inlineinherited

◆ sync_cycle_ticks()

virtual uint32_t dx::stream::device< dx::stream::control< dx::proxy::device > , desc_t, stream_t >::sync_cycle_ticks ( ) const
inlinevirtualinherited

obtain persistent number of ticks per sync cycle - defaults to sync_cycle.hw_min_ticks with an absolute minimum of 2 ticks

◆ sync_reference() [1/2]

virtual int32_t dx::stream::device< dx::stream::control< dx::proxy::device > , desc_t, stream_t >::sync_reference ( ) const
inlinevirtualinherited

◆ sync_reference() [2/2]

virtual int32_t dx::stream::device< dx::stream::control< dx::proxy::device > , desc_t, stream_t >::sync_reference ( uint32_t sync_reference)
inlinevirtualinherited

Member Data Documentation

◆ bundle_id

cf::type<const char*> dx::proxy::device::bundle_id
inherited

◆ clock

dx::event<user>* dx::stream::device< dx::stream::control< dx::proxy::device > , desc_t, stream_t >::clock
inherited

◆ connected

bool dx::proxy::device::connected = false
protectedinherited

◆ counter

std::atomic<size_t> dx::stream::device< dx::stream::control< dx::proxy::device > , desc_t, stream_t >::counter
inherited

◆ driver [1/2]

dx::driver<decltype(id)>& dx::device< std::string >::driver
inherited

◆ driver [2/2]

dx::driver<decltype(id)>& dx::device< ::io_service_t >::driver
inherited

◆ [struct]

struct { ... } dx::stream::device< dx::stream::control< dx::proxy::device > , desc_t, stream_t >::hw

◆ id [1/2]

const std::string dx::device< std::string >::id
inherited

◆ id [2/2]

const ::io_service_t dx::device< ::io_service_t >::id
inherited

◆ iosize

uint32_t dx::stream::device< dx::stream::control< dx::proxy::device > , desc_t, stream_t >::iosize
inherited

◆ [struct]

struct { ... } dx::proxy::device::kernel

◆ launched [1/2]

bool dx::object::launched {}
inherited

◆ launched [2/2]

bool dx::object::launched {}
inherited

◆ notify

std::deque<std::function<void(control&)> dx::stream::control< dx::proxy::device >::notify)
inherited

◆ port

io::port dx::proxy::device::port
protectedinherited

◆ preference [1/2]

sc::preference dx::proxy::device::preference
inherited

◆ preference [2/2]

registry dx::proxy::device::preference
inherited

◆ puid

std::string dx::stream::device< dx::stream::control< dx::proxy::device > , desc_t, stream_t >::puid
inherited

persistent UID (i.e. serial number)

◆ puuid

std::string dx::stream::device< dx::stream::control< dx::proxy::device > , desc_t, stream_t >::puuid
inherited

persistent universal UID

◆ shared_monitor

◆ start_stop_in_progress

std::recursive_mutex dx::stream::control< dx::proxy::device >::start_stop_in_progress
protectedinherited

start/stop operation in progress

◆ started

std::atomic<unsigned int> dx::stream::control< dx::proxy::device >::started
inherited

◆ streams

std::map<decltype(desc_t::stream::target.idx()), std::weak_ptr<stream_t> > dx::stream::device< dx::stream::control< dx::proxy::device > , desc_t, stream_t >::streams
inherited

◆ version [1/2]

uint32_t dx::device< ::io_service_t >::version
inherited

◆ version [2/2]

uint32_t dx::device< std::string >::version
inherited

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

(c) copyright 2009 dynamic acoustics e.U. generated on Tue Mar 11 2025

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.