dxd - dynax driver framework 2.6.0d205
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx::proxy::driver< device_t > Class Template Referenceabstract

#include <dx_proxy_driver.h>

Inheritance diagram for dx::proxy::driver< device_t >:
Collaboration diagram for dx::proxy::driver< device_t >:

Classes

struct  notification
class  setup

Public Types

typedef decltype(matching_idsmatch
typedef decltype(matching_idsmatch

Public Member Functions

virtual DX_PRAGMA_IGNORE_RETURN_VALUE_END bool boot () try
template<typename desc_t>
void create (const std::string &, const desc_t &)
 driver (const match &matching_ids, const char *id, dx::log log={})
 the virtual driver interface class constructor
 driver (const match &matching_ids, const char *id, dx::log log={})
 the driver interface class constructor
 dx_catchall_rethrow () virtual operator bool() const noexcept
DX_PRAGMA_IGNORE_RETURN_VALUE_END void exception (const class exception &exception, bool filtered=false) const noexcept override try
 notification exception handler
virtual void exception (const exception &exception, bool filtered=false) const noexcept=0
 notification exception handler
void launch () override try
 launch notification: object mounted and ready to use
virtual void launch () try
 launch notification: object mounted and ready to use
virtual bool shutdown () try
 client driver::shutdown/boot(): override to shutdown/boot host driver

Public Attributes

cf::string connection_id = ::IOObjectCopyBundleIdentifierForClass(cf::string{this->product_id}.retain())
elements
 STL member.
keys
 STL member.
bool launched
log log
decltype(device<>::preference) preference
const char * product_id
io::registry registry
std::deque< setup > setup
uint32_t version

Static Public Attributes

static constexpr auto connection_id = class_name

Protected Types

typedef decltype(device_t::iddevice_id_t
typedef device<> device_t

Protected Member Functions

virtual void add (const decltype(device<>::id) &)=0
 adds a new device to the device list
virtual void add (const decltype(device<>::id) &)=0
 adds a new device to the device list
void add (const device_id_t &device_id) override try
 adds a new device to the device list
virtual void arrived ()
 notify device arrivals completed stub
DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN catch (const dx::exception &__dx_exception)
DX_PRAGMA_IGNORE_RETURN_VALUE_END void clear () noexcept try
 replaces std::map::clear to call virtual notification methods
DX_PRAGMA_IGNORE_RETURN_VALUE_END void conclude () noexcept override try
 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.
 dx_catchall_handler (this,) virtual driver &operator<<(std
 restores device settings
void info (std::ostream &os) noexcept override
 log object class information
virtual driveroperator<< (const char *file)
virtual driveroperator>> (std::ostream &ostream) const
 saves device tree
virtual void remove (const decltype(device<>::id) &)=0
 finds and removes a device from the device list
virtual void remove (const decltype(device<>::id) &)=0
 finds and removes a device from the device list
DX_PRAGMA_IGNORE_RETURN_VALUE_END void remove (const device_id_t &device_id) override try
 finds and removes a device from the device list
void sleep () override
 < notify system will sleep
void wake () override

Protected Attributes

std::vector<::GUID > matching_ids
struct dx::proxy::driver::notification notification

Member Typedef Documentation

◆ device_id_t

typedef decltype(device_t::id) dx::map::driver< device<> >::device_id_t
protectedinherited

◆ device_t

typedef device<> dx::map::driver< device<> >::device_t
protectedinherited

◆ match [1/2]

template<typename device_t = device<>>
typedef decltype(matching_ids) dx::proxy::driver< device_t >::match

◆ match [2/2]

template<typename device_t = device<>>
typedef decltype(matching_ids) dx::proxy::driver< device_t >::match
Todo
proxy::driver::connection_id: reflect driver presence

Constructor & Destructor Documentation

◆ driver() [1/2]

template<typename device_t = device<>>
dx::proxy::driver< device_t >::driver ( const match & matching_ids,
const char * id,
dx::log log = {} )
inline

the virtual driver interface class constructor

checks if kext is installed at all

Parameters
matching_idsthe matching device IDs identifying the OS driver interface
iddriver ID
loglog settings

◆ driver() [2/2]

template<typename device_t = device<>>
dx::proxy::driver< device_t >::driver ( const match & matching_ids,
const char * id,
dx::log log = {} )
inline

the driver interface class constructor

Parameters
matching_idsthe matching device IDs identifying the OS driver interface
iddriver ID
loglog settings

Member Function Documentation

◆ add() [1/3]

virtual void dx::driver< decltype(device<>::id), decltype(device<>::preference) >::add ( const decltype(device<>::id) & )
protectedpure virtualinherited

adds a new device to the device list

Exceptions
dx::exception

◆ add() [2/3]

virtual void dx::driver< decltype(device<>::id), decltype(device<>::preference) >::add ( const decltype(device<>::id) & )
protectedpure virtualinherited

adds a new device to the device list

Exceptions
dx::exception

◆ add() [3/3]

void dx::map::driver< device<> >::add ( const device_id_t & device_id)
inlineoverrideprotectedinherited

adds a new device to the device list

Exceptions
dx::exception
Here is the caller graph for this function:

◆ arrived()

( )
protectedvirtualinherited

notify device arrivals completed stub

Reimplemented from dx::driver< decltype(device<>::id), decltype(device<>::preference)>.

Reimplemented in dx::stream::engine< device_t, pin_t, driver_t, io_t, circular_t >.

Here is the caller graph for this function:

◆ boot()

virtual DX_PRAGMA_IGNORE_RETURN_VALUE_END bool dx::driver< decltype(device<>::id), decltype(device<>::preference) >::boot ( )
inlinevirtualinherited

◆ catch()

DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN dx::map::driver< device<> >::catch ( const dx::exception & __dx_exception)
inlineprotectedinherited

◆ clear()

DX_PRAGMA_IGNORE_RETURN_VALUE_END void dx::map::driver< device<> >::clear ( )
inlineprotectednoexceptinherited

replaces std::map::clear to call virtual notification methods

◆ conclude()

DX_PRAGMA_IGNORE_RETURN_VALUE_END void dx::map::driver< device<> >::conclude ( )
inlineoverrideprotectedvirtualnoexceptinherited

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::object.

Reimplemented in dx::stream::engine< device_t, pin_t, driver_t, io_t, circular_t >.

◆ create()

template<typename device_t = device<>>
template<typename desc_t>
void dx::proxy::driver< device_t >::create ( const std::string & ,
const desc_t &  )
inline
Todo
proxy::driver::operator bool() check if driver is installed

◆ dx_catchall_handler()

dx::map::driver< device<> >::dx_catchall_handler ( this ) &
inlineprotectedinherited

restores device settings

◆ dx_catchall_rethrow()

template<typename device_t = device<>>
dx::proxy::driver< device_t >::dx_catchall_rethrow ( ) const
inlinenoexcept

◆ exception() [1/2]

DX_PRAGMA_IGNORE_RETURN_VALUE_END void dx::driver< decltype(device<>::id), decltype(device<>::preference) >::exception ( const class exception & exception,
bool filtered = false ) const
inlineoverridenoexceptinherited

notification exception handler

◆ exception() [2/2]

virtual void dx::object::exception ( const exception & exception,
bool filtered = false ) const
pure virtualnoexceptinherited

notification exception handler

◆ info()

void dx::map::driver< device<> >::info ( std::ostream & os)
inlineoverrideprotectedvirtualnoexceptinherited

log object class information

Reimplemented from dx::object.

Reimplemented in dx::stream::engine< device_t, pin_t, driver_t, io_t, circular_t >.

◆ launch() [1/2]

template<typename device_t = device<>>
void dx::proxy::driver< device_t >::launch ( )
inlineoverridevirtual

launch notification: object mounted and ready to use

Reimplemented from dx::map::driver< device<> >.

Here is the call graph for this function:

◆ launch() [2/2]

template<typename device_t = device<>>
virtual void dx::proxy::driver< device_t >::launch ( )
inlinevirtual

launch notification: object mounted and ready to use

Reimplemented from dx::map::driver< device<> >.

Here is the call graph for this function:

◆ operator<<()

virtual driver & dx::map::driver< device<> >::operator<< ( const char * file)
inlineprotectedvirtualinherited

◆ operator>>()

virtual driver & dx::map::driver< device<> >::operator>> ( std::ostream & ostream) const
inlineprotectedvirtualinherited

saves device tree

◆ remove() [1/3]

virtual void dx::driver< decltype(device<>::id), decltype(device<>::preference) >::remove ( const decltype(device<>::id) & )
protectedpure virtualinherited

finds and removes a device from the device list

◆ remove() [2/3]

virtual void dx::driver< decltype(device<>::id), decltype(device<>::preference) >::remove ( const decltype(device<>::id) & )
protectedpure virtualinherited

finds and removes a device from the device list

◆ remove() [3/3]

DX_PRAGMA_IGNORE_RETURN_VALUE_END void dx::map::driver< device<> >::remove ( const device_id_t & device_id)
inlineoverrideprotectedinherited

finds and removes a device from the device list

Exceptions
dx::exception

◆ shutdown()

virtual bool dx::driver< decltype(device<>::id), decltype(device<>::preference) >::shutdown ( )
inlinevirtualinherited

client driver::shutdown/boot(): override to shutdown/boot host driver

◆ sleep()

void dx::map::driver< device<> >::sleep ( )
inlineoverrideprotectedinherited

< notify system will sleep

notify system wake completed stub

◆ wake()

void dx::map::driver< device<> >::wake ( )
inlineoverrideprotectedinherited

Member Data Documentation

◆ connection_id [1/2]

template<typename device_t = device<>>
cf::string dx::proxy::driver< device_t >::connection_id = ::IOObjectCopyBundleIdentifierForClass(cf::string{this->product_id}.retain())

◆ connection_id [2/2]

template<typename device_t = device<>>
auto dx::proxy::driver< device_t >::connection_id = class_name
staticconstexpr

◆ elements

T std::map< K, T >::elements
inherited

STL member.

◆ keys

K std::map< K, T >::keys
inherited

STL member.

◆ launched

bool dx::object::launched
inherited

◆ log

log dx::driver< decltype(device<>::id), decltype(device<>::preference) >::log
inherited

◆ matching_ids

template<typename device_t = device<>>
std::vector<::GUID> dx::proxy::driver< device_t >::matching_ids
protected

◆ notification

template<typename device_t = device<>>
struct dx::proxy::driver::notification dx::proxy::driver< device_t >::notification
protected

◆ preference

decltype(device<>::preference) dx::driver< decltype(device<>::id), decltype(device<>::preference) >::preference
inherited

◆ product_id

const char* dx::driver< decltype(device<>::id), decltype(device<>::preference) >::product_id
inherited

◆ registry

template<typename device_t = device<>>
io::registry dx::proxy::driver< device_t >::registry

◆ setup

template<typename device_t = device<>>
std::deque<setup> dx::proxy::driver< device_t >::setup

◆ version

uint32_t dx::driver< decltype(device<>::id), decltype(device<>::preference) >::version
inherited

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

(c) copyright 2009 dynamic acoustics e.U. generated on

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.