|
HikoGUI
A low latency retained GUI
|
#include <ttauri/observable.hpp>
Public Types | |
| using | value_type = T |
| using | atomic_value_type = std::conditional_t<is_atomic, std::atomic<value_type>, value_type> |
| using | owner_type = observable<value_type> |
Public Member Functions | |
| observable_impl (observable_impl const &)=delete | |
| observable_impl (observable_impl &&)=delete | |
| observable_impl & | operator= (observable_impl const &)=delete |
| observable_impl & | operator= (observable_impl &&)=delete |
| observable_impl (value_type const &value) noexcept | |
| observable_impl (value_type &&value) noexcept | |
| observable_proxy< value_type, false > | get () noexcept |
| observable_proxy< value_type, true > | cget () noexcept |
| void | add_owner (owner_type &owner) noexcept |
| Add an observer as one of the owners of the shared-value. | |
| void | remove_owner (owner_type &owner) noexcept |
| Remove an observer as one of the owners of the shared-value. | |
| void | notify_owners () const noexcept |
| void | reseat_owners (std::shared_ptr< observable_impl > const &new_impl) noexcept |
Data Fields | |
| atomic_value_type | value |
| std::vector< owner_type * > | owners |
| unfair_mutex | mutex |
| The mutex is used to serialize state to the owners list and non-atomic value. | |
Static Public Attributes | |
| static constexpr bool | is_atomic = std::is_scalar_v<T> |
The shared value, shared between observers.
|
inlinenoexcept |
Add an observer as one of the owners of the shared-value.
| owner | A reference to observer |
|
inlinenoexcept |
Remove an observer as one of the owners of the shared-value.
| owner | A reference to observer |
|
mutable |
The mutex is used to serialize state to the owners list and non-atomic value.