8 #ifndef IMPKERNEL_SCORE_STATE_H
9 #define IMPKERNEL_SCORE_STATE_H
11 #include <IMP/kernel_config.h>
21 #include <cereal/access.hpp>
22 #include <cereal/types/base_class.hpp>
24 IMPKERNEL_BEGIN_NAMESPACE
60 friend class cereal::access;
62 template<
class Archive>
void serialize(Archive &ar) {
63 ar(cereal::base_class<ModelObject>(
this), can_skip_);
64 if (std::is_base_of<cereal::detail::InputArchiveBase, Archive>::value) {
83 void before_evaluate();
86 void after_evaluate(DerivativeAccumulator *accpt);
97 bool get_has_update_order()
const {
return update_order_ != -1; }
108 virtual void do_before_evaluate() = 0;
115 virtual void do_after_evaluate(DerivativeAccumulator *accpt) = 0;
130 IMPKERNEL_END_NAMESPACE
Control display of deprecation information.
Macros to help with reference counting.
void set_can_skip(bool can_skip)
Set whether we can skip during model evaluation if appropriate.
Class for adding derivatives from restraints to the model.
ScoreStatesTemp get_update_order(std::set< ScoreState * > input)
#define IMP_REF_COUNTED_DESTRUCTOR(Name)
Set up destructor for a ref counted object.
Class for storing model, its restraints, constraints, and particles.
Base class for objects in a Model that depend on other objects.
bool get_can_skip() const
Get whether this state can be skipped if its inputs/outputs didn't move.
ScoreStates maintain invariants in the Model.
virtual void handle_set_has_required_score_states(bool)
A weak pointer to an Object or RefCountedObject.
Various general useful functions for IMP.
Base class for objects in a Model that depend on other objects.
Helper macros for throwing and handling exceptions.
IMP::Vector< IMP::WeakPointer< ScoreState > > ScoreStatesTemp
ScoreStatesTemp get_update_order(ScoreStatesTemp input)