30 #ifndef _GranOO_libCore_Mapped_hpp_
31 #define _GranOO_libCore_Mapped_hpp_
36 #include <boost/archive/text_oarchive.hpp>
37 #include <boost/archive/text_iarchive.hpp>
44 #define GRANOO_MAPPED_GET(TYPE) \
46 static TYPE& get(const std::string& id) {return Core::Mapped<TYPE >::get(id);} \
47 static const TYPE& get_const(const std::string& id) {return Core::Mapped<TYPE >::get_const(id);} \
48 static bool exist(const std::string& id) {return Core::Mapped<TYPE >::exist(id);}
58 typedef std::map<const std::string, T* >
Map;
59 static T&
get(
const std::string&
id);
61 static bool exist(
const std::string&
id);
76 template<
class Archive>
void save(Archive&,
const unsigned int )
const;
77 template<
class Archive>
void load(Archive&,
const unsigned int);
88 static Map* mymap = 0;
98 T* me =
static_cast<T*
>(
this);
116 get_map().erase(_ID);
124 return *get_map()[id];
132 return *get_map()[id];
138 return (get_map().count(
id) == 1);
153 get_map().erase (_ID);
157 get_map()[_ID] =
this;
161 template<
class Archive>
168 template<
class Archive>
172 T* me =
static_cast<T*
>(
this);
#define SafeModeAssert(condition, message)
Definition: Macro.hpp:47
Definition: Mapped.hpp:56
static const T & get_const(const std::string &id)
Definition: Mapped.hpp:129
const std::string & get_ID() const
Definition: Mapped.hpp:143
void set_ID(const std::string &)
Definition: Mapped.hpp:149
std::map< const std::string, T * > Map
Definition: Mapped.hpp:58
virtual ~Mapped()
Definition: Mapped.hpp:113
void load(Archive &, const unsigned int)
Definition: Mapped.hpp:170
static Map & get_map()
Definition: Mapped.hpp:87
BOOST_SERIALIZATION_SPLIT_MEMBER()
static bool exist(const std::string &id)
Definition: Mapped.hpp:137
static T & get(const std::string &id)
Definition: Mapped.hpp:121
friend class boost::serialization::access
Definition: Mapped.hpp:75
void save(Archive &, const unsigned int) const
Definition: Mapped.hpp:163
Mapped(const std::string &id)
Definition: Mapped.hpp:96
std::string _ID
Definition: Mapped.hpp:81
Mapped()
Definition: Mapped.hpp:107
Definition: Common.hpp:198
static std::string quote(const std::string &str)
Definition: String.cpp:73