4#include "structure/design_pattern/spk_contract_provider.hpp"
8 template <
typename TType>
57 _value(
std::move(p_value))
65 operator TType()
const
74 const TType &
get()
const
83 void set(
const TType &p_value)
86 _onEditionContractProvider.trigger(_value);
93 void set(TType &&p_value)
95 _value = std::move(p_value);
96 _onEditionContractProvider.trigger(_value);
105 return _onEditionContractProvider;
114 return _onEditionContractProvider;
135 set(std::move(p_value));
147 _onEditionContractProvider.trigger(_value);
159 _onEditionContractProvider.trigger(_value);
171 _onEditionContractProvider.trigger(_value);
183 _onEditionContractProvider.trigger(_value);
195 _onEditionContractProvider.trigger(_value);
207 _onEditionContractProvider.trigger(_value);
219 _onEditionContractProvider.trigger(_value);
231 _onEditionContractProvider.trigger(_value);
243 _onEditionContractProvider.trigger(_value);
255 _onEditionContractProvider.trigger(_value);
ObservableValue & operator>>=(const TType &p_value)
Applies right shift in-place and notifies subscribers.
Definition spk_observable_value.hpp:252
ObservableValue & operator/=(const TType &p_value)
Divides by a value in-place and notifies subscribers.
Definition spk_observable_value.hpp:180
const TType & get() const
Returns the stored value.
Definition spk_observable_value.hpp:74
ObservableValue & operator+=(const TType &p_value)
Adds a value in-place and notifies subscribers.
Definition spk_observable_value.hpp:144
const spk::TContractProvider< TType > & onEdition() const
Returns the contract provider for mutation events.
Definition spk_observable_value.hpp:112
ObservableValue & operator&=(const TType &p_value)
Applies bitwise AND in-place and notifies subscribers.
Definition spk_observable_value.hpp:204
ObservableValue & operator*=(const TType &p_value)
Multiplies by a value in-place and notifies subscribers.
Definition spk_observable_value.hpp:168
spk::TContractProvider< TType >::Contract Contract
Contract type for subscriptions.
Definition spk_observable_value.hpp:27
void set(TType &&p_value)
Moves a value in and notifies subscribers.
Definition spk_observable_value.hpp:93
ObservableValue & operator<<=(const TType &p_value)
Applies left shift in-place and notifies subscribers.
Definition spk_observable_value.hpp:240
spk::TContractProvider< TType >::Job Job
Job type dispatched on updates.
Definition spk_observable_value.hpp:31
ObservableValue(const TType &p_value)
Builds an observable with an initial value copy.
Definition spk_observable_value.hpp:47
ObservableValue & operator|=(const TType &p_value)
Applies bitwise OR in-place and notifies subscribers.
Definition spk_observable_value.hpp:216
ObservableValue & operator%=(const TType &p_value)
Applies modulo in-place and notifies subscribers.
Definition spk_observable_value.hpp:192
ObservableValue & operator^=(const TType &p_value)
Applies bitwise XOR in-place and notifies subscribers.
Definition spk_observable_value.hpp:228
ObservableValue()=default
Builds an observable with a default-initialized value.
ObservableValue(TType &&p_value)
Builds an observable by moving the initial value.
Definition spk_observable_value.hpp:56
ObservableValue & operator=(const TType &p_value)
Assigns a new value and notifies subscribers.
Definition spk_observable_value.hpp:122
void set(const TType &p_value)
Sets the value and notifies subscribers.
Definition spk_observable_value.hpp:83
ObservableValue & operator-=(const TType &p_value)
Subtracts a value in-place and notifies subscribers.
Definition spk_observable_value.hpp:156
ObservableValue & operator=(TType &&p_value)
Moves a new value in and notifies subscribers.
Definition spk_observable_value.hpp:133
spk::TContractProvider< TType > & onEdition()
Returns the contract provider for mutation events.
Definition spk_observable_value.hpp:103
Handle to a subscribed job that can be resigned or triggered.
Definition spk_contract_provider.hpp:42
Publishes callbacks (contracts) and allows blocking, delaying, or triggering them with arguments.
Definition spk_contract_provider.hpp:29
typename Contract::Job Job
Alias to the subscribed callback signature.
Definition spk_contract_provider.hpp:267