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> 68 template <
class Archive,
class T>
74 template <
class Archive,
class T>
80 template <
class Archive,
class T>
83 return v.member_do_serialize(
ar);
85 template <
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){ 144 #define PREPARE_CUSTOM_VECTOR_SERIALIZATION(size, vec) \ 145 ::serialization::detail::prepare_custom_vector_serialization(size, vec, typename Archive<W>::is_saving()) 150 #define END_SERIALIZE() \ 158 #define FIELD_N(t, f) \ 161 bool r = do_serialize(ar, f); \ 162 if (!r || !ar.good()) return false; \ 172 bool r = do_serialize(ar, f); \ 173 if (!r || !ar.good()) return false; \ 182 bool r = do_serialize(ar, f); \ 183 if (!r || !ar.good()) return false; \ 189 #define VARINT_FIELD(f) \ 192 ar.serialize_varint(f); \ 193 if (!ar.good()) return false; \ 200 #define VARINT_FIELD_N(t, f) \ 203 ar.serialize_varint(f); \ 204 if (!ar.good()) return false; \ 209 #define MAGIC_FIELD(m) \ 210 std::string magic = m; \ 213 ar.serialize_blob((void*)magic.data(), magic.size()); \ 214 if (!ar.good()) return false; \ 215 if (magic != m) return false; \ 220 #define VERSION_FIELD(v) \ 221 uint32_t version = v; \ 224 ar.serialize_varint(version); \ 225 if (!ar.good()) return false; \ 241 template <
typename T>
246 template <
typename T>
256 template<
class Archive>
267 template<
class Archive>
283 template<
class Archive>
293 template <
class Archive,
class T>
304 template <
class Archive,
class T>
Definition: binary_utils.h:36
bool eof() const noexcept
If implementing as std::istream, reset stream error state after peek() call.
Definition: binary_archive.h:103
const uint32_t T[512]
Definition: groestl_tables.h:36
binary_archive< false > ar
Definition: cold-outputs.cpp:54
bool check_stream_state(Archive &ar, bool noeof=false)
Definition: serialization.h:284
void serialize_blob(void *buf, size_t len, const char *delimiter="")
Definition: binary_archive.h:130
void prepare_custom_vector_serialization(size_t size, std::vector< T > &vec, const boost::mpl::bool_< true > &)
Definition: serialization.h:242
tools::wallet2::message_signature_result_t result
Definition: signature.cpp:62
a descriptor for dispatching serialize
Definition: serialization.h:58
bool serialize(Archive &ar, T &v)
Definition: serialization.h:294
declaration and default definition for the functions used the API
Definition: expect.cpp:33
bool do_check_stream_state(Archive &ar, boost::mpl::bool_< true >, bool noeof)
Definition: serialization.h:257
boost::false_type type
Definition: serialization.h:58
r
Definition: testupnpigd.py:61
const GenericPointer< typename T::ValueType > T2 value
Definition: pointer.h:1225
bool_constant< false > false_type
Definition: gtest-port.h:2209
std::enable_if_t< is_blob_type< T >::type::value, bool > do_serialize(Archive &ar, T &v)
main function for dispatching serialization for a given pair of archive and value types ...
Definition: serialization.h:69
bool serialize_noeof(Archive &ar, T &v)
Definition: serialization.h:305
bool good() const noexcept
Definition: binary_archive.h:99
void serialize_int(T &v)
Definition: binary_archive.h:107