47#include <unordered_set>
49#include <boost/type_traits/is_integral.hpp>
50#include <boost/type_traits/integral_constant.hpp>
51#include <boost/mpl/bool.hpp>
68template <
class Archive,
class T>
69inline std::enable_if_t<is_blob_type<T>::type::value,
bool>
do_serialize(Archive &
ar,
T &v)
74template <
class Archive,
class T>
75inline std::enable_if_t<boost::is_integral<T>::value,
bool>
do_serialize(Archive &
ar,
T &v)
80template <
class Archive,
class T>
83 return v.member_do_serialize(
ar);
85template <
class Archive>
98#define BLOB_SERIALIZER(T) \
100 struct is_blob_type<T> { \
101 typedef boost::true_type type; \
108#define VARIANT_TAG(Archive, Type, Tag) \
110 struct variant_serialization_traits<Archive<W>, Type> { \
111 static inline typename Archive<W>::variant_tag_type get_tag() { \
122#define BEGIN_SERIALIZE() \
123 template <bool W, template <bool> class Archive> \
124 bool member_do_serialize(Archive<W> &ar) {
131#define BEGIN_SERIALIZE_OBJECT() \
132 template <bool W, template <bool> class Archive> \
133 bool member_do_serialize(Archive<W> &ar) { \
135 bool r = do_serialize_object(ar); \
139 template <bool W, template <bool> class Archive> \
140 bool do_serialize_object(Archive<W> &ar){
145#define PREPARE_CUSTOM_VECTOR_SERIALIZATION(size, vec, min_wire) \
148 if (!::serialization::detail::prepare_custom_vector_serialization(size, vec, min_wire, ar)) \
155#define END_SERIALIZE() \
163#define FIELD_N(t, f) \
166 bool r = do_serialize(ar, f); \
167 if (!r || !ar.good()) return false; \
177 bool r = do_serialize(ar, f); \
178 if (!r || !ar.good()) return false; \
187 bool r = do_serialize(ar, f); \
188 if (!r || !ar.good()) return false; \
194#define VARINT_FIELD(f) \
197 ar.serialize_varint(f); \
198 if (!ar.good()) return false; \
205#define VARINT_FIELD_N(t, f) \
208 ar.serialize_varint(f); \
209 if (!ar.good()) return false; \
214#define MAGIC_FIELD(m) \
215 std::string magic = m; \
218 ar.serialize_blob((void*)magic.data(), magic.size()); \
219 if (!ar.good()) return false; \
220 if (magic != m) return false; \
225#define VERSION_FIELD(v) \
226 uint32_t version = v; \
229 ar.serialize_varint(version); \
230 if (!ar.good()) return false; \
237#define CONTAINER_FIELD_CAPPED(f, c) \
240 bool r = do_serialize(ar, f, c); \
241 if (!r || !ar.good()) return false; \
257 template <
typename T,
template<
bool>
class A>
263 template <
typename T,
template<
bool>
class A>
276 template<
class Archive>
287 template<
class Archive>
303 template<
class Archive>
313 template <
class Archive,
class T>
324 template <
class Archive,
class T>
binary_archive< false > ar
Definition cold-outputs.cpp:54
bool do_serialize(Archive< false > &ar, std::vector< T > &v, size_t max_cnt=std::numeric_limits< size_t >::max())
Definition containers.h:108
Definition container.h:40
bool do_check_stream_state(Archive &ar, boost::mpl::bool_< true >, bool noeof)
Definition serialization.h:277
constexpr bool prepare_custom_vector_serialization(size_t, const std::vector< T > &vec, size_t, const A< true > &) noexcept
Definition serialization.h:258
Definition binary_utils.h:36
bool serialize_noeof(Archive &ar, T &v)
Definition serialization.h:325
bool check_stream_state(Archive &ar, bool noeof=false)
Definition serialization.h:304
bool serialize(Archive &ar, T &v)
Definition serialization.h:314
Matcher< T > A()
Definition gmock-matchers.h:3732
tools::wallet2::message_signature_result_t result
Definition signature.cpp:62
bool good() const noexcept
Definition binary_archive.h:99
bool eof() const noexcept
If implementing as std::istream, reset stream error state after peek() call.
Definition binary_archive.h:103
void serialize_blob(void *buf, size_t len, const char *delimiter="")
Definition binary_archive.h:130
size_t remaining_bytes() const noexcept
Definition binary_archive.h:169
void serialize_int(T &v)
Definition binary_archive.h:107
a descriptor for dispatching serialize
Definition serialization.h:58
boost::false_type type
Definition serialization.h:58