dxd - dynax driver framework 3.0.1d223
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx::coreaudio::pod::stream< device_t, circular_t > Class Template Reference

a pod's stream: the ring is the counterpart's, mapped by name, and open, close, start and stop are told to it as properties - nothing here touches hardware More...

#include <dx_coreaudio_pod_device.h>

Inheritance diagram for dx::coreaudio::pod::stream< device_t, circular_t >:
Collaboration diagram for dx::coreaudio::pod::stream< device_t, circular_t >:

Public Member Functions

template<typename... args_t>
 stream (args_t &&... args)

Public Attributes

const std::string uid

Protected Types

typedef dx::shared::memory< dx::circular > memory

Protected Member Functions

void alloc (size_t size, bool free=true) override
 catch (...)
void free () noexcept override
memory & initialize (const std::string &name, uint32_t version, size_t size=0)
reference & initialize (const std::string &name)
 operator bool () const noexcept
 true if this shared memory is currently in use by some process - a cheap, non-destructive existence probe (shm_open without O_CREAT, then immediately close) that neither maps nor creates anything itself.
 operator const os_event () const noexcept
 operator const os_event () const noexcept
 operator dx::circular & ()
 operator dx::circular & ()
 operator dx::circular * ()
 operator dx::circular * ()
 operator os_event () noexcept
 operator os_event () noexcept
 operator struct ::stat ()
dx::circular & operator* ()
dx::circular * operator-> ()
 operator::HANDLE () const noexcept
 operator::HANDLE () const noexcept
bool release () noexcept
 releases this hold
bool release () noexcept
 releases this hold
size_t size () const

Static Protected Member Functions

static bool exists (const std::string &name) noexcept
 the same probe on a name alone, for a side that must attach to another's segment rather than create one
static std::string path (const std::string &name)
 the name a segment carries in the system: the uid, hashed where it exceeds what a shared memory name takes

Protected Attributes

bool joined {}
 true if initialize() found another holder already present, false if this was the first
::HANDLE process
::HANDLE process

Detailed Description

template<typename device_t, typename circular_t = dx::circular>
class dx::coreaudio::pod::stream< device_t, circular_t >

a pod's stream: the ring is the counterpart's, mapped by name, and open, close, start and stop are told to it as properties - nothing here touches hardware

Member Typedef Documentation

◆ memory

Constructor & Destructor Documentation

◆ stream()

template<typename device_t, typename circular_t = dx::circular>
template<typename... args_t>
dx::coreaudio::pod::stream< device_t, circular_t >::stream ( args_t &&... args)
inline

start without touching the shared circular: the counterpart hosting the stream resets it on its own first start - an attaching client joins a possibly live buffer at its own position a clock domain stream rides its group's session, a bulk stream starts its hosted counterpart itself

Member Function Documentation

◆ alloc()

template<typename device_t, typename circular_t = dx::circular>
void dx::coreaudio::pod::stream< device_t, circular_t >::alloc ( size_t size,
bool free = true )
inlineoverrideprotected
Here is the call graph for this function:

◆ catch()

dx::shared::memory< dx::circular >::catch ( ...)
inlineinherited

◆ exists()

bool dx::shared::memory< dx::circular >::exists ( const std::string & name)
inlinestaticnoexceptinherited

the same probe on a name alone, for a side that must attach to another's segment rather than create one

◆ free()

template<typename device_t, typename circular_t = dx::circular>
void dx::coreaudio::pod::stream< device_t, circular_t >::free ( )
inlineoverrideprotectedvirtualnoexcept

Reimplemented from dx::resource< nullptr >.

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

◆ initialize() [1/2]

memory & dx::shared::memory< dx::circular >::initialize ( const std::string & name,
uint32_t version,
size_t size = 0 )
inlineinherited

◆ initialize() [2/2]

reference & dx::shared::reference::initialize ( const std::string & name)
inlineinherited
Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator bool()

dx::shared::memory< dx::circular >::operator bool ( ) const
inlinenoexceptinherited

true if this shared memory is currently in use by some process - a cheap, non-destructive existence probe (shm_open without O_CREAT, then immediately close) that neither maps nor creates anything itself.

◆ operator const os_event() [1/2]

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

◆ operator const os_event() [2/2]

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

◆ operator dx::circular &() [1/2]

dx::shared::memory< dx::circular >::operator dx::circular & ( )
inlineinherited

◆ operator dx::circular &() [2/2]

dx::shared::memory< dx::circular >::operator dx::circular & ( )
inlineinherited

◆ operator dx::circular *() [1/2]

dx::shared::memory< dx::circular >::operator dx::circular * ( )
inlineexplicitinherited

◆ operator dx::circular *() [2/2]

dx::shared::memory< dx::circular >::operator dx::circular * ( )
inlineexplicitinherited

◆ operator os_event() [1/2]

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

◆ operator os_event() [2/2]

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

◆ operator struct ::stat()

dx::shared::memory< dx::circular >::operator struct ::stat ( )
inlineinherited

◆ operator*()

dx::circular & dx::shared::memory< dx::circular >::operator* ( )
inlineinherited

◆ operator->()

dx::circular * dx::shared::memory< dx::circular >::operator-> ( )
inlineinherited

◆ operator::HANDLE() [1/2]

dx::resource< invalid_t >::operator::HANDLE ( ) const
inlinenoexceptinherited
Here is the caller graph for this function:

◆ operator::HANDLE() [2/2]

dx::resource< invalid_t >::operator::HANDLE ( ) const
inlinenoexceptinherited
Here is the caller graph for this function:

◆ path()

std::string dx::shared::memory< dx::circular >::path ( const std::string & name)
inlinestaticinherited

the name a segment carries in the system: the uid, hashed where it exceeds what a shared memory name takes

◆ release() [1/2]

bool dx::shared::reference::release ( )
inlinenoexceptinherited

releases this hold

Returns
true if this was the last holder of this name - i.e. no other process currently has it open, and cleanup guarded by this name is now safe
Here is the call graph for this function:
Here is the caller graph for this function:

◆ release() [2/2]

bool dx::shared::reference::release ( )
inlinenoexceptinherited

releases this hold

Returns
true if this was the last holder of this name - i.e. no other process currently has it open, and cleanup guarded by this name is now safe
Here is the call graph for this function:

◆ size()

size_t dx::shared::memory< dx::circular >::size ( ) const
inlineinherited

Member Data Documentation

◆ joined

bool dx::shared::reference::joined {}
inherited

true if initialize() found another holder already present, false if this was the first

◆ process [1/2]

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

◆ process [2/2]

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

◆ uid

const std::string dx::stream::shared::stream< device_t, dx::circular, dx::stream::control<dx::stream::object<device_t>>, dx::shared::event >::uid
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.