dxd - dynax driver framework 2.6.0d222
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx_proxy_device.h File Reference
#include "dx_proxy_driver.h"
Include dependency graph for macOS/dx_proxy_device.h:

Classes

class  dx::proxy::device< preference_t >
 OS proxy device interface class. More...
class  dx::service::device< preference_t >
 device - hosts a per-device pipe::server, keyed by puuid, separate from the driver-level control pipe Each connected client is represented by a user_client instance holding a std::shared_ptr<device>, so the device stays alive for as long as any client stays connected to it. conclude() stops that pipe before calling super::conclude(); since pipe::server::stop() unconditionally joins every instance - connected or not - this releases every user_client's device reference synchronously, within the same call. A caller holding the last other std::shared_ptr<device> (e.g. map::driver::remove()) is therefore guaranteed to reach a zero refcount, and run the device's destructor, before conclude() returns - independent of any further pipe activity. This is what lets a deferred cleanup step tied to the device's own destruction (e.g. the Windows registry preference's schedule_erase, dx_registry.h) complete within the same remove() call instead of depending on a future connection. More...

Namespaces

namespace  dx
 dynax driver framework user mode interface namespace
namespace  dx::proxy
 OS proxy interface class.
namespace  dx::service
 service interface namespace

Typedefs

template<typename type_t>
using dx::proxy::enable_if_ptr = std::enable_if<std::is_pointer_v<type_t>, type_t>::type
template<typename type_t>
using dx::proxy::enable_if_scalar = std::enable_if<std::is_scalar_v<type_t> && !std::is_pointer_v<type_t>, type_t>::type
template<typename type_t>
using dx::proxy::hide_if_ptr = std::enable_if<!std::is_pointer_v<type_t>, type_t>::type
 OS proxy device interface class.
template<typename type_t>
using dx::proxy::hide_if_scalar_or_ptr = std::enable_if<!(std::is_scalar_v<type_t> || std::is_pointer_v<type_t>), type_t>::type

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