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

kernel triggerable user space event More...

#include <dx_sync.h>

Inheritance diagram for dx::event< kernel >:
Collaboration diagram for dx::event< kernel >:

Public Types

typedef abstract::event super

Public Member Functions

virtual void callback ()
 event (bool signalled=false)
 event (const std::string &name, bool signalled=false)
virtual void free () noexcept
super & initialize (bool signalled=false) override
super & initialize (const std::string &name, bool signalled=false) override
 operator const os_event () const noexcept
 operator os_event () noexcept
 operator::HANDLE () const noexcept
super & reset (uint64_t=0) override
super & signal (uint64_t=1) override
uint64_t signalled () const
super & wait (bool reset=false) override
template<typename rep_t, typename period_t>
bool wait (const std::chrono::duration< rep_t, period_t > &timeout, bool reset=false)
virtual ~event ()=default

Static Public Member Functions

static void wait (::HANDLE handle, int64_t timeout=0)

Static Public Attributes

static constexpr auto scope = kernel

Protected Attributes

::HANDLE handle {invalid_t}
::HANDLE process {::GetCurrentProcess()}

Detailed Description

kernel triggerable user space event

an event the OS owns: a kernel object, waitable together with other handles and reachable by name across processes - what a driver or another process signals

Member Typedef Documentation

◆ super

Constructor & Destructor Documentation

◆ ~event()

virtual dx::event< kernel >::~event ( )
virtualdefault

Reimplemented from dx::abstract::event.

◆ event() [1/2]

dx::event< kernel >::event ( bool signalled = false)
inlineexplicit
Here is the call graph for this function:

◆ event() [2/2]

dx::event< kernel >::event ( const std::string & name,
bool signalled = false )
inlineexplicit
Here is the call graph for this function:

Member Function Documentation

◆ callback()

virtual void dx::event< kernel >::callback ( )
inlinevirtual

The default implementation is based on event<user> which is signalled when triggered via callback() from kernel. This is to achieve compatibility with Windows events. Its probably more adequate to overwrite callback() and do the work here if feasible.

Here is the call graph for this function:

◆ free()

◆ initialize() [1/2]

super & dx::event< kernel >::initialize ( bool signalled = false)
inlineoverridevirtual

Reimplemented from dx::abstract::event.

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

◆ initialize() [2/2]

super & dx::event< kernel >::initialize ( const std::string & name,
bool signalled = false )
inlineoverridevirtual

Reimplemented from dx::abstract::event.

Here is the call graph for this function:

◆ operator const os_event()

template<::HANDLE invalid_t = INVALID_HANDLE_VALUE>
dx::resource< invalid_t >::operator const os_event ( ) const
inlinenoexceptinherited

◆ operator os_event()

dx::event< kernel >::operator os_event ( )
inlinenoexcept

◆ operator::HANDLE()

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

◆ reset()

super & dx::event< kernel >::reset ( uint64_t = 0)
inlineoverridevirtual

Implements dx::abstract::event.

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

◆ signal()

super & dx::event< kernel >::signal ( uint64_t = 1)
inlineoverridevirtual

Implements dx::abstract::event.

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

◆ signalled()

uint64_t dx::event< user >::signalled ( ) const
inlineinherited
Here is the call graph for this function:
Here is the caller graph for this function:

◆ wait() [1/3]

void dx::event< kernel >::wait ( ::HANDLE handle,
int64_t timeout = 0 )
inlinestatic
Here is the call graph for this function:
Here is the caller graph for this function:

◆ wait() [2/3]

super & dx::event< kernel >::wait ( bool reset = false)
inlineoverridevirtual

Implements dx::abstract::event.

Here is the call graph for this function:

◆ wait() [3/3]

template<typename rep_t, typename period_t>
bool dx::event< user >::wait ( const std::chrono::duration< rep_t, period_t > & timeout,
bool reset = false )
inlineinherited

wait with duration timeout returns true: signalled false: timed out

Here is the call graph for this function:

Member Data Documentation

◆ handle

template<::HANDLE invalid_t = INVALID_HANDLE_VALUE>
::HANDLE dx::resource< invalid_t >::handle {invalid_t}
protectedinherited

◆ process

template<::HANDLE invalid_t = INVALID_HANDLE_VALUE>
::HANDLE dx::resource< invalid_t >::process {::GetCurrentProcess()}
protectedinherited

◆ scope

constexpr auto dx::event< kernel >::scope = kernel
staticconstexpr

The documentation for this class was generated from the following files:

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