8 #ifndef IMPKERNEL_MODEL_OBJECT_H
9 #define IMPKERNEL_MODEL_OBJECT_H
11 #include <IMP/kernel_config.h>
15 #include <cereal/access.hpp>
16 #include <cereal/types/base_class.hpp>
18 IMPKERNEL_BEGIN_NAMESPACE
33 friend class cereal::access;
35 template<
class Archive>
void serialize(Archive &ar) {
36 ar(cereal::base_class<Object>(
this));
37 if (std::is_base_of<cereal::detail::OutputArchiveBase, Archive>::value) {
38 uint32_t model_id = get_model_id();
43 set_model_from_id(model_id);
47 void set_model_from_id(uint32_t model_id);
48 uint32_t get_model_id()
const;
52 void set_model(
Model *m);
55 #if !defined(IMP_DOXYGEN) && !defined(SWIG)
56 void validate_inputs()
const;
57 void validate_outputs()
const;
64 Model *get_model()
const {
return model_; }
76 bool get_has_dependencies()
const;
79 void set_has_dependencies(
bool tf);
82 void set_has_required_score_states(
bool tf);
85 bool get_has_required_score_states()
const;
107 IMPKERNEL_END_NAMESPACE
Macros to help with reference counting.
Smart pointer to Object-derived classes that does not refcount.
A more IMP-like version of the std::vector.
Class for storing model, its restraints, constraints, and particles.
Base class for objects in a Model that depend on other objects.
Common base class for heavy weight IMP objects.
Various general useful macros for IMP.
virtual void handle_set_has_required_score_states(bool)