|
dxd - dynax driver framework 2.6.0d200
cross platform open source driver development framework
|
#include <dx_service.h>
Inheritance diagram for dx::service::manager::promoted:
Collaboration diagram for dx::service::manager::promoted:Public Types | |
| typedef std::unique_lock< mutex_t > | lock_t |
| typedef std::mutex | mutex_t |
| typedef ::DWORD | value_t |
Public Member Functions | |
| virtual void | callback () |
| catch (...) | |
| catch (...) | |
| catch (...) | |
| catch (...) | |
| DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN | catch (const dx::exception &__dx_exception) |
| DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN | catch (const dx::exception &__dx_exception) |
| DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN | catch (const dx::exception &__dx_exception) |
| DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN | catch (const dx::exception &__dx_exception) |
| catch (const std::exception &__std_exception) | |
| catch (const std::exception &__std_exception) | |
| catch (const std::exception &__std_exception) | |
| catch (const std::exception &__std_exception) | |
| void | commit (lock_t &&lock, const value_t &value) try |
| dx_catchall_rethrow () void free() noexcept | |
| void | initialize (::SC_HANDLE handle, ::DWORD mask) try |
| DX_PRAGMA_IGNORE_RETURN_VALUE_END | operator const value_t & () try |
| operator os_event () noexcept | |
| promoted & | operator++ () noexcept |
| value_t | operator++ (int) noexcept |
| promoted & | operator+= (const value_t &value) noexcept |
| promoted & | operator-- () noexcept |
| value_t | operator-- (int) noexcept |
| promoted & | operator-= (const value_t &value) noexcept |
| const value_t & | operator-> () |
| DX_PRAGMA_IGNORE_RETURN_VALUE_END bool | operator== (const value_t &value) noexcept |
| bool | operator== (promoted &promoted) noexcept |
| promoted (class manager &manager, decltype(listen)&&listen={}) | |
| promoted (class manager &manager, decltype(listen)::mapped_type &&listen) | |
| DX_PRAGMA_IGNORE_RETURN_VALUE_END event & | reset (uint64_t count=0) override try |
| event & | signal (uint64_t count=1) override try |
| DX_PRAGMA_IGNORE_RETURN_VALUE_END uint64_t | signalled () const |
| DX_PRAGMA_IGNORE_RETURN_VALUE_END event & | wait (bool reset=false) override try |
| template<typename rep_t , typename period_t > | |
| DX_PRAGMA_IGNORE_RETURN_VALUE_END bool | wait (const std::chrono::duration< rep_t, period_t > &timeout, bool reset=false) try |
| ~promoted () | |
Public Attributes | |
| bool | initialized |
| std::map< void *, std::function< void(const value_t &)> | listen ) |
| bool | listening {} |
| std::function< void(lock_t &&, const value_t &, const value_t &) | server ) |
| \ indicate the value is in transition - does not have the new value yet | |
| bool | transient |
| \ indicate the value has been initialized | |
Static Public Attributes | |
| static constexpr auto | scope = kernel |
Protected Attributes | |
| value_t | value |
|
inherited |
|
inherited |
|
inherited |
|
inline |
|
inline |
|
inline |
Here is the call graph for this function: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.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlinenoexcept |
|
inline |
Here is the call graph for this function:
|
inlineinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlineinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlineoverridevirtualinherited |
Implements dx::abstract::event.
Implements dx::abstract::event.
|
inlineoverridevirtualinherited |
Implements dx::abstract::event.
|
inlineinherited |
wait with duration timeout returns true: signalled false: timed out
|
inherited |
|
inherited |
| bool dx::service::manager::promoted::listening {} |
|
inherited |
\ indicate the value is in transition - does not have the new value yet
server: handle synchronous and asynchronous value updates and initialization lock: lock promoted value from access during update value: new value (if in transition) current: current value to allow discarding update and reverting to current value if update is not permitted
it needs to handle these case: not initialized and not in transition: initialze and commit the value not initialized and in transition: if dependent on external settings initialize a temporary and compare it with the new value and update the external setting if required make sure to commit the new value so listeners get notified either synchronously or asynchronously by external notification initialized and in transition: update external settings if any and make sure to commit the new value so listeners get notified either synchronously or asynchronousl by external notification
server will not be called with this state: initialized and not in transation
|
inherited |
\ indicate the value has been initialized
|
protectedinherited |
| (c) copyright 2009 dynamic acoustics e.U. | generated on Thu Feb 19 2026 |