8 #ifndef SRC_UNPACKER_HPP_
9 #define SRC_UNPACKER_HPP_
11 #include "util/object_util.hpp"
14 #include "memory/ExtPreAlloc.hpp"
15 #include "util/util_debug.hpp"
16 #include "Pack_selector.hpp"
17 #include "util/Pack_stat.hpp"
18 #include "memory/PtrMemory.hpp"
19 #include "Packer_util.hpp"
28 template<
typename T,
typename Mem,
int pack_type >
38 std::cerr <<
"Error: " << __FILE__ <<
":" << __LINE__ <<
" packing for the type " << demangle(
typeid(T).name()) <<
" is not implemented\n";
48 template<
typename T,
typename Mem>
69 template<
typename T,
typename Mem>
93 ps.
addOffset(
sizeof(
typename T::value_type)*obj.size());
104 template<
typename T,
typename Mem>
105 class Unpacker<T,Mem,PACKER_OBJECTS_WITH_WARNING_POINTERS>
129 template<
typename T,
typename Mem>
130 class Unpacker<T,Mem,PACKER_OBJECTS_WITH_POINTER_CHECK>
154 template<
typename T,
typename Mem>
161 obj.template
unpack<prp...>(mem, ps);
169 obj.template
unpack<prp...>(mem, ps);
179 template<
typename T,
typename Mem>
186 obj.template
unpack<prp...>(mem, ps);
191 obj.template
unpack<prp...>(mem, sub_it, ps);
201 template<
typename T,
typename Mem>
size_t getOffset()
Return the actual counter.
static void unpack(ExtPreAlloc< Mem > &ext, T &obj, Unpack_stat &ps)
unpack object
static void unpack(ExtPreAlloc< Mem > &ext, T &obj, Unpack_stat &ps)
It unpack C++ primitives.
void * getPointerOffset(size_t offset)
Get the base memory pointer increased with an offset.
void addOffset(size_t off)
Increment the offset pointer by off.
static void unpack(ExtPreAlloc< Mem > &ext, T &obj, Unpack_stat &ps)
It unpack C++ primitives.
static void unpack(ExtPreAlloc< Mem >, T &obj)
Error, no implementation.
Declaration grid_key_dx_iterator_sub.
virtual size_t size() const
Get the size of the LAST allocated memory.
static void unpack(ExtPreAlloc< Mem > &ext, T &obj, Unpack_stat &ps)
It unpack any object checking that the object does not have pointers inside.