|
Live Cells C++
Reactive Programming for C++
|
A dynamic_compute_cell_state that only notifies the observers of the cell if the new value of the cell is not equal to the previous value.
More...
#include <dynamic_compute_cell.hpp>


Additional Inherited Members | |
Public Types inherited from live_cells::compute_cell_state< dynamic_compute_state< F > > | |
| 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< dynamic_compute_cell_state< F > > | |
| void | will_update (const key_ref &k) override |
| void | update (const key_ref &k, bool changed) override |
Public Member Functions inherited from live_cells::dynamic_compute_cell_state< F > | |
| dynamic_compute_cell_state (key_ref key, F compute) | |
| Create a dynamic computed cell state, with a given value computation function. | |
Public Member Functions inherited from live_cells::compute_cell_state< dynamic_compute_state< F > > | |
| 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 Member Functions inherited from live_cells::dynamic_compute_cell_state< F > | |
| 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< dynamic_compute_state< F > > | |
| 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< dynamic_compute_state< F > > | |
| 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 dynamic_compute_cell_state that only notifies the observers of the cell if the new value of the cell is not equal to the previous value.