34 class Updater :
public std::enable_shared_from_this<Updater> {
150 const ElPtr &elem,
const int elementid,
Json &data);
164 const int elementid);
virtual void compute_body(const ElPtr &elem, Json &data)=0
Managing computation to update Element::data.
ShPtr< Element > ElPtr
An alias for a shared pointer of Element class.
void remove_from_skippable_elementids(const int elementid)
Remove Element::elementid from skippable_elementids.
This file includes all the header files of subclasses of Generator class.
Updater is an abstract class to update data held by an Element object.
std::function< bool(const Json &)> JsonToBoolFunc
An alias for a function accepts a Json object and returns a bool.
const ShPtr< Generator > & get_ext_generator()
Get ext_generator of this object.
nlohmann::json Json
Json is an alias for nlohmann::json.
bool check_compute_request_for(const int elementid)
std::unordered_set< T > Set
Set is an alias for unordered set (same as set in Python).
Set< int > skippable_elementids
ShPtr< Generator > ext_generator
virtual void compute_impl(Json &data, JsonToVoidFunc check_required_keys, JsonToBoolFunc check_optional_keys)=0
Implementation of computation updating Element::data.
Updater()=default
Constructor of Updater class.
std::function< void(const Json &)> JsonToVoidFunc
An alias for a function accepts a Json object.
std::shared_ptr< T > ShPtr
ShPtr is an alias for shared pointer.
void compute(const ElPtr &elem, const int elementid, Json &data)
Managing computation to update Element::data.
virtual void compute_common(const ElPtr &elem, Json &data)
Common part of compute_body.