8 #ifndef IMPKERNEL_OPTIMIZER_STATE_H
9 #define IMPKERNEL_OPTIMIZER_STATE_H
11 #include <IMP/kernel_config.h>
15 #include <cereal/access.hpp>
16 #include <cereal/types/base_class.hpp>
19 IMPKERNEL_BEGIN_NAMESPACE
47 unsigned int period_, call_number_, update_number_;
49 friend class cereal::access;
51 template<
class Archive>
void serialize(Archive &ar) {
52 ar(cereal::base_class<ModelObject>(
this), period_, call_number_,
53 update_number_, is_optimizing_);
54 if (std::is_base_of<cereal::detail::InputArchiveBase, Archive>::value) {
83 virtual void update();
91 virtual void set_is_optimizing(
bool);
95 "Must call set_optimizer before get_optimizer on state");
96 return optimizer_.get();
107 void set_period(
unsigned int p);
116 virtual void reset();
119 void update_always();
135 virtual void do_set_is_optimizing(
bool) {}
149 IMPKERNEL_END_NAMESPACE
unsigned int get_period() const
Get the periodicity of this state.
virtual void do_update(unsigned int)
#define IMP_REF_COUNTED_DESTRUCTOR(Name)
Set up destructor for a ref counted object.
A weak pointer to an Object or RefCountedObject.
A more IMP-like version of the std::vector.
#define IMP_INTERNAL_CHECK(expr, message)
An assertion to check for internal errors in IMP. An IMP::ErrorException will be thrown.
IMP::Vector< IMP::WeakPointer< ModelObject > > ModelObjectsTemp
Class for storing model, its restraints, constraints, and particles.
virtual ModelObjectsTemp do_get_outputs() const override
Base class for objects in a Model that depend on other objects.
Base class for all optimizers.
A weak pointer to an Object or RefCountedObject.
Base class for objects in a Model that depend on other objects.
virtual ModelObjectsTemp do_get_inputs() const override
void set_number_of_updates(unsigned int n)
Set the counter of number of times do_update() has been called.
A shared base class to help in debugging and things.
Shared optimizer state that is invoked upon commitment of new coordinates.
#define IMP_SWIG_FINAL
Have the compiler report an error if anything overrides this method.
unsigned int get_number_of_updates() const
Return the number of times do_update() has been called.