|
| 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 |
|
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-> () |
|
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;}) |
|
|
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
|
|
template<typename value_t >
\ 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