dxd - dynax driver framework 2.6.0d160
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx::promoted< value_t >::preference< preference_t, preference_value_t > Class Template Reference

#include <dx_value.h>

+ Inheritance diagram for dx::promoted< value_t >::preference< preference_t, preference_value_t >:
+ Collaboration diagram for dx::promoted< value_t >::preference< preference_t, preference_value_t >:

Public Types

typedef std::unique_lock< mutex_tlock_t
 
typedef std::mutex mutex_t
 

Public Member Functions

 catch (...)
 
 catch (...)
 
 catch (...)
 
 catch (const dx::exception &__dx_exception)
 
 catch (const dx::exception &__dx_exception)
 
 catch (const dx::exception &__dx_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
 
 operator const value_t & () try
 
promotedoperator++ () noexcept
 
value_t operator++ (int) noexcept
 
promotedoperator+= (const value_t &value) noexcept
 
promotedoperator-- () noexcept
 
value_t operator-- (int) noexcept
 
promotedoperator-= (const value_t &value) noexcept
 
const value_t & operator-> ()
 
bool operator== (const value_t &value) noexcept
 
bool operator== (promoted &promoted) noexcept
 
 preference (const preference_t &_preference, decltype(listen)&&listen, decltype(dflt)&&dflt=[]() ->value_t{return {};}, decltype(align)&&align=[](const value_t &value, const value_t &){return value;}, decltype(preference_value)&&preference_value=[](const value_t &value){return static_cast< const preference_value_t & >(value);}, decltype(value)&&value=[](const preference_value_t &preference_value){value_t value;return value=preference_value;})
 
 preference (const preference_t &_preference, decltype(listen)::mapped_type &&listen, decltype(dflt)&&dflt=[]() ->value_t{return {};}, decltype(align)&&align=[](const value_t &value, const value_t &){return value;}, decltype(preference_value)&&preference_value=[](const value_t &value){return static_cast< const preference_value_t & >(value);}, decltype(value)&&value=[](const preference_value_t &preference_value){value_t value;return value=preference_value;})
 
 preference (const preference_t &preference, decltype(dflt)&&dflt=[]() ->value_t{return {};}, decltype(align)&&align=[](const value_t &value, const value_t &){return value;}, decltype(preference_value)&&preference_value=[](const value_t &value){return static_cast< const preference_value_t & >(value);}, decltype(value)&&value=[](const preference_value_t &preference_value){value_t value;return value=preference_value;})
 
 preference (preference_t &&_preference, decltype(listen)&&listen, decltype(dflt)&&dflt=[]() ->value_t{return {};}, decltype(align)&&align=[](const value_t &value, const value_t &){return value;}, decltype(preference_value)&&preference_value=[](const value_t &value){return static_cast< const preference_value_t & >(value);}, decltype(value)&&value=[](const preference_value_t &preference_value){value_t value;return value=preference_value;})
 
 preference (preference_t &&_preference, decltype(listen)::mapped_type &&listen, decltype(dflt)&&dflt=[]() ->value_t{return {};}, decltype(align)&&align=[](const value_t &value, const value_t &){return value;}, decltype(preference_value)&&preference_value=[](const value_t &value){return static_cast< const preference_value_t & >(value);}, decltype(value)&&value=[](const preference_value_t &preference_value){value_t value;return value=preference_value;})
 
 preference (preference_t &&preference, decltype(dflt)&&dflt=[]() ->value_t{return {};}, decltype(align)&&align=[](const value_t &value, const value_t &){return value;}, decltype(preference_value)&&preference_value=[](const value_t &value){return static_cast< const preference_value_t & >(value);}, decltype(value)&&value=[](const preference_value_t &preference_value){value_t value;return value=preference_value;})
 

Public Attributes

std::function< value_t(const value_t &, const value_t &) align )
 align(value, current_value) to closest valid value; be aware that current might not be valid (check promoted::initiazed!)
 
preference_t backing_store
 
std::function< value_t()> dflt
 provide default value
 
bool initialized {}
 
std::map< void *, std::function< void(const value_t &)> listen )
 
std::function< preference_value_t(const value_t &) preference_value )
 convert promoted value type into preference_value type for storing into preference
 
std::function< void(lock_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
 
std::function< value_t(const preference_value_t &) value )
 convert preference_value - as read from preference - to promoted value type
 

Member Typedef Documentation

◆ lock_t

template<typename value_t >
typedef std::unique_lock<mutex_t> dx::promoted< value_t >::lock_t
inherited

