From c00149e63310b3dcd1a778effc588bdbbd470346 Mon Sep 17 00:00:00 2001 From: evoskuil Date: Tue, 11 Apr 2023 00:07:18 -0700 Subject: [PATCH 1/2] Make error_t : uint8_t. --- include/bitcoin/network/error.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/bitcoin/network/error.hpp b/include/bitcoin/network/error.hpp index 1c285b0de..8b5330247 100644 --- a/include/bitcoin/network/error.hpp +++ b/include/bitcoin/network/error.hpp @@ -50,7 +50,7 @@ typedef boost::asio::error::basic_errors asio_system_error_t; /// Asio failures are normalized to the error codes below. /// Stop by explicit call is mapped to channel_stopped or service_stopped /// depending on the context. Asio errors returned on cancel calls are ignored. -enum error_t +enum error_t : uint8_t { success, unknown, From 363c4944c3ee7d3031224b6735dee1a65d36f6b4 Mon Sep 17 00:00:00 2001 From: evoskuil Date: Tue, 9 May 2023 00:16:13 -0700 Subject: [PATCH 2/2] Use optimized iostream. --- src/messages/address.cpp | 6 ++++-- src/messages/alert.cpp | 6 ++++-- src/messages/block.cpp | 6 ++++-- src/messages/bloom_filter_add.cpp | 6 ++++-- src/messages/bloom_filter_clear.cpp | 6 ++++-- src/messages/bloom_filter_load.cpp | 6 ++++-- src/messages/client_filter.cpp | 6 ++++-- src/messages/client_filter_checkpoint.cpp | 6 ++++-- src/messages/client_filter_headers.cpp | 6 ++++-- src/messages/compact_block.cpp | 6 ++++-- src/messages/compact_transactions.cpp | 6 ++++-- src/messages/fee_filter.cpp | 6 ++++-- src/messages/get_address.cpp | 6 ++++-- src/messages/get_blocks.cpp | 6 ++++-- src/messages/get_client_filter_checkpoint.cpp | 6 ++++-- src/messages/get_client_filter_headers.cpp | 6 ++++-- src/messages/get_client_filters.cpp | 6 ++++-- src/messages/get_compact_transactions.cpp | 6 ++++-- src/messages/get_data.cpp | 6 ++++-- src/messages/get_headers.cpp | 6 ++++-- src/messages/headers.cpp | 6 ++++-- src/messages/heading.cpp | 6 ++++-- src/messages/inventory.cpp | 6 ++++-- src/messages/memory_pool.cpp | 6 ++++-- src/messages/merkle_block.cpp | 6 ++++-- src/messages/not_found.cpp | 6 ++++-- src/messages/ping.cpp | 6 ++++-- src/messages/pong.cpp | 6 ++++-- src/messages/reject.cpp | 6 ++++-- src/messages/send_compact.cpp | 6 ++++-- src/messages/send_headers.cpp | 6 ++++-- src/messages/transaction.cpp | 6 ++++-- src/messages/version.cpp | 6 ++++-- src/messages/version_acknowledge.cpp | 6 ++++-- 34 files changed, 136 insertions(+), 68 deletions(-) diff --git a/src/messages/address.cpp b/src/messages/address.cpp index 609216bcf..357a9d7e7 100644 --- a/src/messages/address.cpp +++ b/src/messages/address.cpp @@ -43,7 +43,8 @@ constexpr auto with_timestamp = true; typename address::cptr address::deserialize(uint32_t version, const system::data_chunk& data) NOEXCEPT { - read::bytes::copy reader(data); + system::istream source{ data }; + system::byte_reader reader{ source }; const auto message = to_shared(deserialize(version, reader)); return reader ? message : nullptr; } @@ -68,7 +69,8 @@ address address::deserialize(uint32_t version, system::reader& source) NOEXCEPT bool address::serialize(uint32_t version, const system::data_slab& data) const NOEXCEPT { - write::bytes::copy writer(data); + system::ostream sink{ data }; + system::byte_writer writer{ sink }; serialize(version, writer); return writer; } diff --git a/src/messages/alert.cpp b/src/messages/alert.cpp index 29ed5af1d..e91857229 100644 --- a/src/messages/alert.cpp +++ b/src/messages/alert.cpp @@ -40,7 +40,8 @@ const uint32_t alert::version_maximum = level::maximum_protocol; typename alert::cptr alert::deserialize(uint32_t version, const system::data_chunk& data) NOEXCEPT { - read::bytes::copy reader(data); + system::istream source{ data }; + system::byte_reader reader{ source }; const auto message = to_shared(deserialize(version, reader)); return reader ? message : nullptr; } @@ -66,7 +67,8 @@ alert alert::deserialize(uint32_t version, reader& source) NOEXCEPT bool alert::serialize(uint32_t version, const system::data_slab& data) const NOEXCEPT { - write::bytes::copy writer(data); + system::ostream sink{ data }; + system::byte_writer writer{ sink }; serialize(version, writer); return writer; } diff --git a/src/messages/block.cpp b/src/messages/block.cpp index 23c439865..121e62f92 100644 --- a/src/messages/block.cpp +++ b/src/messages/block.cpp @@ -40,7 +40,8 @@ const uint32_t block::version_maximum = level::maximum_protocol; typename block::cptr block::deserialize(uint32_t version, const system::data_chunk& data, bool witness) NOEXCEPT { - read::bytes::copy reader(data); + system::istream source{ data }; + system::byte_reader reader{ source }; const auto message = to_shared(deserialize(version, reader, witness)); if (!reader) return nullptr; @@ -96,7 +97,8 @@ block block::deserialize(uint32_t version, reader& source, bool block::serialize(uint32_t version, const system::data_slab& data, bool witness) const NOEXCEPT { - write::bytes::copy writer(data); + system::ostream sink{ data }; + system::byte_writer writer{ sink }; serialize(version, writer, witness); return writer; } diff --git a/src/messages/bloom_filter_add.cpp b/src/messages/bloom_filter_add.cpp index 5f44dc4b2..b252a9b01 100644 --- a/src/messages/bloom_filter_add.cpp +++ b/src/messages/bloom_filter_add.cpp @@ -39,7 +39,8 @@ const uint32_t bloom_filter_add::version_maximum = level::maximum_protocol; typename bloom_filter_add::cptr bloom_filter_add::deserialize(uint32_t version, const system::data_chunk& data) NOEXCEPT { - read::bytes::copy reader(data); + system::istream source{ data }; + system::byte_reader reader{ source }; const auto message = to_shared(deserialize(version, reader)); return reader ? message : nullptr; } @@ -57,7 +58,8 @@ bloom_filter_add bloom_filter_add::deserialize(uint32_t version, bool bloom_filter_add::serialize(uint32_t version, const system::data_slab& data_) const NOEXCEPT { - write::bytes::copy writer(data_); + system::ostream sink{ data_ }; + system::byte_writer writer{ sink }; serialize(version, writer); return writer; } diff --git a/src/messages/bloom_filter_clear.cpp b/src/messages/bloom_filter_clear.cpp index 52267395e..23a042265 100644 --- a/src/messages/bloom_filter_clear.cpp +++ b/src/messages/bloom_filter_clear.cpp @@ -44,7 +44,8 @@ size_t bloom_filter_clear::size(uint32_t) NOEXCEPT typename bloom_filter_clear::cptr bloom_filter_clear::deserialize( uint32_t version, const system::data_chunk& data) NOEXCEPT { - read::bytes::copy reader(data); + system::istream source{ data }; + system::byte_reader reader{ source }; const auto message = to_shared(deserialize(version, reader)); return reader ? message : nullptr; } @@ -62,7 +63,8 @@ bloom_filter_clear bloom_filter_clear::deserialize(uint32_t version, bool bloom_filter_clear::serialize(uint32_t version, const system::data_slab& data) const NOEXCEPT { - write::bytes::copy writer(data); + system::ostream sink{ data }; + system::byte_writer writer{ sink }; serialize(version, writer); return writer; } diff --git a/src/messages/bloom_filter_load.cpp b/src/messages/bloom_filter_load.cpp index 732e79285..18e58aca5 100644 --- a/src/messages/bloom_filter_load.cpp +++ b/src/messages/bloom_filter_load.cpp @@ -39,7 +39,8 @@ const uint32_t bloom_filter_load::version_maximum = level::maximum_protocol; typename bloom_filter_load::cptr bloom_filter_load::deserialize( uint32_t version, const system::data_chunk& data) NOEXCEPT { - read::bytes::copy reader(data); + system::istream source{ data }; + system::byte_reader reader{ source }; const auto message = to_shared(deserialize(version, reader)); return reader ? message : nullptr; } @@ -73,7 +74,8 @@ bloom_filter_load bloom_filter_load::deserialize(uint32_t version, bool bloom_filter_load::serialize(uint32_t version, const system::data_slab& data) const NOEXCEPT { - write::bytes::copy writer(data); + system::ostream sink{ data }; + system::byte_writer writer{ sink }; serialize(version, writer); return writer; } diff --git a/src/messages/client_filter.cpp b/src/messages/client_filter.cpp index 0c2ce59cf..2f721b6ed 100644 --- a/src/messages/client_filter.cpp +++ b/src/messages/client_filter.cpp @@ -41,7 +41,8 @@ const uint32_t client_filter::version_maximum = level::maximum_protocol; typename client_filter::cptr client_filter::deserialize(uint32_t version, const system::data_chunk& data) NOEXCEPT { - read::bytes::copy reader(data); + system::istream source{ data }; + system::byte_reader reader{ source }; const auto message = to_shared(deserialize(version, reader)); return reader ? message : nullptr; } @@ -64,7 +65,8 @@ client_filter client_filter::deserialize(uint32_t version, bool client_filter::serialize(uint32_t version, const system::data_slab& data) const NOEXCEPT { - write::bytes::copy writer(data); + system::ostream sink{ data }; + system::byte_writer writer{ sink }; serialize(version, writer); return writer; } diff --git a/src/messages/client_filter_checkpoint.cpp b/src/messages/client_filter_checkpoint.cpp index 0ae76af67..3b45bd121 100644 --- a/src/messages/client_filter_checkpoint.cpp +++ b/src/messages/client_filter_checkpoint.cpp @@ -41,7 +41,8 @@ const uint32_t client_filter_checkpoint::version_maximum = level::maximum_protoc typename client_filter_checkpoint::cptr client_filter_checkpoint::deserialize( uint32_t version, const system::data_chunk& data) NOEXCEPT { - read::bytes::copy reader(data); + system::istream source{ data }; + system::byte_reader reader{ source }; const auto message = to_shared(deserialize(version, reader)); return reader ? message : nullptr; } @@ -76,7 +77,8 @@ client_filter_checkpoint client_filter_checkpoint::deserialize( bool client_filter_checkpoint::serialize(uint32_t version, const system::data_slab& data) const NOEXCEPT { - write::bytes::copy writer(data); + system::ostream sink{ data }; + system::byte_writer writer{ sink }; serialize(version, writer); return writer; } diff --git a/src/messages/client_filter_headers.cpp b/src/messages/client_filter_headers.cpp index 0209cfef8..5563ae28b 100644 --- a/src/messages/client_filter_headers.cpp +++ b/src/messages/client_filter_headers.cpp @@ -41,7 +41,8 @@ const uint32_t client_filter_headers::version_maximum = level::maximum_protocol; typename client_filter_headers::cptr client_filter_headers::deserialize( uint32_t version, const system::data_chunk& data) NOEXCEPT { - read::bytes::copy reader(data); + system::istream source{ data }; + system::byte_reader reader{ source }; const auto message = to_shared(deserialize(version, reader)); return reader ? message : nullptr; } @@ -77,7 +78,8 @@ client_filter_headers client_filter_headers::deserialize(uint32_t version, bool client_filter_headers::serialize(uint32_t version, const system::data_slab& data) const NOEXCEPT { - write::bytes::copy writer(data); + system::ostream sink{ data }; + system::byte_writer writer{ sink }; serialize(version, writer); return writer; } diff --git a/src/messages/compact_block.cpp b/src/messages/compact_block.cpp index 4f691d756..0198619a3 100644 --- a/src/messages/compact_block.cpp +++ b/src/messages/compact_block.cpp @@ -40,7 +40,8 @@ const uint32_t compact_block::version_maximum = level::maximum_protocol; typename compact_block::cptr compact_block::deserialize(uint32_t version, const system::data_chunk& data, bool witness) NOEXCEPT { - read::bytes::copy reader(data); + system::istream source{ data }; + system::byte_reader reader{ source }; const auto message = to_shared(deserialize(version, reader, witness)); return reader ? message : nullptr; } @@ -89,7 +90,8 @@ compact_block compact_block::deserialize(uint32_t version, reader& source, bool compact_block::serialize(uint32_t version, const system::data_slab& data, bool witness) const NOEXCEPT { - write::bytes::copy writer(data); + system::ostream sink{ data }; + system::byte_writer writer{ sink }; serialize(version, writer, witness); return writer; } diff --git a/src/messages/compact_transactions.cpp b/src/messages/compact_transactions.cpp index e908f39c1..e97d5268e 100644 --- a/src/messages/compact_transactions.cpp +++ b/src/messages/compact_transactions.cpp @@ -39,7 +39,8 @@ const uint32_t compact_transactions::version_maximum = level::maximum_protocol; typename compact_transactions::cptr compact_transactions::deserialize( uint32_t version, const system::data_chunk& data, bool witness) NOEXCEPT { - read::bytes::copy reader(data); + system::istream source{ data }; + system::byte_reader reader{ source }; const auto message = to_shared(deserialize(version, reader, witness)); return reader ? message : nullptr; } @@ -74,7 +75,8 @@ compact_transactions compact_transactions::deserialize(uint32_t version, bool compact_transactions::serialize(uint32_t version, const system::data_slab& data, bool witness) const NOEXCEPT { - write::bytes::copy writer(data); + system::ostream sink{ data }; + system::byte_writer writer{ sink }; serialize(version, writer, witness); return writer; } diff --git a/src/messages/fee_filter.cpp b/src/messages/fee_filter.cpp index 834f00c50..902e06e22 100644 --- a/src/messages/fee_filter.cpp +++ b/src/messages/fee_filter.cpp @@ -44,7 +44,8 @@ size_t fee_filter::size(uint32_t) NOEXCEPT typename fee_filter::cptr fee_filter::deserialize(uint32_t version, const system::data_chunk& data) NOEXCEPT { - read::bytes::copy reader(data); + system::istream source{ data }; + system::byte_reader reader{ source }; const auto message = to_shared(deserialize(version, reader)); return reader ? message : nullptr; } @@ -61,7 +62,8 @@ fee_filter fee_filter::deserialize(uint32_t version, reader& source) NOEXCEPT bool fee_filter::serialize(uint32_t version, const system::data_slab& data) const NOEXCEPT { - write::bytes::copy writer(data); + system::ostream sink{ data }; + system::byte_writer writer{ sink }; serialize(version, writer); return writer; } diff --git a/src/messages/get_address.cpp b/src/messages/get_address.cpp index 2cb766455..36ec3bfec 100644 --- a/src/messages/get_address.cpp +++ b/src/messages/get_address.cpp @@ -44,7 +44,8 @@ size_t get_address::size(uint32_t) NOEXCEPT typename get_address::cptr get_address::deserialize(uint32_t version, const system::data_chunk& data) NOEXCEPT { - read::bytes::copy reader(data); + system::istream source{ data }; + system::byte_reader reader{ source }; const auto message = to_shared(deserialize(version, reader)); return reader ? message : nullptr; } @@ -61,7 +62,8 @@ get_address get_address::deserialize(uint32_t version, reader& source) NOEXCEPT bool get_address::serialize(uint32_t version, const system::data_slab& data) const NOEXCEPT { - write::bytes::copy writer(data); + system::ostream sink{ data }; + system::byte_writer writer{ sink }; serialize(version, writer); return writer; } diff --git a/src/messages/get_blocks.cpp b/src/messages/get_blocks.cpp index 292a9a20e..235669fd9 100644 --- a/src/messages/get_blocks.cpp +++ b/src/messages/get_blocks.cpp @@ -75,7 +75,8 @@ get_blocks::indexes get_blocks::heights(size_t top) NOEXCEPT typename get_blocks::cptr get_blocks::deserialize(uint32_t version, const system::data_chunk& data) NOEXCEPT { - read::bytes::copy reader(data); + system::istream source{ data }; + system::byte_reader reader{ source }; const auto message = to_shared(deserialize(version, reader)); return reader ? message : nullptr; } @@ -114,7 +115,8 @@ get_blocks get_blocks::deserialize(uint32_t version, reader& source) NOEXCEPT bool get_blocks::serialize(uint32_t version, const system::data_slab& data) const NOEXCEPT { - write::bytes::copy writer(data); + system::ostream sink{ data }; + system::byte_writer writer{ sink }; serialize(version, writer); return writer; } diff --git a/src/messages/get_client_filter_checkpoint.cpp b/src/messages/get_client_filter_checkpoint.cpp index 9b88fcd63..018622ce2 100644 --- a/src/messages/get_client_filter_checkpoint.cpp +++ b/src/messages/get_client_filter_checkpoint.cpp @@ -49,7 +49,8 @@ typename get_client_filter_checkpoint::cptr get_client_filter_checkpoint::deserialize(uint32_t version, const system::data_chunk& data) NOEXCEPT { - read::bytes::copy reader(data); + system::istream source{ data }; + system::byte_reader reader{ source }; const auto message = to_shared(deserialize(version, reader)); return reader ? message : nullptr; } @@ -71,7 +72,8 @@ get_client_filter_checkpoint get_client_filter_checkpoint::deserialize( bool get_client_filter_checkpoint::serialize(uint32_t version, const system::data_slab& data) const NOEXCEPT { - write::bytes::copy writer(data); + system::ostream sink{ data }; + system::byte_writer writer{ sink }; serialize(version, writer); return writer; } diff --git a/src/messages/get_client_filter_headers.cpp b/src/messages/get_client_filter_headers.cpp index b27e10a75..34adfe7a0 100644 --- a/src/messages/get_client_filter_headers.cpp +++ b/src/messages/get_client_filter_headers.cpp @@ -50,7 +50,8 @@ typename get_client_filter_headers::cptr get_client_filter_headers::deserialize(uint32_t version, const system::data_chunk& data) NOEXCEPT { - read::bytes::copy reader(data); + system::istream source{ data }; + system::byte_reader reader{ source }; const auto message = to_shared(deserialize(version, reader)); return reader ? message : nullptr; } @@ -73,7 +74,8 @@ get_client_filter_headers get_client_filter_headers::deserialize( bool get_client_filter_headers::serialize(uint32_t version, const system::data_slab& data) const NOEXCEPT { - write::bytes::copy writer(data); + system::ostream sink{ data }; + system::byte_writer writer{ sink }; serialize(version, writer); return writer; } diff --git a/src/messages/get_client_filters.cpp b/src/messages/get_client_filters.cpp index e61ac3db1..0399e3924 100644 --- a/src/messages/get_client_filters.cpp +++ b/src/messages/get_client_filters.cpp @@ -49,7 +49,8 @@ size_t get_client_filters::size(uint32_t) NOEXCEPT typename get_client_filters::cptr get_client_filters::deserialize( uint32_t version, const system::data_chunk& data) NOEXCEPT { - read::bytes::copy reader(data); + system::istream source{ data }; + system::byte_reader reader{ source }; const auto message = to_shared(deserialize(version, reader)); return reader ? message : nullptr; } @@ -72,7 +73,8 @@ get_client_filters get_client_filters::deserialize(uint32_t version, bool get_client_filters::serialize(uint32_t version, const system::data_slab& data) const NOEXCEPT { - write::bytes::copy writer(data); + system::ostream sink{ data }; + system::byte_writer writer{ sink }; serialize(version, writer); return writer; } diff --git a/src/messages/get_compact_transactions.cpp b/src/messages/get_compact_transactions.cpp index 669ebcae1..30d2290c0 100644 --- a/src/messages/get_compact_transactions.cpp +++ b/src/messages/get_compact_transactions.cpp @@ -39,7 +39,8 @@ const uint32_t get_compact_transactions::version_maximum = level::maximum_protoc typename get_compact_transactions::cptr get_compact_transactions::deserialize( uint32_t version, const system::data_chunk& data) NOEXCEPT { - read::bytes::copy reader(data); + system::istream source{ data }; + system::byte_reader reader{ source }; const auto message = to_shared(deserialize(version, reader)); return reader ? message : nullptr; } @@ -73,7 +74,8 @@ get_compact_transactions get_compact_transactions::deserialize(uint32_t version, bool get_compact_transactions::serialize(uint32_t version, const system::data_slab& data) const NOEXCEPT { - write::bytes::copy writer(data); + system::ostream sink{ data }; + system::byte_writer writer{ sink }; serialize(version, writer); return writer; } diff --git a/src/messages/get_data.cpp b/src/messages/get_data.cpp index 887e96edd..5b0856932 100644 --- a/src/messages/get_data.cpp +++ b/src/messages/get_data.cpp @@ -42,7 +42,8 @@ const uint32_t get_data::version_maximum = level::maximum_protocol; typename get_data::cptr get_data::deserialize(uint32_t version, const system::data_chunk& data) NOEXCEPT { - read::bytes::copy reader(data); + system::istream source{ data }; + system::byte_reader reader{ source }; const auto message = to_shared(deserialize(version, reader)); return reader ? message : nullptr; } @@ -66,7 +67,8 @@ get_data get_data::deserialize(uint32_t version, reader& source) NOEXCEPT bool get_data::serialize(uint32_t version, const system::data_slab& data) const NOEXCEPT { - write::bytes::copy writer(data); + system::ostream sink{ data }; + system::byte_writer writer{ sink }; serialize(version, writer); return writer; } diff --git a/src/messages/get_headers.cpp b/src/messages/get_headers.cpp index e8cc60e2d..3f777ee2e 100644 --- a/src/messages/get_headers.cpp +++ b/src/messages/get_headers.cpp @@ -52,7 +52,8 @@ get_headers::indexes get_headers::heights(size_t top) NOEXCEPT typename get_headers::cptr get_headers::deserialize(uint32_t version, const system::data_chunk& data) NOEXCEPT { - read::bytes::copy reader(data); + system::istream source{ data }; + system::byte_reader reader{ source }; const auto message = to_shared(deserialize(version, reader)); return reader ? message : nullptr; } @@ -82,7 +83,8 @@ get_headers get_headers::deserialize(uint32_t version, reader& source) NOEXCEPT bool get_headers::serialize(uint32_t version, const system::data_slab& data) const NOEXCEPT { - write::bytes::copy writer(data); + system::ostream sink{ data }; + system::byte_writer writer{ sink }; serialize(version, writer); return writer; } diff --git a/src/messages/headers.cpp b/src/messages/headers.cpp index 87d10c4ce..c65ed55a7 100644 --- a/src/messages/headers.cpp +++ b/src/messages/headers.cpp @@ -44,7 +44,8 @@ constexpr uint8_t trail = 0x00; typename headers::cptr headers::deserialize(uint32_t version, const data_chunk& data) NOEXCEPT { - read::bytes::copy reader(data); + system::istream source{ data }; + system::byte_reader reader{ source }; const auto message = to_shared(deserialize(version, reader)); if (!reader) return nullptr; @@ -89,7 +90,8 @@ headers headers::deserialize(uint32_t version, reader& source) NOEXCEPT bool headers::serialize(uint32_t version, const data_slab& data) const NOEXCEPT { - write::bytes::copy writer(data); + system::ostream sink{ data }; + system::byte_writer writer{ sink }; serialize(version, writer); return writer; } diff --git a/src/messages/heading.cpp b/src/messages/heading.cpp index 0a1e81922..8a086da1f 100644 --- a/src/messages/heading.cpp +++ b/src/messages/heading.cpp @@ -124,7 +124,8 @@ heading heading::factory(uint32_t magic, const std::string& command, // static heading::cptr heading::deserialize(const data_chunk& data) NOEXCEPT { - read::bytes::copy reader(data); + system::istream source{ data }; + system::byte_reader reader{ source }; const auto message = to_shared(deserialize(reader)); return reader ? message : nullptr; } @@ -143,7 +144,8 @@ heading heading::deserialize(reader& source) NOEXCEPT bool heading::serialize(const data_slab& data) const NOEXCEPT { - write::bytes::copy writer(data); + system::ostream sink{ data }; + system::byte_writer writer{ sink }; serialize(writer); return writer; } diff --git a/src/messages/inventory.cpp b/src/messages/inventory.cpp index 737b1af8f..be4be04a1 100644 --- a/src/messages/inventory.cpp +++ b/src/messages/inventory.cpp @@ -72,7 +72,8 @@ inventory inventory::factory(const hashes& hashes, type_id type) NOEXCEPT typename inventory::cptr inventory::deserialize(uint32_t version, const system::data_chunk& data) NOEXCEPT { - read::bytes::copy reader(data); + system::istream source{ data }; + system::byte_reader reader{ source }; const auto message = to_shared(deserialize(version, reader)); return reader ? message : nullptr; } @@ -96,7 +97,8 @@ inventory inventory::deserialize(uint32_t version, reader& source) NOEXCEPT bool inventory::serialize(uint32_t version, const system::data_slab& data) const NOEXCEPT { - write::bytes::copy writer(data); + system::ostream sink{ data }; + system::byte_writer writer{ sink }; serialize(version, writer); return writer; } diff --git a/src/messages/memory_pool.cpp b/src/messages/memory_pool.cpp index 5bea7d85e..8baeea233 100644 --- a/src/messages/memory_pool.cpp +++ b/src/messages/memory_pool.cpp @@ -44,7 +44,8 @@ size_t memory_pool::size(uint32_t) NOEXCEPT typename memory_pool::cptr memory_pool::deserialize(uint32_t version, const system::data_chunk& data) NOEXCEPT { - read::bytes::copy reader(data); + system::istream source{ data }; + system::byte_reader reader{ source }; const auto message = to_shared(deserialize(version, reader)); return reader ? message : nullptr; } @@ -52,7 +53,8 @@ typename memory_pool::cptr memory_pool::deserialize(uint32_t version, bool memory_pool::serialize(uint32_t version, const system::data_slab& data) const NOEXCEPT { - write::bytes::copy writer(data); + system::ostream sink{ data }; + system::byte_writer writer{ sink }; serialize(version, writer); return writer; } diff --git a/src/messages/merkle_block.cpp b/src/messages/merkle_block.cpp index a10f9e97e..cb8bb8d8c 100644 --- a/src/messages/merkle_block.cpp +++ b/src/messages/merkle_block.cpp @@ -38,7 +38,8 @@ const uint32_t merkle_block::version_maximum = level::maximum_protocol; typename merkle_block::cptr merkle_block::deserialize(uint32_t version, const system::data_chunk& data) NOEXCEPT { - read::bytes::copy reader(data); + system::istream source{ data }; + system::byte_reader reader{ source }; const auto message = to_shared(deserialize(version, reader)); return reader ? message : nullptr; } @@ -70,7 +71,8 @@ merkle_block merkle_block::deserialize(uint32_t, reader& source) NOEXCEPT bool merkle_block::serialize(uint32_t version, const system::data_slab& data) const NOEXCEPT { - write::bytes::copy writer(data); + system::ostream sink{ data }; + system::byte_writer writer{ sink }; serialize(version, writer); return writer; } diff --git a/src/messages/not_found.cpp b/src/messages/not_found.cpp index 0871f70f4..9dd55c134 100644 --- a/src/messages/not_found.cpp +++ b/src/messages/not_found.cpp @@ -40,7 +40,8 @@ const uint32_t not_found::version_maximum = level::maximum_protocol; typename not_found::cptr not_found::deserialize(uint32_t version, const system::data_chunk& data) NOEXCEPT { - read::bytes::copy reader(data); + system::istream source{ data }; + system::byte_reader reader{ source }; const auto message = to_shared(deserialize(version, reader)); return reader ? message : nullptr; } @@ -66,7 +67,8 @@ not_found not_found::deserialize(uint32_t version, reader& source) NOEXCEPT bool not_found::serialize(uint32_t version, const system::data_slab& data) const NOEXCEPT { - write::bytes::copy writer(data); + system::ostream sink{ data }; + system::byte_writer writer{ sink }; serialize(version, writer); return writer; } diff --git a/src/messages/ping.cpp b/src/messages/ping.cpp index 6dd51f798..5953fd582 100644 --- a/src/messages/ping.cpp +++ b/src/messages/ping.cpp @@ -46,7 +46,8 @@ size_t ping::size(uint32_t version) NOEXCEPT typename ping::cptr ping::deserialize(uint32_t version, const system::data_chunk& data) NOEXCEPT { - read::bytes::copy reader(data); + system::istream source{ data }; + system::byte_reader reader{ source }; const auto message = to_shared(deserialize(version, reader)); return reader ? message : nullptr; } @@ -66,7 +67,8 @@ ping ping::deserialize(uint32_t version, reader& source) NOEXCEPT bool ping::serialize(uint32_t version, const system::data_slab& data) const NOEXCEPT { - write::bytes::copy writer(data); + system::ostream sink{ data }; + system::byte_writer writer{ sink }; serialize(version, writer); return writer; } diff --git a/src/messages/pong.cpp b/src/messages/pong.cpp index 70c35b4d6..a64d662f5 100644 --- a/src/messages/pong.cpp +++ b/src/messages/pong.cpp @@ -44,7 +44,8 @@ size_t pong::size(uint32_t) NOEXCEPT typename pong::cptr pong::deserialize(uint32_t version, const system::data_chunk& data) NOEXCEPT { - read::bytes::copy reader(data); + system::istream source{ data }; + system::byte_reader reader{ source }; const auto message = to_shared(deserialize(version, reader)); return reader ? message : nullptr; } @@ -61,7 +62,8 @@ pong pong::deserialize(uint32_t version, reader& source) NOEXCEPT bool pong::serialize(uint32_t version, const system::data_slab& data) const NOEXCEPT { - write::bytes::copy writer(data); + system::ostream sink{ data }; + system::byte_writer writer{ sink }; serialize(version, writer); return writer; } diff --git a/src/messages/reject.cpp b/src/messages/reject.cpp index a7d7aff8f..9ce60a90d 100644 --- a/src/messages/reject.cpp +++ b/src/messages/reject.cpp @@ -79,7 +79,8 @@ reject::reason_code reject::byte_to_reason(uint8_t byte) NOEXCEPT typename reject::cptr reject::deserialize(uint32_t version, const system::data_chunk& data) NOEXCEPT { - read::bytes::copy reader(data); + system::istream source{ data }; + system::byte_reader reader{ source }; const auto message = to_shared(deserialize(version, reader)); return reader ? message : nullptr; } @@ -106,7 +107,8 @@ reject reject::deserialize(uint32_t, reader& source) NOEXCEPT bool reject::serialize(uint32_t version, const system::data_slab& data) const NOEXCEPT { - write::bytes::copy writer(data); + system::ostream sink{ data }; + system::byte_writer writer{ sink }; serialize(version, writer); return writer; } diff --git a/src/messages/send_compact.cpp b/src/messages/send_compact.cpp index b51a578c8..3da958ee5 100644 --- a/src/messages/send_compact.cpp +++ b/src/messages/send_compact.cpp @@ -45,7 +45,8 @@ size_t send_compact::size(uint32_t) NOEXCEPT typename send_compact::cptr send_compact::deserialize(uint32_t version, const system::data_chunk& data) NOEXCEPT { - read::bytes::copy reader(data); + system::istream source{ data }; + system::byte_reader reader{ source }; const auto message = to_shared(deserialize(version, reader)); return reader ? message : nullptr; } @@ -75,7 +76,8 @@ send_compact send_compact::deserialize(uint32_t version, bool send_compact::serialize(uint32_t version, const system::data_slab& data) const NOEXCEPT { - write::bytes::copy writer(data); + system::ostream sink{ data }; + system::byte_writer writer{ sink }; serialize(version, writer); return writer; } diff --git a/src/messages/send_headers.cpp b/src/messages/send_headers.cpp index ffa8dea07..56dce1d9c 100644 --- a/src/messages/send_headers.cpp +++ b/src/messages/send_headers.cpp @@ -44,7 +44,8 @@ size_t send_headers::size(uint32_t) NOEXCEPT typename send_headers::cptr send_headers::deserialize(uint32_t version, const system::data_chunk& data) NOEXCEPT { - read::bytes::copy reader(data); + system::istream source{ data }; + system::byte_reader reader{ source }; const auto message = to_shared(deserialize(version, reader)); return reader ? message : nullptr; } @@ -62,7 +63,8 @@ send_headers send_headers::deserialize(uint32_t version, bool send_headers::serialize(uint32_t version, const system::data_slab& data) const NOEXCEPT { - write::bytes::copy writer(data); + system::ostream sink{ data }; + system::byte_writer writer{ sink }; serialize(version, writer); return writer; } diff --git a/src/messages/transaction.cpp b/src/messages/transaction.cpp index 9a962a582..bcea41431 100644 --- a/src/messages/transaction.cpp +++ b/src/messages/transaction.cpp @@ -59,7 +59,8 @@ hash_digest transaction::desegregated_hash(size_t witnessed, typename transaction::cptr transaction::deserialize(uint32_t version, const data_chunk& data, bool witness) NOEXCEPT { - read::bytes::copy reader(data); + system::istream source{ data }; + system::byte_reader reader{ source }; const auto message = to_shared(deserialize(version, reader, witness)); if (!reader) return nullptr; @@ -97,7 +98,8 @@ transaction transaction::deserialize(uint32_t version, reader& source, bool transaction::serialize(uint32_t version, const data_slab& data, bool witness) const NOEXCEPT { - write::bytes::copy writer(data); + system::ostream sink{ data }; + system::byte_writer writer{ sink }; serialize(version, writer, witness); return writer; } diff --git a/src/messages/version.cpp b/src/messages/version.cpp index 03951dd69..2e92e1b89 100644 --- a/src/messages/version.cpp +++ b/src/messages/version.cpp @@ -46,7 +46,8 @@ constexpr size_t max_user_agent = max_uint8; typename version::cptr version::deserialize(uint32_t version, const system::data_chunk& data) NOEXCEPT { - read::bytes::copy reader(data); + system::istream source{ data }; + system::byte_reader reader{ source }; const auto message = to_shared(deserialize(version, reader)); return reader ? message : nullptr; } @@ -105,7 +106,8 @@ version version::deserialize(uint32_t version, reader& source) NOEXCEPT bool version::serialize(uint32_t version, const system::data_slab& data) const NOEXCEPT { - write::bytes::copy writer(data); + system::ostream sink{ data }; + system::byte_writer writer{ sink }; serialize(version, writer); return writer; } diff --git a/src/messages/version_acknowledge.cpp b/src/messages/version_acknowledge.cpp index 7b9415507..f415b1ced 100644 --- a/src/messages/version_acknowledge.cpp +++ b/src/messages/version_acknowledge.cpp @@ -44,7 +44,8 @@ size_t version_acknowledge::size(uint32_t) NOEXCEPT typename version_acknowledge::cptr version_acknowledge::deserialize( uint32_t version, const system::data_chunk& data) NOEXCEPT { - read::bytes::copy reader(data); + system::istream source{ data }; + system::byte_reader reader{ source }; const auto message = to_shared(deserialize(version, reader)); return reader ? message : nullptr; } @@ -62,7 +63,8 @@ version_acknowledge version_acknowledge::deserialize(uint32_t version, bool version_acknowledge::serialize(uint32_t version, const system::data_slab& data) const NOEXCEPT { - write::bytes::copy writer(data); + system::ostream sink{ data }; + system::byte_writer writer{ sink }; serialize(version, writer); return writer; }