dxd - dynax driver framework 3.0.0d222
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx::map::driver< _device_t, holder_t > Class Template Referenceabstract

#include <dx_driver.h>

Inheritance diagram for dx::map::driver< _device_t, holder_t >:
Collaboration diagram for dx::map::driver< _device_t, holder_t >:

Public Member Functions

virtual DX_PRAGMA_IGNORE_RETURN_VALUE_END bool boot () try
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
virtual bool shutdown () try
 client driver::shutdown/boot(): override to shutdown/boot host driver
bool try_conclude () noexcept
 atomically conclude()s if currently launched; returns whether this call did it
bool try_launch ()
 atomically launch()es if not already launched; returns whether this call did it

Public Attributes

elements
 STL member.
keys
 STL member.
std::atomic< bool > launched
dx::log log
 cached local log level, mirrors driver_settings::log
decltype(_device_t::preference) preference
const char * product_id
promoted< os_resultstatus
uint32_t version

Protected Types

typedef std::conditional_t< held, typename view::template iterator< typename holders::const_iterator >, typename holders::const_iterator > const_iterator
typedef decltype(device_t::id) device_id_t
typedef _device_t device_t
typedef std::map< device_id_t, std::shared_ptr< holder_t > > holders
typedef std::conditional_t< held, typename view::template iterator< typename holders::iterator >, typename holders::iterator > iterator

Protected Member Functions

virtual void add (const decltype(_device_t::id) &)=0
 adds a new device to the device list
void add (const device_id_t &device_id) override
 adds a new device to the device list
virtual void arrived ()
 notify device arrivals completed stub
virtual void arrived (device_t &)
 notify specific device arrival stub
const_iterator begin () const noexcept
iterator begin () noexcept
 catch (...)
 catch (...)
DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN catch (const dx::exception &__dx_exception)
DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN catch (const dx::exception &__dx_exception)
 catch (const std::exception &__std_exception)
 catch (const std::exception &__std_exception)
