9 #ifndef IMPKERNEL_CONTAINER_BASE_H
10 #define IMPKERNEL_CONTAINER_BASE_H
12 #include <IMP/kernel_config.h>
20 #include <cereal/access.hpp>
21 #include <cereal/types/base_class.hpp>
23 IMPKERNEL_BEGIN_NAMESPACE
47 #if IMP_HAS_CHECKS >= IMP_INTERNAL
52 friend class cereal::access;
54 template<
class Archive>
void serialize(Archive &ar) {
55 #if IMP_HAS_CHECKS < IMP_INTERNAL
57 bool readable_ =
true, writeable_ =
true;
59 ar(cereal::base_class<ModelObject>(
this), readable_, writeable_);
66 virtual std::size_t do_get_contents_hash()
const = 0;
90 #if !defined(IMP_DOXYGEN)
92 void validate_readable()
const;
93 void validate_writable()
const;
94 void set_is_readable(
bool tf);
95 void set_is_writable(
bool tf);
101 IMPKERNEL_END_NAMESPACE
Macros to help with reference counting.
Functions and adaptors for dealing with particle indexes.
std::size_t get_contents_hash() const
ModelObjectsTemp do_get_outputs() const override
containers don't have outputs
#define IMP_REF_COUNTED_DESTRUCTOR(Name)
Set up destructor for a ref counted object.
virtual bool get_is_decomposable() const
IMP::Vector< IMP::WeakPointer< ModelObject > > ModelObjectsTemp
Class for storing model, its restraints, constraints, and particles.
Base class for objects in a Model that depend on other objects.
Various general useful macros for IMP.
A weak pointer to an Object or RefCountedObject.
Base class for objects in a Model that depend on other objects.
A shared base class to help in debugging and things.
Abstract class for containers of particles.