dxd - dynax driver framework 3.0.1d223
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx::service::driver< driver_t > Class Template Reference

service driver interface class More...

#include <dx_service_driver.h>

Inheritance diagram for dx::service::driver< driver_t >:
Collaboration diagram for dx::service::driver< driver_t >:

Classes

class  app
 the service's own entry point: it launches the driver, so a device arriving on the machine is served whether a client is connected or not More...
struct  property
 this bus's name in the device tree and the preference store More...

Public Member Functions

void conclude () noexcept override
 driver (const super::match &matching_ids, const char *product_id, dx::log log={})
void info (std::ostream &os) noexcept override
void launch () override
virtual operator bool () const noexcept

Public Attributes

dx::service::driver::app * this

Protected Types

typedef service::request< service::stream::data< typename super::device_t::desc_t > > request
typedef pipe< request >::template server server

Protected Member Functions

void arrived (super::device_t &device) override
void removed (super::device_t &device) noexcept override

Protected Attributes

server pipe

Detailed Description

template<class driver_t>
class dx::service::driver< driver_t >

service driver interface class

This is the interface to a service driver identified by a set of matching dx::guid IDs. The driver class is a helper to create device objects and to bind the device to the driver identified by the set of matching dictionaries.

device arrival/removal is initiated by launch/conclude at driver start/end and as registry notification. Therefor manipulating the device std::deque needs to be locked.

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

Member Typedef Documentation

◆ request

template<class driver_t>
typedef service::request<service::stream::data<typename super::device_t::desc_t> > dx::service::driver< driver_t >::request
protected

◆ server

template<class driver_t>
typedef pipe<request>::template server dx::service::driver< driver_t >::server
protected

Constructor & Destructor Documentation

◆ driver()

template<class driver_t>
dx::service::driver< driver_t >::driver ( const super::match & matching_ids,
const char * product_id,
dx::log log = {} )
inline

Member Function Documentation

◆ arrived()

template<class driver_t>
void dx::service::driver< driver_t >::arrived ( super::device_t & device)
inlineoverrideprotected

◆ conclude()

template<class driver_t>
void dx::service::driver< driver_t >::conclude ( )
inlineoverridenoexcept
Here is the call graph for this function:
Here is the caller graph for this function:

◆ info()

template<class driver_t>
void dx::service::driver< driver_t >::info ( std::ostream & os)
inlineoverridenoexcept

◆ launch()

template<class driver_t>
void dx::service::driver< driver_t >::launch ( )
inlineoverride

◆ operator bool()

template<class driver_t>
virtual dx::service::driver< driver_t >::operator bool ( ) const
inlinevirtualnoexcept

◆ removed()

template<class driver_t>
void dx::service::driver< driver_t >::removed ( super::device_t & device)
inlineoverrideprotectednoexcept
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ pipe

template<class driver_t>
server dx::service::driver< driver_t >::pipe
protected

◆ this

template<class driver_t>
dx::service::driver::app* dx::service::driver< driver_t >::this

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.