Live Cells C++
Reactive Programming for C++
|
Maintains the state of a previous_value_cell
.
More...
#include <previous_value_cell.hpp>
Public Member Functions | |
previous_value_cell_state (key_ref k, C cell) | |
Create a previous_value_cell state. | |
value_type | value () |
Get the stored previous 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 Member Functions | |
void | init () override |
Called before the first observer is added. | |
void | pause () override |
Called after the last observer is removed. | |
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. | |
Additional Inherited Members | |
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 . | |
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? | |
Maintains the state of a previous_value_cell
.
|
inline |
Create a previous_value_cell
state.
k | Key identifying the cell |
cell | The argument cell |
|
inlineoverrideprotectedvirtual |
Called before the first observer is added.
Subclasses should override this method to include initialization logic specific to this cell state.
Reimplemented from live_cells::cell_state.
|
inlineoverrideprotectedvirtual |
Called after the last observer is removed.
Subclasses should override this method to include cleanup logic specific to this cell state.
init()
should be removed in this method. Reimplemented from live_cells::cell_state.
|
inlineoverrideprotectedvirtual |
Notifies this observer that the value of the Cell
identified by k has changed.
k | identifying observable |
did_change | true if the value of the cell may have changed, false if it is know that it hasn't changed. |
Implements live_cells::observer.
|
inline |
Get the stored previous value.
|
inlineoverrideprotectedvirtual |
Notifies this observer that the value of the Cell
identified by k is going to change.
k | identifying observable |
Implements live_cells::observer.