virtual 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. Called only through try_conclude() - never call this directly from outside the class hierarchy.
template<typename product_id_t, typename... args_t>
 driver (product_id_t &&product_id, args_t &&... args)
 dx_catchall_handler (this,) virtual driver &operator<<(std
 restores device settings
const_iterator end () const noexcept
iterator end () noexcept
iterator find (const device_id_t &device_id)
const_iterator find (const device_id_t &device_id) const
void info (std::ostream &os) noexcept override
 log object class information
void launch () override try
 launch notification: object mounted and ready to use. Called only through try_launch() - never call this directly from outside the class hierarchy.
virtual driveroperator<< (const char *file)
virtual driveroperator>> (const char *file) const
virtual driveroperator>> (std::ostream &ostream) const
 saves device tree
virtual void remove (const decltype(_device_t::id) &)=0
 finds and removes a device from the device list
void remove (const device_id_t &device_id) override try
 finds and removes a device from the device list
virtual void removed () noexcept
 notify device removals completed stub
virtual void removed (device_t &) noexcept
 notify specific device removal stub
void sleep () override
 < notify system will sleep
void wake () override

Protected Attributes

dx_catchall_handler(this,) public typedef std::conditional_t< held, typename view::value_type, typename holders::value_type > value_type

Member Typedef Documentation

◆ const_iterator

template<typename _device_t, typename holder_t = _device_t>
typedef std::conditional_t<held, typename view::template iterator<typename holders::const_iterator>, typename holders::const_iterator> dx::map::driver< _device_t, holder_t >::const_iterator
protected

◆ device_id_t

template<typename _device_t, typename holder_t = _device_t>
typedef decltype(device_t::id) dx::map::driver< _device_t, holder_t >::device_id_t
protected

◆ device_t

template<typename _device_t, typename holder_t = _device_t>
typedef _device_t dx::map::driver< _device_t, holder_t >::device_t
protected

◆ holders

template<typename _device_t, typename holder_t = _device_t>
typedef std::map<device_id_t, std::shared_ptr<holder_t> > dx::map::driver< _device_t, holder_t >::holders
protected

◆ iterator

template<typename _device_t, typename holder_t = _device_t>
typedef std::conditional_t<held, typename view::template iterator<typename holders::iterator>, typename holders::iterator> dx::map::driver< _device_t, holder_t >::iterator
protected

Constructor & Destructor Documentation

◆ driver()

template<typename _device_t, typename holder_t = _device_t>
template<typename product_id_t, typename... args_t>
dx::map::driver< _device_t, holder_t >::driver ( product_id_t && product_id,
args_t &&... args )
inlineprotected

Member Function Documentation

◆ add() [1/2]

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

adds a new device to the device list

Exceptions
dx::exception

◆ add() [2/2]

template<typename _device_t, typename holder_t = _device_t>
void dx::map::driver< _device_t, holder_t >::add ( const device_id_t & device_id)
inlineoverrideprotected

adds a new device to the device list

Exceptions
dx::exception

◆ arrived() [1/2]

template<typename _device_t, typename holder_t = _device_t>
virtual void dx::driver< device_id_t, decltype(device_t::preference) >::arrived ( )
inlineprotectedvirtual

notify device arrivals completed stub

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

Here is the caller graph for this function:

◆ arrived() [2/2]

template<typename _device_t, typename holder_t = _device_t>
virtual void dx::map::driver< _device_t, holder_t >::arrived ( device_t & )
inlineprotectedvirtual

◆ begin() [1/2]

template<typename _device_t, typename holder_t = _device_t>
const_iterator dx::map::driver< _device_t, holder_t >::begin ( ) const
inlineprotectednoexcept

◆ begin() [2/2]

template<typename _device_t, typename holder_t = _device_t>
iterator dx::map::driver< _device_t, holder_t >::begin ( )
inlineprotectednoexcept

◆ boot()

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

◆ catch() [1/6]

template<typename _device_t, typename holder_t = _device_t>
dx::map::driver< _device_t, holder_t >::catch ( ...)
inlineprotected

◆ catch() [2/6]

template<typename _device_t, typename holder_t = _device_t>
dx::map::driver< _device_t, holder_t >::catch ( ...)
inlineprotected

◆ catch() [3/6]

template<typename _device_t, typename holder_t = _device_t>
DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN dx::map::driver< _device_t, holder_t >::catch ( const dx::exception & __dx_exception)
inlineprotected

◆ catch() [4/6]

template<typename _device_t, typename holder_t = _device_t>
DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN dx::map::driver< _device_t, holder_t >::catch ( const dx::exception & __dx_exception)
inlineprotected

◆ catch() [5/6]

template<typename _device_t, typename holder_t = _device_t>
dx::map::driver< _device_t, holder_t >::catch ( const std::exception & __std_exception)
inlineprotected

◆ catch() [6/6]

template<typename _device_t, typename holder_t = _device_t>
dx::map::driver< _device_t, holder_t >::catch ( const std::exception & __std_exception)
inlineprotected

◆ clear()

template<typename _device_t, typename holder_t = _device_t>
virtual DX_PRAGMA_IGNORE_RETURN_VALUE_END void dx::map::driver< _device_t, holder_t >::clear ( )
inlineprotectedvirtualnoexcept

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

◆ conclude()

template<typename _device_t, typename holder_t = _device_t>
DX_PRAGMA_IGNORE_RETURN_VALUE_END void dx::map::driver< _device_t, holder_t >::conclude ( )
inlineoverrideprotectedvirtualnoexcept

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. Called only through try_conclude() - never call this directly from outside the class hierarchy.

Reimplemented from dx::object.

Reimplemented in dx::wasapi::client::driver< device_t >.

◆ dx_catchall_handler()

template<typename _device_t, typename holder_t = _device_t>
dx::map::driver< _device_t, holder_t >::dx_catchall_handler ( this ) &
inlineprotected

restores device settings

◆ end() [1/2]

template<typename _device_t, typename holder_t = _device_t>
const_iterator dx::map::driver< _device_t, holder_t >::end ( ) const
inlineprotectednoexcept

◆ end() [2/2]

template<typename _device_t, typename holder_t = _device_t>
iterator dx::map::driver< _device_t, holder_t >::end ( )
inlineprotectednoexcept

◆ exception() [1/2]

DX_PRAGMA_IGNORE_RETURN_VALUE_END void dx::driver< decltype(_device_t::id), decltype(_device_t::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

◆ find() [1/2]

template<typename _device_t, typename holder_t = _device_t>
iterator dx::map::driver< _device_t, holder_t >::find ( const device_id_t & device_id)
inlineprotected

◆ find() [2/2]

template<typename _device_t, typename holder_t = _device_t>
const_iterator dx::map::driver< _device_t, holder_t >::find ( const device_id_t & device_id) const
inlineprotected

◆ info()

template<typename _device_t, typename holder_t = _device_t>
void dx::map::driver< _device_t, holder_t >::info ( std::ostream & os)
inlineoverrideprotectedvirtualnoexcept

◆ launch()

template<typename _device_t, typename holder_t = _device_t>
void dx::map::driver< _device_t, holder_t >::launch ( )
inlineoverrideprotectedvirtual

launch notification: object mounted and ready to use. Called only through try_launch() - never call this directly from outside the class hierarchy.

Reimplemented from dx::object.

Reimplemented in dx::proxy::driver< device_t >, dx::proxy::driver< device_t >, dx::virtuel::driver< device_t >, dx::virtuel::driver< device<> >, and dx::wasapi::client::driver< device_t >.

◆ operator<<()

template<typename _device_t, typename holder_t = _device_t>
virtual driver & dx::map::driver< _device_t, holder_t >::operator<< ( const char * file)
inlineprotectedvirtual

◆ operator>>() [1/2]

template<typename _device_t, typename holder_t = _device_t>
virtual driver & dx::map::driver< _device_t, holder_t >::operator>> ( const char * file) const
inlineprotectedvirtual

◆ operator>>() [2/2]

template<typename _device_t, typename holder_t = _device_t>
virtual driver & dx::map::driver< _device_t, holder_t >::operator>> ( std::ostream & ostream) const
inlineprotectedvirtual

saves device tree

Reimplemented in dx::coreaudio::driver< device_t >.

◆ remove() [1/2]

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

finds and removes a device from the device list

◆ remove() [2/2]

template<typename _device_t, typename holder_t = _device_t>
void dx::map::driver< _device_t, holder_t >::remove ( const device_id_t & device_id)
inlineoverrideprotected

finds and removes a device from the device list

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

◆ removed() [1/2]

template<typename _device_t, typename holder_t = _device_t>
virtual void dx::driver< device_id_t, decltype(device_t::preference) >::removed ( )
inlineprotectedvirtualnoexcept

notify device removals completed stub

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

Here is the caller graph for this function:

◆ removed() [2/2]

template<typename _device_t, typename holder_t = _device_t>
virtual void dx::map::driver< _device_t, holder_t >::removed ( device_t & )
inlineprotectedvirtualnoexcept

notify specific device removal stub

◆ shutdown()

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

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

◆ sleep()

template<typename _device_t, typename holder_t = _device_t>
void dx::map::driver< _device_t, holder_t >::sleep ( )
inlineoverrideprotected

< notify system will sleep

notify system wake completed stub

◆ try_conclude()

bool dx::object::try_conclude ( )
inlinenoexceptinherited

atomically conclude()s if currently launched; returns whether this call did it

◆ try_launch()

bool dx::object::try_launch ( )
inlineinherited

atomically launch()es if not already launched; returns whether this call did it

◆ wake()

template<typename _device_t, typename holder_t = _device_t>
void dx::map::driver< _device_t, holder_t >::wake ( )
inlineoverrideprotected

Member Data Documentation

◆ elements

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

STL member.

◆ keys

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

STL member.

◆ launched

std::atomic<bool> dx::object::launched
inherited

◆ log

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

cached local log level, mirrors driver_settings::log

◆ preference

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

◆ product_id

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

◆ status

promoted<os_result> dx::driver< decltype(_device_t::id), decltype(_device_t::preference) >::status
inherited

◆ value_type

template<typename _device_t, typename holder_t = _device_t>
dx_catchall_handler (this,) public typedef std::conditional_t<held, typename view::value_type, typename holders::value_type> dx::map::driver< _device_t, holder_t >::value_type
protected

◆ version

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

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

(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.