dxd - dynax driver framework 2.2.0d81
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx::driver< device_id_t > Class Template Referenceabstract

abstract base driver interface class This is the abstract base interface to a driver. More...

#include <dx_driver.h>

+ Inheritance diagram for dx::driver< device_id_t >:
+ Collaboration diagram for dx::driver< device_id_t >:

Public Member Functions

virtual void conclude () noexcept
 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.
 
 driver (const char *product_id, dx::log log)
 abstract driver interface class constructor
 
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 void info (std::ostream &os)
 log object class information
 
virtual void launch ()
 launch notification: object mounted and ready to use
 
 ~driver () noexcept override
 

Public Attributes

bool launched {}
 
log log {}
 
const char * product_id
 
uint32_t version = DX_VERSION32
 

Protected Member Functions

virtual void add (const device_id_t &)=0
 adds a new device to the device list
 
virtual void arrived ()
 notify device arrivals completed stub
 
virtual void remove (const device_id_t &)=0
 finds and removes a device from the device list
 
virtual void removed () noexcept
 notify device removals completed stub
 

Detailed Description

template<typename device_id_t>
class dx::driver< device_id_t >

abstract base driver interface class This is the abstract base interface to a driver.

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

Constructor & Destructor Documentation

◆ driver()

template<typename device_id_t >
dx::driver< device_id_t >::driver ( const char * product_id,
dx::log log )
inline

abstract driver interface class constructor

Parameters
product_iddriver ID
loglog settings

◆ ~driver()

template<typename device_id_t >
dx::driver< device_id_t >::~driver ( )
inlineoverridenoexcept

Member Function Documentation

◆ add()

template<typename device_id_t >
virtual void dx::driver< device_id_t >::add ( const device_id_t & )
protectedpure virtual

◆ arrived()

◆ conclude()

virtual void dx::object::conclude ( )
inlinevirtualnoexceptinherited

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 in dx::proxy::device, dx::proxy::device, dx::map::driver< device >, and dx::map::driver< device_t >.

+ Here is the caller graph for this function:

◆ exception() [1/2]

template<typename device_id_t >
void dx::driver< device_id_t >::exception ( const class exception & exception,
bool filtered = false ) const
inlineoverridenoexcept

notification exception handler

+ Here is the caller graph for this function:

◆ exception() [2/2]

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

◆ info()

◆ launch()

◆ remove()

◆ removed()

template<typename device_id_t >
virtual void dx::driver< device_id_t >::removed ( )
inlineprotectedvirtualnoexcept

Member Data Documentation

◆ launched

bool dx::object::launched {}
inherited

◆ log

template<typename device_id_t >
log dx::driver< device_id_t >::log {}

◆ product_id

template<typename device_id_t >
const char* dx::driver< device_id_t >::product_id

◆ version

template<typename device_id_t >
uint32_t dx::driver< device_id_t >::version = DX_VERSION32

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

(c) copyright 2009 dynamic acoustics e.U. generated on Fri Dec 20 2024

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.