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)