dxd - dynax driver framework 3.0.0d222
cross platform open source driver development framework
Loading...
Searching...
No Matches
dxd::streaming::client< device_t > Class Template Reference

streaming state of one control client More...

#include <dxd_stream_device.h>

Inheritance diagram for dxd::streaming::client< device_t >:
Collaboration diagram for dxd::streaming::client< device_t >:

Public Member Functions

 client (device_t &device, dxd::client &platform)
void conclude ()
 releases what this client left started
os_result ioctl (unsigned int ioctl, const void *in, size_t size_in, void *out, size_t size_out, size_t &size)
 the IOCTLs answered per client, everything else belongs to the device

Detailed Description

template<typename device_t>
class dxd::streaming::client< device_t >

streaming state of one control client

Mixed into the platform's client (dxd::client or dxd::kmdf::client) by the product's client class, so a client vanishing without stopping its streams releases them here rather than leaving the clock domain running.

Constructor & Destructor Documentation

◆ client()

template<typename device_t>
dxd::streaming::client< device_t >::client ( device_t & device,
dxd::client< device_t > & platform )
inline

Member Function Documentation

◆ conclude()

template<typename device_t>
void dxd::streaming::client< device_t >::conclude ( )
inline

releases what this client left started

◆ ioctl()

template<typename device_t>
os_result dxd::streaming::client< device_t >::ioctl ( unsigned int ioctl,
const void * in,
size_t size_in,
void * out,
size_t size_out,
size_t & size )
inline

the IOCTLs answered per client, everything else belongs to the device

dx::ioctl::stream::clock::monitor is told apart by its buffer sizes, as dx::proxy::stream::device::monitor issues it: bool asks whether counters exist, a pointer out maps them into this client, the same pointer back in releases that mapping again.

dx::ioctl::stream::open: the target's ring, mapped into this client

dx::ioctl::stream::channel: this client's planar channel buffers for the pin the target names dx::ioctl::stream::format: the ring's format, addressed by the stream's target - the answer is what it runs

< in and out are the same METHOD_BUFFERED buffer

< first attach in this client's process: map the control block into it here, in caller context

dx::ioctl::stream::clock::iosize as dx::stream::iosize: this client's buffer switch event at its own iosize - the bare value is the device's

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

Member Data Documentation

◆ buffer

template<typename device_t>
dxd::buffer<dx::user> dxd::streaming::client< device_t >::buffer {sizeof(dx::stream::channel::control)}

◆ kernel

template<typename device_t>
map<dx::kernel, dx::stream::channel::control> dxd::streaming::client< device_t >::kernel {buffer}

◆ user

template<typename device_t>
map<dx::user, dx::stream::channel::control> dxd::streaming::client< device_t >::user

mapped into the client from within the channel IOCTL, in its own context


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.