Live Cells C++
Reactive Programming for C++
|
A store_cell_state
that only notifies the observers of the cell if the new value of the cell is not equal to its previous value.
More...
#include <store_cell.hpp>
Additional Inherited Members | |
Public Types inherited from live_cells::compute_cell_state< store_cell_compute_state< C > > | |
typedef std::invoke_result_t< C, observer::ref > | value_type |
Shorthand for computed value type. | |
Public Types inherited from live_cells::cell_state | |
typedef std::shared_ptr< cell_state > | ref |
Shared pointer to a cell_state . | |
Public Types inherited from live_cells::observer | |
typedef std::shared_ptr< observer > | ref |
Shared pointer to an observer . | |
Public Member Functions inherited from live_cells::changes_only_cell_state< store_cell_state< C > > | |
void | will_update (const key_ref &k) override |
void | update (const key_ref &k, bool changed) override |
Public Member Functions inherited from live_cells::store_cell_state< C > | |
store_cell_state (key_ref k, C arg) | |
Create a store_cell state. | |
Public Member Functions inherited from live_cells::compute_cell_state< store_cell_compute_state< C > > | |
compute_cell_state (key_ref k, Args &&... args) | |
Create a computed cell state. | |
value_type | value () |
Retrieve the latest cached value. | |
Public Member Functions inherited from live_cells::cell_state | |
cell_state (key_ref k) | |
Create a cell state with a given key. | |
cell_state & | operator= (const cell_state &other)=delete |
virtual void | add_observer (observer::ref o) |
Add an observer to the cell's set of observers. | |
virtual void | remove_observer (observer::ref o) |
Remove an observer from the cell's set of observers. | |
virtual void | notify_will_update () |
Notify the observers that the cell's value will change. | |
virtual void | notify_update (bool did_change=true) |
Notify the observers that the cell's value has changed. | |
Protected Types inherited from live_cells::store_cell_state< C > | |
typedef C::value_type | value_type |
Protected Member Functions inherited from live_cells::store_cell_state< C > | |
void | init () override |
Called before the first observer is added. | |
void | pause () override |
Called after the last observer is removed. | |
Protected Member Functions inherited from live_cells::compute_cell_state< store_cell_compute_state< C > > | |
std::shared_ptr< observer > | observer_ptr () |
Get an observer::ref for this, that can be passed to add_observer and remove_observer of Cell . | |
void | will_update (const key_ref &k) override |
Notifies this observer that the value of the Cell identified by k is going to change. | |
void | update (const key_ref &k, bool changed) override |
Notifies this observer that the value of the Cell identified by k has changed. | |
Protected Member Functions inherited from live_cells::cell_state | |
bool | is_active () const |
Does the cell have at least one observer? | |
Protected Member Functions inherited from live_cells::observer_cell_state | |
void | init_observer_state () |
Initialize the cell observation state. | |
void | pause_observer_state () |
Pause the cell observation state. | |
void | handle_will_update (const std::invocable auto ¬ify_will_update) |
Handle a observer::will_update call. | |
void | handle_will_update (const std::invocable auto &pre_update, const std::invocable auto ¬ify_will_update) |
Handle a observer::will_update call. | |
void | handle_update (bool changed, const std::invocable< bool > auto ¬ify_update) |
Handle an observer::update call. | |
void | handle_update (bool changed, const std::invocable auto &did_change, const std::invocable< bool > auto ¬ify_update, const std::invocable auto &post_update) |
Handle an observer::update call. | |
Protected Attributes inherited from live_cells::compute_cell_state< store_cell_compute_state< C > > | |
C | compute |
Compute value function. | |
Protected Attributes inherited from live_cells::cell_state | |
key_ref | key_ |
Key identifying the cell corresponding to this state. | |
std::unordered_map< observer::ref, std::size_t > | observers |
The set of observers observing changes to the values in the cell corresponding to this state. | |
Protected Attributes inherited from live_cells::observer_cell_state | |
bool | stale = true |
Does the value have to be recomputed? | |
bool | updating = false |
Are the argument cells in the process of updating their values? | |
A store_cell_state
that only notifies the observers of the cell if the new value of the cell is not equal to its previous value.