dxd - dynax driver framework  2675
cross platform open source driver development framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
dx::event< dx::kernel, exception_t > Class Template Reference

#include <dx_sync.h>

+ Inheritance diagram for dx::event< dx::kernel, exception_t >:
+ Collaboration diagram for dx::event< dx::kernel, exception_t >:

Public Member Functions

 event () throw (exception_t)
 
 event (bool signalled) throw (exception_t)
 
virtual void launch () throw (exception_t)
 
 operator const os_event () const noexcept
 
 operator os_event () noexcept
 
 operator os_event () noexcept
 
void reset ()
 for Windows compatibility only Notifying event<dx::user> doesn't change its state so there is nothing to reset. When it is notified only a thread already waiting can be awoken. If that thread then waits again it will not continue until the condition variable is re-notified. More...
 
void reset () throw (exception_t)
 
void signal () throw (exception_t)
 
void wait (int64_t timeout=0) throw (exception_t)
 
virtual ~event () noexcept
 
virtual ~event ()=default
 

Static Public Member Functions

static void pass (::HRESULT test) throw (exception_t)
 
static void pass (unsigned long test) throw (exception_t)
 
static void pass (::BOOL test) throw (exception_t)
 specialization for standard windows API BOOL return type More...
 
static void pass (::HANDLE test) throw (exception_t)
 specialization for test validy of windows HANDLE type More...
 
static void pass (::HWND test) throw (exception_t)
 specialization for test validy of windows HWND type - which is of course different from HANDLE More...
 
static void pass (::ATOM test) throw (exception_t)
 specialization for standard windows API ATOM return type More...
 
template<>
static void pass (unsigned long test) throw(::HRESULT)
 
template<>
static void pass (::BOOL test) throw(::HRESULT)
 
template<>
static void pass (::HANDLE test) throw(::HRESULT)
 
template<>
static void pass (::HWND test) throw(::HRESULT)
 
template<>
static void pass (::ATOM test) throw(::HRESULT)
 
template<class return_t >
static void pass (return_t value) throw (exception_t)
 
template<class return_t >
static void pass (bool test, return_t value) throw (exception_t)
 
static void pass_strict (::LONG test) throw (exception_t)
 

Constructor & Destructor Documentation

template<typename exception_t >
virtual dx::event< dx::kernel, exception_t >::~event ( )
default
template<typename exception_t >
dx::event< dx::kernel, exception_t >::event ( )
throw (exception_t
)
inline
template<typename exception_t >
dx::event< dx::kernel, exception_t >::event ( bool  signalled)
throw (exception_t
)
inline
template<typename exception_t >
virtual dx::event< dx::kernel, exception_t >::~event ( )
inlinenoexcept

Member Function Documentation

template<typename exception_t >
virtual void dx::event< dx::kernel, exception_t >::launch ( )
throw (exception_t
)
inlinevirtual

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

Reimplemented in dx::midi::stream< io_t, bus_t, stream_desc_t, exception_t, device_t >.

template<typename exception_t >
dx::event< dx::kernel, exception_t >::operator const os_event ( ) const
inlinenoexcept
template<typename exception_t >
dx::event< dx::kernel, exception_t >::operator os_event ( )
inlinenoexcept
template<typename exception_t >
dx::event< dx::kernel, exception_t >::operator os_event ( )
inlinenoexcept
template<class exception_t = os_result>
static void dx::exception< exception_t >::pass ( ::HRESULT  test)
throw (exception_t
)
inlinestaticinherited
template<class exception_t = os_result>
static void dx::exception< exception_t >::pass ( unsigned long  test)
throw (exception_t
)
inlinestaticinherited
template<class exception_t = os_result>
static void dx::exception< exception_t >::pass ( ::BOOL  test)
throw (exception_t
)
inlinestaticinherited

specialization for standard windows API BOOL return type

template<class exception_t = os_result>
static void dx::exception< exception_t >::pass ( ::HANDLE  test)
throw (exception_t
)
inlinestaticinherited

specialization for test validy of windows HANDLE type

template<class exception_t = os_result>
static void dx::exception< exception_t >::pass ( ::HWND  test)
throw (exception_t
)
inlinestaticinherited

specialization for test validy of windows HWND type - which is of course different from HANDLE

template<class exception_t = os_result>
static void dx::exception< exception_t >::pass ( ::ATOM  test)
throw (exception_t
)
inlinestaticinherited

specialization for standard windows API ATOM return type

template<>
static void dx::exception<::HRESULT >::pass ( unsigned long  test)
throw(::HRESULT
)
staticinherited
template<>
static void dx::exception<::HRESULT >::pass ( ::BOOL  test)
throw(::HRESULT
)
staticinherited
template<>
static void dx::exception<::HRESULT >::pass ( ::HANDLE  test)
throw(::HRESULT
)
staticinherited
template<>
static void dx::exception<::HRESULT >::pass ( ::HWND  test)
throw(::HRESULT
)
staticinherited
template<>
static void dx::exception<::HRESULT >::pass ( ::ATOM  test)
throw(::HRESULT
)
staticinherited
template<class exception_t = os_result>
template<class return_t >
static void dx::exception< exception_t >::pass ( return_t  value)
throw (exception_t
)
inlinestaticinherited

+ Here is the caller graph for this function:

template<class exception_t = os_result>
template<class return_t >
static void dx::exception< exception_t >::pass ( bool  test,
return_t  value 
)
throw (exception_t
)
inlinestaticinherited
template<class exception_t = os_result>
static void dx::exception< exception_t >::pass_strict ( ::LONG  test)
throw (exception_t
)
inlinestaticinherited

+ Here is the caller graph for this function:

template<typename exception_t >
void dx::event< dx::kernel, exception_t >::reset ( )
inline

for Windows compatibility only Notifying event<dx::user> doesn't change its state so there is nothing to reset. When it is notified only a thread already waiting can be awoken. If that thread then waits again it will not continue until the condition variable is re-notified.

template<typename exception_t >
void dx::event< dx::kernel, exception_t >::reset ( )
throw (exception_t
)
inline
template<typename exception_t >
void dx::event< dx::kernel, exception_t >::signal ( )
throw (exception_t
)
inline
template<typename exception_t >
void dx::event< dx::kernel, exception_t >::wait ( int64_t  timeout = 0)
throw (exception_t
)
inline

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

(c) copyright 2009 dynamic acoustics e.U. generated on Tue Dec 4 2018

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.