68 virtual void FromInternal(
Extensible* container,
const std::string& value);
74 virtual void FromNetwork(
Extensible* container,
const std::string& value);
81 virtual std::string ToHuman(
const Extensible* container,
void* item)
const;
87 virtual std::string ToInternal(
const Extensible* container,
void* item)
const ;
94 virtual std::string ToNetwork(
const Extensible* container,
void* item)
const;
100 virtual void free(
Extensible* container,
void* item) = 0;
106 DEPRECATED_METHOD(virtual std::
string serialize(SerializeFormat format, const
Extensible* container,
void* item) const);
109 DEPRECATED_METHOD(virtual
void unserialize(SerializeFormat format,
Extensible* container, const std::
string& value));
116 void* get_raw(const
Extensible* container) const;
123 void* set_raw(
Extensible* container,
void* value);
157 unsigned int culled:1;
172 void FreeAllExtItems();
175 bool Deserialize(Data& data) CXX11_OVERRIDE;
178 bool Serialize(
Serializable::Data& data) CXX11_OVERRIDE;
184 typedef std::map<std::string, reference<ExtensionItem> > ExtMap;
193 const ExtMap&
GetExts()
const {
return types; }
202 template <
typename T,
typename Del = stdalgo::defaultdeleter<T> >
215 inline T* get(
const Extensible* container)
const
217 return static_cast<T*
>(get_raw(container));
220 inline void set(
Extensible* container,
const T& value)
222 T* ptr =
new T(value);
223 T* old =
static_cast<T*
>(set_raw(container, ptr));
224 free(container, old);
227 inline void set(
Extensible* container, T* value)
229 T* old =
static_cast<T*
>(set_raw(container, value));
230 free(container, old);
235 T* old =
static_cast<T*
>(unset_raw(container));
236 free(container, old);
242 del(
static_cast<T*
>(item));
262 intptr_t get(
const Extensible* container)
const;
263 intptr_t set(
Extensible* container, intptr_t value);
264 void unset(
Extensible* container) { set(container, 0); }
273 std::string* get(
const Extensible* container)
const;
276 void set(
Extensible* container,
const std::string& value);
void free(Extensible *container, void *item) CXX11_OVERRIDE
Definition: extensible.h:239
Definition: extensible.h:139
Definition: extensible.h:255
virtual std::string ToNetwork(const Extensible *container, void *item) const
Definition: base.cpp:252
@ EXT_CHANNEL
Definition: extensible.h:45
Definition: serialize.h:23
Definition: flat_map.h:297
Definition: extensible.h:35
virtual CullResult cull()
Definition: base.cpp:41
virtual void free(Extensible *container, void *item)=0
virtual void RegisterService()
Definition: base.cpp:102
virtual void FromInternal(Extensible *container, const std::string &value)
Definition: base.cpp:226
const ExtensibleStore & GetExtList() const
Definition: extensible.h:162
const ExtMap & GetExts() const
Definition: extensible.h:193
const ExtensibleType type
Definition: extensible.h:52
@ EXT_USER
Definition: extensible.h:42
Definition: extensible.h:203
virtual void FromNetwork(Extensible *container, const std::string &value)
Definition: base.cpp:231
Definition: modules.h:316
Definition: extensible.h:246
virtual std::string ToInternal(const Extensible *container, void *item) const
Definition: base.cpp:247
ExtensibleType
Definition: extensible.h:39
const std::string name
Definition: base.h:256
Definition: extensible.h:181
Definition: extensible.h:268