◆ mutex_t

template<typename value_t >
typedef std::mutex dx::promoted< value_t >::mutex_t
inherited

Constructor & Destructor Documentation

◆ preference() [1/6]

template<typename value_t >
template<typename preference_t , typename preference_value_t >
dx::promoted< value_t >::preference< preference_t, preference_value_t >::preference ( preference_t && preference,
decltype(dflt)&& dflt = []()->value_t{return {};},
decltype(align)&& align = [](const value_t& value, const value_t&){return value;},
decltype(preference_value)&& preference_value = [](const value_t& value){return static_cast<const preference_value_t&>(value);},
decltype(value)&& value = [](const preference_value_t& preference_value){value_t value; return valuepreference_value;} )
inline

◆ preference() [2/6]

template<typename value_t >
template<typename preference_t , typename preference_value_t >
dx::promoted< value_t >::preference< preference_t, preference_value_t >::preference ( const preference_t & preference,
decltype(dflt)&& dflt = []()->value_t{return {};},
decltype(align)&& align = [](const value_t& value, const value_t&){return value;},
decltype(preference_value)&& preference_value = [](const value_t& value){return static_cast<const preference_value_t&>(value);},
decltype(value)&& value = [](const preference_value_t& preference_value){value_t value; return valuepreference_value;} )
inline

◆ preference() [3/6]

template<typename value_t >
template<typename preference_t , typename preference_value_t >
dx::promoted< value_t >::preference< preference_t, preference_value_t >::preference ( preference_t && _preference,
decltype(listen)&& listen,
decltype(dflt)&& dflt = []()->value_t{return {};},
decltype(align)&& align = [](const value_t& value, const value_t&){return value;},
decltype(preference_value)&& preference_value = [](const value_t& value){return static_cast<const preference_value_t&>(value);},
decltype(value)&& value = [](const preference_value_t& preference_value){value_t value; return valuepreference_value;} )
inline

◆ preference() [4/6]

template<typename value_t >
template<typename preference_t , typename preference_value_t >
dx::promoted< value_t >::preference< preference_t, preference_value_t >::preference ( preference_t && _preference,
decltype(listen)::mapped_type && listen,
decltype(dflt)&& dflt = []()->value_t{return {};},
decltype(align)&& align = [](const value_t& value, const value_t&){return value;},
decltype(preference_value)&& preference_value = [](const value_t& value){return static_cast<const preference_value_t&>(value);},
decltype(value)&& value = [](const preference_value_t& preference_value){value_t value; return valuepreference_value;} )
inline

◆ preference() [5/6]

template<typename value_t >
template<typename preference_t , typename preference_value_t >
dx::promoted< value_t >::preference< preference_t, preference_value_t >::preference ( const preference_t & _preference,
decltype(listen)&& listen,
decltype(dflt)&& dflt = []()->value_t{return {};},
decltype(align)&& align = [](const value_t& value, const value_t&){return value;},
decltype(preference_value)&& preference_value = [](const value_t& value){return static_cast<const preference_value_t&>(value);},
decltype(value)&& value = [](const preference_value_t& preference_value){value_t value; return valuepreference_value;} )
inline

◆ preference() [6/6]

template<typename value_t >
template<typename preference_t , typename preference_value_t >
dx::promoted< value_t >::preference< preference_t, preference_value_t >::preference ( const preference_t & _preference,
decltype(listen)::mapped_type && listen,
decltype(dflt)&& dflt = []()->value_t{return {};},
decltype(align)&& align = [](const value_t& value, const value_t&){return value;},
decltype(preference_value)&& preference_value = [](const value_t& value){return static_cast<const preference_value_t&>(value);},
decltype(value)&& value = [](const preference_value_t& preference_value){value_t value; return valuepreference_value;} )
inline

Member Function Documentation

◆ catch() [1/9]

template<typename value_t >
dx::promoted< value_t >::catch ( ...)
inlineinherited

◆ catch() [2/9]

template<typename value_t >
dx::promoted< value_t >::catch ( ...)
inlineinherited

◆ catch() [3/9]

template<typename value_t >
dx::promoted< value_t >::catch ( ...)
inlineinherited

◆ catch() [4/9]

template<typename value_t >
dx::promoted< value_t >::catch ( const dx::exception & __dx_exception)
inlineinherited

◆ catch() [5/9]

template<typename value_t >
dx::promoted< value_t >::catch ( const dx::exception & __dx_exception)
inlineinherited

◆ catch() [6/9]

