16 #include <vlutil/vlString.h>
17 #include <vlutil/vlMachineTypes.h>
18 #include <matrix/vlVector.h>
19 #include <matrix/vlTaitBryan.h>
20 #include <vlutil/vlFilename.h>
45 #include <vlpi/entityIdentifier.h>
46 #include <vlpi/appearance.h>
47 #include <vlutil/vlInetAddr.h>
49 #include <boost/unordered_map.hpp>
50 #include <boost/unordered_set.hpp>
63 namespace DtBufferSerialize
79 #ifndef DT_HAVE_64BIT_LONGS
116 template <
typename T>
117 char*
encode(
const std::vector<T>& val,
char* buffer);
118 template <
typename T>
119 char*
encode(
const std::set<T>& val,
char* buffer);
120 template <
typename T>
121 char*
encode(
const std::list<T>& val,
char* buffer);
122 template <
typename T1,
typename T2>
123 char*
encode(
const std::map<T1, T2>& val,
char* buffer);
124 template <
typename T1,
typename T2>
125 char*
encode(
const boost::unordered_map<T1, T2>& val,
char* buffer);
126 template <
typename T1>
127 char*
encode(
const boost::unordered_set<T1>& val,
char* buffer);
128 template <
typename T1,
typename T2>
129 char*
encode(
const std::pair<T1, T2>& val,
char* buffer);
150 #ifndef DT_HAVE_64BIT_LONGS
187 template <
typename T>
188 const char *
decode(std::vector<T>& val,
const char *buffer);
189 template <
typename T>
190 const char *
decode(std::set<T>& val,
const char *buffer);
191 template <
typename T>
192 const char *
decode(std::list<T>& val,
const char *buffer);
193 template <
typename T1,
typename T2>
194 const char *
decode(std::map<T1, T2>& val,
const char *buffer);
195 template <
typename T1,
typename T2>
196 const char *
decode(boost::unordered_map<T1, T2>& val,
const char *buffer);
197 template <
typename T1>
198 const char *
decode(boost::unordered_set<T1>& val,
const char *buffer);
199 template <
typename T1,
typename T2>
200 const char *
decode(std::pair<T1, T2>& val,
const char *buffer);
209 DT_DLL_vrfutil const char *
decode(boost::unordered_map<DtUUID, DtUUID>& val,
const char *buffer);
226 #ifndef DT_HAVE_64BIT_LONGS
260 template <
typename T>
261 int getSize(
const std::vector<T>& v) ;
262 template <
typename T>
263 int getSize(
const std::list<T>& v) ;
264 template <
typename T1,
typename T2>
265 int getSize(
const std::map<T1, T2>& v) ;
266 template <
typename T1,
typename T2>
267 int getSize(
const boost::unordered_map<T1, T2>& v) ;
268 template <
typename T1>
269 int getSize(
const boost::unordered_set<T1>& v) ;
270 template <
typename T1,
typename T2>
271 int getSize(
const std::pair<T1, T2>& v) ;
272 template <
typename T>
273 int getSize(
const std::set<T>& v) ;
301 #define bufferSerialize_INL_
302 #include "vrfutil/bufferSerialize.inl"
303 #undef bufferSerialize_INL_