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

user client connection The each user_client holds a shared device reference. More...

#include <dx_service_device.h>

Inheritance diagram for dx::service::device< preference_t >::user_client:
Collaboration diagram for dx::service::device< preference_t >::user_client:

Public Member Functions

void free () noexcept override
 operator const os_event () const noexcept
 operator os_event () noexcept
 operator::HANDLE () const noexcept
const snd_t & operator<< (const snd_t &snd)
void run ()
::ULONG session () const
dx::pipe::status promoted this (const os_result &value)
 user_client (const std::string &id, decltype(super::listen)::listeners &&listeners, std::weak_ptr< class device > &device)
 ~user_client ()

Public Attributes

dx::pipe::connection connection
dx::pipe::status ERROR_PIPE_BUSY
listen< std::function< void(const request &)> > listen
class dx::pipe::server this

Protected Member Functions

virtual void read (std::stop_token stop_token) noexcept

Protected Attributes

::DWORD access [4]
shared::event attach
overlapped connect
std::shared_ptr< device > device
::HANDLE handle
std::string id
overlapped in
overlapped out
bool overlapped
::HANDLE process
event< user > read_thread_started
std::map< decltype(device::desc_t::stream::target.idx()), uint32_t > started
 this client's standing start requests per stream
std::stop_callback< std::function< void()> > stop_callback
std::map< decltype(device::desc_t::stream::target.idx()), std::shared_ptr< typename device::stream_t > > streams

Private Member Functions

event & free () noexcept

Detailed Description

template<typename preference_t>
class dx::service::device< preference_t >::user_client

user client connection The each user_client holds a shared device reference.

Constructor & Destructor Documentation

◆ user_client()

template<typename preference_t>
dx::service::device< preference_t >::user_client::user_client ( const std::string & id,
decltype(super::listen)::listeners && listeners,
std::weak_ptr< class device > & device )
inline
Here is the call graph for this function:

◆ ~user_client()

template<typename preference_t>
dx::service::device< preference_t >::user_client::~user_client ( )
inline

Member Function Documentation

◆ free()

void dx::pipe< request >::free ( )
inlineoverridevirtualnoexceptinherited

Reimplemented from dx::resource< invalid_t >.

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

◆ operator const os_event()

dx::resource< invalid_t >::operator const os_event ( ) const
inlinenoexceptinherited

◆ operator os_event()

dx::resource< invalid_t >::operator os_event ( )
inlinenoexceptinherited

◆ operator::HANDLE()

dx::resource< invalid_t >::operator::HANDLE ( ) const
inlinenoexceptinherited

◆ operator<<()

const snd_t & dx::pipe< request >::operator<< ( const snd_t & snd)
inlineinherited

◆ read()

virtual void dx::pipe< request >::read ( std::stop_token stop_token)
inlineprotectedvirtualnoexceptinherited

a client connect/disconnect racing the overlapped completion leaves it unwakeable by CancelIoEx(), hence polled against the stop token

Here is the call graph for this function:

◆ run()

void dx::pipe< request >::run ( )
inlineinherited
Here is the call graph for this function:

◆ session()

::ULONG dx::pipe< request >::session ( ) const
inlineinherited
Here is the call graph for this function:
Here is the caller graph for this function:

◆ this()

dx::pipe::status promoted dx::pipe< request >::this ( const os_result & value)
inlineinherited

Member Data Documentation

◆ access

::DWORD dx::pipe< request >::access[4]
protectedinherited

◆ attach

shared::event dx::pipe< request >::attach
protectedinherited

◆ connect

overlapped dx::pipe< request >::connect
protectedinherited

◆ connection

dx::pipe::connection dx::pipe< request >::connection
inherited

◆ device

template<typename preference_t>
std::shared_ptr<device> dx::service::device< preference_t >::user_client::device
protected
Todo
remove service::device::user_client::device_t when VS understand to distinguish between type and member even inside lambda

◆ ERROR_PIPE_BUSY

dx::pipe::status dx::pipe< request >::ERROR_PIPE_BUSY
inherited

◆ handle

::HANDLE dx::resource< invalid_t >::handle
protectedinherited

◆ id

std::string dx::pipe< request >::id
protectedinherited

◆ in

overlapped dx::pipe< request >::in
protectedinherited

◆ listen

listen<std::function<void(const request&)> > dx::pipe< request >::listen
inherited

◆ out

overlapped dx::pipe< request >::out
protectedinherited

◆ overlapped

bool dx::pipe< request >::overlapped
protectedinherited

◆ process

::HANDLE dx::resource< invalid_t >::process
protectedinherited

◆ read_thread_started

event<user> dx::pipe< request >::read_thread_started
protectedinherited

◆ started

template<typename preference_t>
std::map<decltype(device::desc_t::stream::target.idx()), uint32_t> dx::service::device< preference_t >::user_client::started
protected

this client's standing start requests per stream

◆ stop_callback

std::stop_callback<std::function<void()> > dx::pipe< request >::stop_callback
protectedinherited

◆ streams

template<typename preference_t>
std::map<decltype(device::desc_t::stream::target.idx()), std::shared_ptr<typename device::stream_t> > dx::service::device< preference_t >::user_client::streams
protected

◆ this

class dx::pipe::server dx::pipe< request >::this
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.