template<typename value_t >
dx::promoted< value_t >::catch ( const dx::exception & __dx_exception)
inlineinherited

◆ catch() [7/9]

template<typename value_t >
dx::promoted< value_t >::catch ( const std::exception & __std_exception)
inlineinherited

◆ catch() [8/9]

template<typename value_t >
dx::promoted< value_t >::catch ( const std::exception & __std_exception)
inlineinherited

◆ catch() [9/9]

template<typename value_t >
dx::promoted< value_t >::catch ( const std::exception & __std_exception)
inlineinherited

◆ commit()

template<typename value_t >
void dx::promoted< value_t >::commit ( lock_t && lock,
const value_t & value )
inlineinherited
+ Here is the caller graph for this function:

◆ operator const value_t &()

template<typename value_t >
dx::promoted< value_t >::operator const value_t & ( )
inlineinherited

◆ operator++() [1/2]

template<typename value_t >
promoted & dx::promoted< value_t >::operator++ ( )
inlinenoexceptinherited
+ Here is the call graph for this function:

◆ operator++() [2/2]

template<typename value_t >
value_t dx::promoted< value_t >::operator++ ( int )
inlinenoexceptinherited
+ Here is the call graph for this function:

◆ operator+=()

template<typename value_t >
promoted & dx::promoted< value_t >::operator+= ( const value_t & value)
inlinenoexceptinherited
+ Here is the call graph for this function:

◆ operator--() [1/2]

template<typename value_t >
promoted & dx::promoted< value_t >::operator-- ( )
inlinenoexceptinherited
+ Here is the call graph for this function:

◆ operator--() [2/2]

template<typename value_t >
value_t dx::promoted< value_t >::operator-- ( int )
inlinenoexceptinherited
+ Here is the call graph for this function:

◆ operator-=()

template<typename value_t >
promoted & dx::promoted< value_t >::operator-= ( const value_t & value)
inlinenoexceptinherited
+ Here is the call graph for this function:

◆ operator->()

template<typename value_t >
const value_t & dx::promoted< value_t >::operator-> ( )
inlineinherited

◆ operator==() [1/2]

template<typename value_t >
bool dx::promoted< value_t >::operator== ( const value_t & value)
inlinenoexceptinherited
+ Here is the caller graph for this function:

◆ operator==() [2/2]

template<typename value_t >
bool dx::promoted< value_t >::operator== ( promoted< value_t > & promoted)
inlinenoexceptinherited
+ Here is the call graph for this function:

Member Data Documentation

◆ align

template<typename value_t >
template<typename preference_t , typename preference_value_t >
std::function<value_t(const value_t&, const value_t&) dx::promoted< value_t >::preference< preference_t, preference_value_t >::align)

align(value, current_value) to closest valid value; be aware that current might not be valid (check promoted::initiazed!)

◆ backing_store

template<typename value_t >
template<typename preference_t , typename preference_value_t >
preference_t dx::promoted< value_t >::preference< preference_t, preference_value_t >::backing_store

◆ dflt

template<typename value_t >
template<typename preference_t , typename preference_value_t >
std::function<value_t()> dx::promoted< value_t >::preference< preference_t, preference_value_t >::dflt

provide default value

◆ initialized

template<typename value_t >
bool dx::promoted< value_t >::initialized {}
inherited

◆ listen

template<typename value_t >
std::map<void*, std::function<void(const value_t&)> dx::promoted< value_t >::listen)
inherited

◆ preference_value

template<typename value_t >
template<typename preference_t , typename preference_value_t >
std::function<preference_value_t(const value_t&) dx::promoted< value_t >::preference< preference_t, preference_value_t >::preference_value)

convert promoted value type into preference_value type for storing into preference

◆ server

template<typename value_t >
std::function<void(lock_t&&, const value_t&) dx::promoted< value_t >::server) {}
inherited

\ indicate the value is in transition - does not have the new value yet

server: handle synchronous and asynchronous value updates and initialization it needs to handle these case: not initialized and not in transation: initialze and commit the value not initialized and in transation: 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

◆ transient

template<typename value_t >
bool dx::promoted< value_t >::transient {}
inherited

\ indicate the value has been initialized

◆ value

template<typename value_t >
template<typename preference_t , typename preference_value_t >
std::function<value_t(const preference_value_t&) dx::promoted< value_t >::preference< preference_t, preference_value_t >::value)

convert preference_value - as read from preference - to promoted value type


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

(c) copyright 2009 dynamic acoustics e.U. generated on Mon Sep 8 2025

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.