36 #ifndef CELLPROPERTYREGISTRY_HPP_
37 #define CELLPROPERTYREGISTRY_HPP_
39 #include <boost/shared_ptr.hpp>
42 #include "AbstractCellProperty.hpp"
45 #include <boost/serialization/shared_ptr.hpp>
46 #include <boost/serialization/vector.hpp>
61 template<
class SUBCLASS>
62 boost::shared_ptr<AbstractCellProperty>
Get();
98 void SpecifyOrdering(
const std::vector<boost::shared_ptr<AbstractCellProperty> >& rOrdering);
144 template<
class Archive>
145 void serialize(Archive & archive,
const unsigned int version)
152 template<
class SUBCLASS>
155 boost::shared_ptr<AbstractCellProperty> p_property;
167 p_property.reset(
new SUBCLASS);
std::vector< boost::shared_ptr< AbstractCellProperty > > mCellProperties
friend class boost::serialization::access
static CellPropertyRegistry * mpInstance
CellPropertyRegistry * TakeOwnership()
void SpecifyOrdering(const std::vector< boost::shared_ptr< AbstractCellProperty > > &rOrdering)
void serialize(Archive &archive, const unsigned int version)
static CellPropertyRegistry * Instance()
bool mOrderingHasBeenSpecified
boost::shared_ptr< AbstractCellProperty > Get()
CellPropertyRegistry & operator=(const CellPropertyRegistry &)
bool HasOrderingBeenSpecified()
const std::vector< boost::shared_ptr< AbstractCellProperty > > & rGetAllCellProperties()