aboutsummaryrefslogtreecommitdiff
path: root/src/serialization/serialization.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/serialization/serialization.h')
-rw-r--r--src/serialization/serialization.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/serialization/serialization.h b/src/serialization/serialization.h
index 2d78baf3a..7024fdc03 100644
--- a/src/serialization/serialization.h
+++ b/src/serialization/serialization.h
@@ -10,6 +10,7 @@
#include <vector>
#include <string>
#include <boost/type_traits/is_integral.hpp>
+#include <boost/type_traits/integral_constant.hpp>
template <class T>
struct is_blob_type { typedef boost::false_type type; };
@@ -79,8 +80,10 @@ inline bool do_serialize(Archive &ar, T &v)
if (!r || !ar.stream().good()) return false; \
} while(0);
#define FIELDS(f) \
+ do { \
bool r = ::do_serialize(ar, f); \
- if (!r || !ar.stream().good()) return false;
+ if (!r || !ar.stream().good()) return false; \
+ } while(0);
#define FIELD(f) \
do { \
ar.tag(#f); \
@@ -93,6 +96,12 @@ inline bool do_serialize(Archive &ar, T &v)
ar.serialize_varint(f); \
if (!ar.stream().good()) return false; \
} while(0);
+#define VARINT_FIELD_N(t, f) \
+ do { \
+ ar.tag(t); \
+ ar.serialize_varint(f); \
+ if (!ar.stream().good()) return false; \
+ } while(0);
namespace serialization {
namespace detail