Commit graph

71 commits

Author SHA1 Message Date
Nathaniel
8b50451373
Add support for auxiliary serialization data
To supplement the new custom serialization feature, we also would like
the ability to use standard reflection-based serialization, but also to
add some extra data in on the side. This is now possible as auxiliary
serialized data. A class can define auxiliary data serializers which will
add additional data to the serialized record generated by the usual
reflection-based serializers.
2022-03-16 20:41:15 -05:00
Nathaniel
ac40f449f8
Cleanup and organization
Delete a useless and unused overload of raw::unpack

Also, make the new custom serialization bit work for unreflected types
(they still need typename reflection)
2022-03-16 18:59:36 -05:00
Nathaniel
907dc57fb6
Enable classes to customize their serialization
Add support for classes to define members to customize their
serialization from the default from reflection.
2022-03-16 15:47:17 -05:00
Nathan Hourt
2f89e0812a
Use signed_int to serialize enums 2020-09-17 21:11:28 -05:00
Nathan Hourt
747567fbdc
Revert "Removed signed_int"
This reverts commit 1dcacbafc9.
2020-09-17 12:26:06 -05:00
Abit
c72d5d31cc
Merge branch 'master' into for-core-4.0.x 2020-04-19 10:55:50 +02:00
abitmore
9763d1c194 Update bool serialization
Make the logic clearer, to avoid issues on some compilers.
Thanks to @pureland and team.
2020-03-26 16:27:59 +00:00
Nathan Hourt
cb06e42e80
Fix Build
This is necessary to build in my environment for both clang and g++

Clang 9.0.1
G++ 9.2.1
Boost 1.72.0
2020-03-17 14:42:13 -05:00
Peter Conrad
1bda001b8c Use common inline functions for splitting/combining uint128 to/from two uint64 values 2019-06-11 08:51:59 +02:00
Peter Conrad
a11a50d4e1 Replaced true_type, false_type, is_class, is_enum with std type_traits 2019-06-06 14:41:47 +02:00
Peter Conrad
632a90709e Replace fc::array with std::array 2019-06-06 14:41:47 +02:00
Peter Conrad
a3e2410091 Replace fc::uint128 with boost::multiprecision::uint128_t 2019-06-06 14:41:09 +02:00
Peter Conrad
58e16e543d Replaced most fc::shared_ptr with std::shared_ptr 2019-05-29 11:28:40 +02:00
Peter Conrad
9069e05cb0 Get rid of some inlines 2019-05-28 17:20:57 +02:00
Peter Conrad
de46823a99 Dont inline generic pack/unpack to enable externalized serialization 2019-05-28 17:20:57 +02:00
Peter Conrad
379e59f661 Moved delete declaration to raw_fwd 2019-04-23 16:49:25 +02:00
Peter Conrad
532093bda5 Added missing serialization for std::shared_ptr<T> 2019-04-23 16:49:24 +02:00
Peter Conrad
cb9a96755d Add proper serialization for boost::endian::endian_buffer 2019-04-23 16:48:17 +02:00
Peter Conrad
f0c6976aea Removed superfluous return statement 2019-04-23 16:45:44 +02:00
Peter Conrad
9a0d92820d Fixes for endianness 2019-04-23 16:45:44 +02:00
Peter Conrad
579914c84d Removed unused stuff 2019-04-04 17:59:51 +02:00
Nathan Hourt
6665406f83 Requested changes for #115 2019-03-24 09:54:57 -05:00
Nathan Hourt
ba96174e7f Support for BTS #1670: allow serializing shared_ptr<const T> 2019-03-23 11:35:40 -05:00
John Jones
19590fd413 Removal of smart_ref 2019-02-15 08:23:05 -05:00
jmjatlanta
6fece96eae fix std::min parameter conversion 2019-02-05 15:44:06 -05:00
John Jones
fa07984234 fix overly agressive cleanup 2019-01-21 09:11:11 -05:00
John Jones
be4d480174 Remove unnecessary asserts 2019-01-18 12:29:38 -05:00
Peter Conrad
fb75dc9bb5 Added limits for resize() / reserve() 2018-12-28 20:36:29 +01:00
Peter Conrad
02a4516610 Handle b<0 2018-08-21 16:48:00 +02:00
Peter Conrad
79ff75423f Throw overflow_exception instead of silently cutting off data 2018-08-19 18:51:45 +02:00
Peter Conrad
1dcacbafc9 Removed signed_int 2018-08-19 18:26:46 +02:00
Peter Conrad
72bcc8a926 Fix #993 - limit unpacking length of signed_int and unsigned_int 2018-08-19 11:01:05 +02:00
Peter Conrad
58ac6ae208 Changed some casts to uint64_t 2018-08-19 11:01:05 +02:00
Peter Conrad
9483935d64 Support 64 bit values in unsigned_int object 2018-08-19 11:01:05 +02:00
Abit
2bb93c8b5d
Merge pull request #21 from pmconrad/variant_fix
Variant fix
2018-03-19 17:35:57 +01:00
Peter Conrad
1eb7b9d5c6 Added some missing checks, fixed indentation, handle different meanings of max_depth 2018-03-19 15:49:07 +01:00
abitmore
d9ac2691a1 Remove default pack/unpack functions for class 2018-03-14 17:20:48 -04:00
abitmore
85ea20e2c9 Deprecate default pack/unpack functions for class 2018-03-14 06:25:14 -04:00
Peter Conrad
81c8d89341 Added max_depth parameter to variant conversions 2018-03-13 22:00:18 +01:00
abitmore
43ac0b0520 Slightly improve performance for pack/unpack 2018-03-13 13:06:00 -04:00
abitmore
86e18663a0 Add max_depth parameter to pack/unpack functions 2018-03-11 17:31:55 -04:00
Daniel Larimer
de9a29c33e Progress toward binary RPC" 2016-07-30 19:24:15 -04:00
theoreticalbts
232d59525a raw.hpp: Use fc::raw:: namespace explicitly everywhere, cleanup whitespace 2016-02-19 16:36:29 -05:00
Daniel Larimer
bde8a7f424 fixes updates for deque to variant 2016-02-11 17:16:39 -05:00
theoreticalbts
7b6431f20e raw.hpp: Add pack() override for shared_ptr<T> 2016-01-08 11:20:32 -05:00
Daniel Larimer
cb27b810e3 adding support for unpacking shared_ptr 2015-11-25 12:49:49 -05:00
theoreticalbts
1e10d3dc47 raw.hpp: Require high bits to be 0 when unpacking bool 2015-10-12 10:09:08 -04:00
Daniel Larimer
63677c47d9 helper for smart_ref 2015-07-08 16:43:25 -04:00
Daniel Larimer
f9f965809b bug fixes 2015-02-27 16:07:50 -05:00
Daniel Larimer
c0a4ed77b1 adding static_variant type 2015-02-27 13:41:55 -05:00