diff --git a/TODO.txt b/TODO.txt index 580f4e0f..46c410ce 100644 --- a/TODO.txt +++ b/TODO.txt @@ -1,7 +1,6 @@ Name change Refactor file structucture for serialization and tests Deserialize common should be in namespace mysql::test, not in detail - Rename (De)SerializationContext Multiresultset Text protocol Binary protocol (stored procedures) diff --git a/include/boost/mysql/detail/network_algorithms/common.hpp b/include/boost/mysql/detail/network_algorithms/common.hpp index f8c3da54..b68f3b38 100644 --- a/include/boost/mysql/detail/network_algorithms/common.hpp +++ b/include/boost/mysql/detail/network_algorithms/common.hpp @@ -13,7 +13,7 @@ namespace mysql { namespace detail { using deserialize_row_fn = error_code (*)( - DeserializationContext&, + deserialization_context&, const std::vector&, std::vector& ); diff --git a/include/boost/mysql/detail/network_algorithms/impl/execute_generic.hpp b/include/boost/mysql/detail/network_algorithms/impl/execute_generic.hpp index cad156dd..ec2bcc1b 100644 --- a/include/boost/mysql/detail/network_algorithms/impl/execute_generic.hpp +++ b/include/boost/mysql/detail/network_algorithms/impl/execute_generic.hpp @@ -45,7 +45,7 @@ public: // Response may be: ok_packet, err_packet, local infile request (not implemented) // If it is none of this, then the message type itself is the beginning of // a length-encoded int containing the field count - DeserializationContext ctx (boost::asio::buffer(buffer_), channel_.current_capabilities()); + deserialization_context ctx (boost::asio::buffer(buffer_), channel_.current_capabilities()); std::uint8_t msg_type; std::tie(err, msg_type) = deserialize_message_type(ctx); if (err) return {}; @@ -83,7 +83,7 @@ public: error_code process_field_definition() { column_definition_packet field_definition; - DeserializationContext ctx (boost::asio::buffer(buffer_), channel_.current_capabilities()); + deserialization_context ctx (boost::asio::buffer(buffer_), channel_.current_capabilities()); auto err = deserialize_message(field_definition, ctx); if (err) return err; diff --git a/include/boost/mysql/detail/network_algorithms/impl/handshake.hpp b/include/boost/mysql/detail/network_algorithms/impl/handshake.hpp index 15907515..8b831805 100644 --- a/include/boost/mysql/detail/network_algorithms/impl/handshake.hpp +++ b/include/boost/mysql/detail/network_algorithms/impl/handshake.hpp @@ -22,7 +22,7 @@ inline error_code deserialize_handshake( error_info& info ) { - DeserializationContext ctx (boost::asio::buffer(buffer), capabilities()); + deserialization_context ctx (boost::asio::buffer(buffer), capabilities()); auto [err, msg_type] = deserialize_message_type(ctx); if (err) return err; if (msg_type == handshake_protocol_version_9) @@ -161,7 +161,7 @@ public: error_info& info ) { - DeserializationContext ctx (boost::asio::buffer(buffer), negotiated_caps_); + deserialization_context ctx (boost::asio::buffer(buffer), negotiated_caps_); auto [err, msg_type] = deserialize_message_type(ctx); if (err) return err; if (msg_type == ok_packet_header) @@ -203,7 +203,7 @@ public: error_info& info ) { - DeserializationContext ctx (boost::asio::buffer(buffer), negotiated_caps_); + deserialization_context ctx (boost::asio::buffer(buffer), negotiated_caps_); auto [err, msg_type] = deserialize_message_type(ctx); if (err) return err; if (msg_type == error_packet_header) diff --git a/include/boost/mysql/detail/network_algorithms/impl/prepare_statement.hpp b/include/boost/mysql/detail/network_algorithms/impl/prepare_statement.hpp index 6ecbe08b..2ced6a81 100644 --- a/include/boost/mysql/detail/network_algorithms/impl/prepare_statement.hpp +++ b/include/boost/mysql/detail/network_algorithms/impl/prepare_statement.hpp @@ -22,7 +22,7 @@ public: } void process_response(error_code& err, error_info& info) { - DeserializationContext ctx ( + deserialization_context ctx ( boost::asio::buffer(channel_.shared_buffer()), channel_.current_capabilities() ); diff --git a/include/boost/mysql/detail/network_algorithms/impl/read_row.hpp b/include/boost/mysql/detail/network_algorithms/impl/read_row.hpp index c21e659f..22675105 100644 --- a/include/boost/mysql/detail/network_algorithms/impl/read_row.hpp +++ b/include/boost/mysql/detail/network_algorithms/impl/read_row.hpp @@ -23,7 +23,7 @@ inline read_row_result process_read_message( // Message type: row, error or eof? std::uint8_t msg_type; - DeserializationContext ctx (boost::asio::buffer(buffer), current_capabilities); + deserialization_context ctx (boost::asio::buffer(buffer), current_capabilities); std::tie(err, msg_type) = deserialize_message_type(ctx); if (err) return read_row_result::error; if (msg_type == eof_packet_header) diff --git a/include/boost/mysql/detail/protocol/binary_deserialization.hpp b/include/boost/mysql/detail/protocol/binary_deserialization.hpp index 6a2fc444..814722b5 100644 --- a/include/boost/mysql/detail/protocol/binary_deserialization.hpp +++ b/include/boost/mysql/detail/protocol/binary_deserialization.hpp @@ -12,13 +12,13 @@ namespace mysql { namespace detail { inline errc deserialize_binary_value( - DeserializationContext& ctx, + deserialization_context& ctx, const field_metadata& meta, value& output ); inline error_code deserialize_binary_row( - DeserializationContext& ctx, + deserialization_context& ctx, const std::vector& meta, std::vector& output ); diff --git a/include/boost/mysql/detail/protocol/binary_serialization.hpp b/include/boost/mysql/detail/protocol/binary_serialization.hpp index 527cc650..d7a713f5 100644 --- a/include/boost/mysql/detail/protocol/binary_serialization.hpp +++ b/include/boost/mysql/detail/protocol/binary_serialization.hpp @@ -10,20 +10,20 @@ namespace boost { namespace mysql { namespace detail { -inline std::size_t get_size(const date& input, const SerializationContext& ctx) noexcept; -inline void serialize(const date& input, SerializationContext& ctx) noexcept; -inline errc deserialize(date& output, DeserializationContext& ctx) noexcept; +inline std::size_t get_size(const date& input, const serialization_context& ctx) noexcept; +inline void serialize(const date& input, serialization_context& ctx) noexcept; +inline errc deserialize(date& output, deserialization_context& ctx) noexcept; -inline std::size_t get_size(const datetime& input, const SerializationContext& ctx) noexcept; -inline void serialize(const datetime& input, SerializationContext& ctx) noexcept; -inline errc deserialize(datetime& output, DeserializationContext& ctx) noexcept; +inline std::size_t get_size(const datetime& input, const serialization_context& ctx) noexcept; +inline void serialize(const datetime& input, serialization_context& ctx) noexcept; +inline errc deserialize(datetime& output, deserialization_context& ctx) noexcept; -inline std::size_t get_size(const time& input, const SerializationContext& ctx) noexcept; -inline void serialize(const time& input, SerializationContext& ctx) noexcept; -inline errc deserialize(time& output, DeserializationContext& ctx) noexcept; +inline std::size_t get_size(const time& input, const serialization_context& ctx) noexcept; +inline void serialize(const time& input, serialization_context& ctx) noexcept; +inline errc deserialize(time& output, deserialization_context& ctx) noexcept; -inline std::size_t get_size(const value& input, const SerializationContext& ctx) noexcept; -inline void serialize(const value& input, SerializationContext& ctx) noexcept; +inline std::size_t get_size(const value& input, const serialization_context& ctx) noexcept; +inline void serialize(const value& input, serialization_context& ctx) noexcept; } // detail } // mysql diff --git a/include/boost/mysql/detail/protocol/impl/binary_deserialization.ipp b/include/boost/mysql/detail/protocol/impl/binary_deserialization.ipp index 955e0309..d39b3117 100644 --- a/include/boost/mysql/detail/protocol/impl/binary_deserialization.ipp +++ b/include/boost/mysql/detail/protocol/impl/binary_deserialization.ipp @@ -87,7 +87,7 @@ inline binary_protocol_value get_deserializable_type( } // boost inline boost::mysql::errc boost::mysql::detail::deserialize_binary_value( - DeserializationContext& ctx, + deserialization_context& ctx, const field_metadata& meta, value& output ) @@ -117,7 +117,7 @@ inline boost::mysql::errc boost::mysql::detail::deserialize_binary_value( } inline boost::mysql::error_code boost::mysql::detail::deserialize_binary_row( - DeserializationContext& ctx, + deserialization_context& ctx, const std::vector& meta, std::vector& output ) diff --git a/include/boost/mysql/detail/protocol/impl/binary_serialization.ipp b/include/boost/mysql/detail/protocol/impl/binary_serialization.ipp index 3af9cb81..7cfbdd12 100644 --- a/include/boost/mysql/detail/protocol/impl/binary_serialization.ipp +++ b/include/boost/mysql/detail/protocol/impl/binary_serialization.ipp @@ -30,7 +30,7 @@ inline get_serializable_type_t to_serializable_type(T input) noexcept } -inline errc deserialize_binary_date(date& output, std::uint8_t length, DeserializationContext& ctx) noexcept +inline errc deserialize_binary_date(date& output, std::uint8_t length, deserialization_context& ctx) noexcept { int2 year; int1 month; @@ -51,7 +51,7 @@ inline errc deserialize_binary_date(date& output, std::uint8_t length, Deseriali // Does not add the length prefix byte inline void serialize_binary_ymd( const ::date::year_month_day& ymd, - SerializationContext& ctx + serialization_context& ctx ) noexcept { serialize_fields( @@ -134,7 +134,7 @@ struct broken_time // date inline std::size_t boost::mysql::detail::get_size( const date&, - const SerializationContext& + const serialization_context& ) noexcept { // TODO: consider zero dates? @@ -143,7 +143,7 @@ inline std::size_t boost::mysql::detail::get_size( inline void boost::mysql::detail::serialize( const date& input, - SerializationContext& ctx + serialization_context& ctx ) noexcept { // TODO: consider zero dates? @@ -153,7 +153,7 @@ inline void boost::mysql::detail::serialize( inline boost::mysql::errc boost::mysql::detail::deserialize( date& output, - DeserializationContext& ctx + deserialization_context& ctx ) noexcept { int1 length; @@ -165,7 +165,7 @@ inline boost::mysql::errc boost::mysql::detail::deserialize( // datetime inline std::size_t boost::mysql::detail::get_size( const datetime& input, - const SerializationContext& + const serialization_context& ) noexcept { broken_datetime dt (input); @@ -174,7 +174,7 @@ inline std::size_t boost::mysql::detail::get_size( inline void boost::mysql::detail::serialize( const datetime& input, - SerializationContext& ctx + serialization_context& ctx ) noexcept { broken_datetime brokendt (input); @@ -202,7 +202,7 @@ inline void boost::mysql::detail::serialize( inline boost::mysql::errc boost::mysql::detail::deserialize( datetime& output, - DeserializationContext& ctx + deserialization_context& ctx ) noexcept { int1 length; @@ -240,7 +240,7 @@ inline boost::mysql::errc boost::mysql::detail::deserialize( // time inline std::size_t boost::mysql::detail::get_size( const time& input, - const SerializationContext& + const serialization_context& ) noexcept { return broken_time(input).binary_serialized_length() + 1; // length byte @@ -248,7 +248,7 @@ inline std::size_t boost::mysql::detail::get_size( inline void boost::mysql::detail::serialize( const time& input, - SerializationContext& ctx + serialization_context& ctx ) noexcept { broken_time broken (input); @@ -275,7 +275,7 @@ inline void boost::mysql::detail::serialize( inline boost::mysql::errc boost::mysql::detail::deserialize( time& output, - DeserializationContext& ctx + deserialization_context& ctx ) noexcept { // Length @@ -321,7 +321,7 @@ inline boost::mysql::errc boost::mysql::detail::deserialize( // mysql::value inline std::size_t boost::mysql::detail::get_size( const value& input, - const SerializationContext& ctx + const serialization_context& ctx ) noexcept { return std::visit([&ctx](const auto& v) { @@ -331,7 +331,7 @@ inline std::size_t boost::mysql::detail::get_size( inline void boost::mysql::detail::serialize( const value& input, - SerializationContext& ctx + serialization_context& ctx ) noexcept { std::visit([&ctx](const auto& v) { diff --git a/include/boost/mysql/detail/protocol/impl/channel.hpp b/include/boost/mysql/detail/protocol/impl/channel.hpp index e68ba9bb..4f1fe5b9 100644 --- a/include/boost/mysql/detail/protocol/impl/channel.hpp +++ b/include/boost/mysql/detail/protocol/impl/channel.hpp @@ -50,7 +50,7 @@ boost::mysql::error_code boost::mysql::detail::channel::process_hea ) { packet_header header; - DeserializationContext ctx (boost::asio::buffer(header_buffer_), capabilities(0)); // unaffected by capabilities + deserialization_context ctx (boost::asio::buffer(header_buffer_), capabilities(0)); // unaffected by capabilities [[maybe_unused]] errc err = deserialize(header, ctx); assert(err == errc::ok); // this should always succeed if (!process_sequence_number(header.sequence_number.value)) @@ -69,7 +69,7 @@ void boost::mysql::detail::channel::process_header_write( packet_header header; header.packet_size.value = size_to_write; header.sequence_number.value = next_sequence_number(); - SerializationContext ctx (capabilities(0), header_buffer_.data()); // capabilities not relevant here + serialization_context ctx (capabilities(0), header_buffer_.data()); // capabilities not relevant here serialize(header, ctx); } diff --git a/include/boost/mysql/detail/protocol/impl/messages.ipp b/include/boost/mysql/detail/protocol/impl/messages.ipp index 27db5385..075a8cb5 100644 --- a/include/boost/mysql/detail/protocol/impl/messages.ipp +++ b/include/boost/mysql/detail/protocol/impl/messages.ipp @@ -53,7 +53,7 @@ inline bool is_unsigned( inline boost::mysql::errc boost::mysql::detail::deserialize( ok_packet& output, - DeserializationContext& ctx + deserialization_context& ctx ) noexcept { auto err = deserialize_fields( @@ -72,7 +72,7 @@ inline boost::mysql::errc boost::mysql::detail::deserialize( inline boost::mysql::errc boost::mysql::detail::deserialize( handshake_packet& output, - DeserializationContext& ctx + deserialization_context& ctx ) noexcept { constexpr std::uint8_t auth1_length = 8; @@ -136,7 +136,7 @@ inline boost::mysql::errc boost::mysql::detail::deserialize( std::size_t boost::mysql::detail::get_size( const handshake_response_packet& value, - const SerializationContext& ctx + const serialization_context& ctx ) noexcept { std::size_t res = @@ -156,7 +156,7 @@ std::size_t boost::mysql::detail::get_size( inline void boost::mysql::detail::serialize( const handshake_response_packet& value, - SerializationContext& ctx + serialization_context& ctx ) noexcept { serialize(value.client_flag, ctx); @@ -175,7 +175,7 @@ inline void boost::mysql::detail::serialize( inline boost::mysql::errc boost::mysql::detail::deserialize( auth_switch_request_packet& output, - DeserializationContext& ctx + deserialization_context& ctx ) noexcept { auto err = deserialize_fields(ctx, output.plugin_name, output.auth_plugin_data); @@ -191,7 +191,7 @@ inline boost::mysql::errc boost::mysql::detail::deserialize( inline boost::mysql::errc boost::mysql::detail::deserialize( column_definition_packet& output, - DeserializationContext& ctx + deserialization_context& ctx ) noexcept { int_lenenc length_of_fixed_fields; @@ -216,7 +216,7 @@ inline boost::mysql::errc boost::mysql::detail::deserialize( inline boost::mysql::errc boost::mysql::detail::deserialize( com_stmt_prepare_ok_packet& output, - DeserializationContext& ctx + deserialization_context& ctx ) noexcept { int1 reserved; @@ -233,7 +233,7 @@ inline boost::mysql::errc boost::mysql::detail::deserialize( template inline std::size_t boost::mysql::detail::get_size( const com_stmt_execute_packet& value, - const SerializationContext& ctx + const serialization_context& ctx ) noexcept { std::size_t res = 1 + // command ID @@ -255,7 +255,7 @@ inline std::size_t boost::mysql::detail::get_size( template inline void boost::mysql::detail::serialize( const com_stmt_execute_packet& input, - SerializationContext& ctx + serialization_context& ctx ) noexcept { serialize(int1(com_stmt_execute_packet::command_id), ctx); @@ -306,7 +306,7 @@ void boost::mysql::detail::serialize_message( basic_bytestring& buffer ) { - SerializationContext ctx (caps); + serialization_context ctx (caps); std::size_t size = get_size(input, ctx); buffer.resize(size); ctx.set_first(buffer.data()); @@ -317,7 +317,7 @@ void boost::mysql::detail::serialize_message( template boost::mysql::error_code boost::mysql::detail::deserialize_message( Deserializable& output, - DeserializationContext& ctx + deserialization_context& ctx ) { auto err = deserialize(output, ctx); @@ -329,7 +329,7 @@ boost::mysql::error_code boost::mysql::detail::deserialize_message( inline std::pair boost::mysql::detail::deserialize_message_type( - DeserializationContext& ctx + deserialization_context& ctx ) { int1 msg_type; @@ -347,7 +347,7 @@ boost::mysql::detail::deserialize_message_type( } inline boost::mysql::error_code boost::mysql::detail::process_error_packet( - DeserializationContext& ctx, + deserialization_context& ctx, error_info& info ) { diff --git a/include/boost/mysql/detail/protocol/impl/text_deserialization.ipp b/include/boost/mysql/detail/protocol/impl/text_deserialization.ipp index 6c08603a..d0c9145f 100644 --- a/include/boost/mysql/detail/protocol/impl/text_deserialization.ipp +++ b/include/boost/mysql/detail/protocol/impl/text_deserialization.ipp @@ -125,7 +125,7 @@ errc deserialize_text_value_to_variant(std::string_view from, value& to, Args&&. } inline bool is_next_field_null( - DeserializationContext& ctx + deserialization_context& ctx ) { int1 type_byte; @@ -198,7 +198,7 @@ inline boost::mysql::errc boost::mysql::detail::deserialize_text_value( boost::mysql::error_code boost::mysql::detail::deserialize_text_row( - DeserializationContext& ctx, + deserialization_context& ctx, const std::vector& fields, std::vector& output ) diff --git a/include/boost/mysql/detail/protocol/messages.hpp b/include/boost/mysql/detail/protocol/messages.hpp index f6933ed2..4f17104f 100644 --- a/include/boost/mysql/detail/protocol/messages.hpp +++ b/include/boost/mysql/detail/protocol/messages.hpp @@ -300,19 +300,19 @@ struct get_struct_fields // serialization functions -inline errc deserialize(ok_packet& output, DeserializationContext& ctx) noexcept; -inline errc deserialize(handshake_packet& output, DeserializationContext& ctx) noexcept; -inline std::size_t get_size(const handshake_response_packet& value, const SerializationContext& ctx) noexcept; -inline void serialize(const handshake_response_packet& value, SerializationContext& ctx) noexcept; -inline errc deserialize(auth_switch_request_packet& output, DeserializationContext& ctx) noexcept; -inline errc deserialize(column_definition_packet& output, DeserializationContext& ctx) noexcept; -inline errc deserialize(com_stmt_prepare_ok_packet& output, DeserializationContext& ctx) noexcept; +inline errc deserialize(ok_packet& output, deserialization_context& ctx) noexcept; +inline errc deserialize(handshake_packet& output, deserialization_context& ctx) noexcept; +inline std::size_t get_size(const handshake_response_packet& value, const serialization_context& ctx) noexcept; +inline void serialize(const handshake_response_packet& value, serialization_context& ctx) noexcept; +inline errc deserialize(auth_switch_request_packet& output, deserialization_context& ctx) noexcept; +inline errc deserialize(column_definition_packet& output, deserialization_context& ctx) noexcept; +inline errc deserialize(com_stmt_prepare_ok_packet& output, deserialization_context& ctx) noexcept; template -inline std::size_t get_size(const com_stmt_execute_packet& value, const SerializationContext& ctx) noexcept; +inline std::size_t get_size(const com_stmt_execute_packet& value, const serialization_context& ctx) noexcept; template -inline void serialize(const com_stmt_execute_packet& input, SerializationContext& ctx) noexcept; +inline void serialize(const com_stmt_execute_packet& input, serialization_context& ctx) noexcept; @@ -327,14 +327,14 @@ void serialize_message( template error_code deserialize_message( Deserializable& output, - DeserializationContext& ctx + deserialization_context& ctx ); inline std::pair deserialize_message_type( - DeserializationContext& ctx + deserialization_context& ctx ); -inline error_code process_error_packet(DeserializationContext& ctx, error_info& info); +inline error_code process_error_packet(deserialization_context& ctx, error_info& info); } // detail } // mysql diff --git a/include/boost/mysql/detail/protocol/serialization.hpp b/include/boost/mysql/detail/protocol/serialization.hpp index 96a84716..6beebbfd 100644 --- a/include/boost/mysql/detail/protocol/serialization.hpp +++ b/include/boost/mysql/detail/protocol/serialization.hpp @@ -17,16 +17,16 @@ namespace boost { namespace mysql { namespace detail { -class DeserializationContext +class deserialization_context { ReadIterator first_; ReadIterator last_; capabilities capabilities_; public: - DeserializationContext(ReadIterator first, ReadIterator last, capabilities caps) noexcept: + deserialization_context(ReadIterator first, ReadIterator last, capabilities caps) noexcept: first_(first), last_(last), capabilities_(caps) { assert(last_ >= first_); }; - DeserializationContext(boost::asio::const_buffer buff, capabilities caps) noexcept: - DeserializationContext( + deserialization_context(boost::asio::const_buffer buff, capabilities caps) noexcept: + deserialization_context( static_cast(buff.data()), static_cast(buff.data()) + buff.size(), caps @@ -49,12 +49,12 @@ public: } }; -class SerializationContext +class serialization_context { WriteIterator first_; capabilities capabilities_; public: - SerializationContext(capabilities caps, WriteIterator first = nullptr) noexcept: + serialization_context(capabilities caps, WriteIterator first = nullptr) noexcept: first_(first), capabilities_(caps) {}; WriteIterator first() const noexcept { return first_; } void set_first(WriteIterator new_first) noexcept { first_ = new_first; } @@ -67,7 +67,7 @@ public: /** * Base forms: - * errc deserialize(T& output, DeserializationContext&) noexcept + * errc deserialize(T& output, deserialization_context&) noexcept * void serialize(const T& input, SerializationContext&) noexcept * std::size_t get_size(const T& input, const SerializationContext&) noexcept */ @@ -132,7 +132,7 @@ template void native_to_little_inplace(string_fixed&) n template std::enable_if_t, errc> -deserialize(T& output, DeserializationContext& ctx) noexcept +deserialize(T& output, deserialization_context& ctx) noexcept { static_assert(std::is_standard_layout_v); @@ -152,7 +152,7 @@ deserialize(T& output, DeserializationContext& ctx) noexcept template std::enable_if_t> -serialize(T input, SerializationContext& ctx) noexcept +serialize(T input, serialization_context& ctx) noexcept { native_to_little_inplace(input); ctx.write(&input.value, get_fixed_size::value); @@ -160,13 +160,13 @@ serialize(T input, SerializationContext& ctx) noexcept template constexpr std::enable_if_t, std::size_t> -get_size(T, const SerializationContext&) noexcept +get_size(T, const serialization_context&) noexcept { return get_fixed_size::value; } // int_lenenc -inline errc deserialize(int_lenenc& output, DeserializationContext& ctx) noexcept +inline errc deserialize(int_lenenc& output, deserialization_context& ctx) noexcept { int1 first_byte; errc err = deserialize(first_byte, ctx); @@ -200,7 +200,7 @@ inline errc deserialize(int_lenenc& output, DeserializationContext& ctx) noexcep } return err; } -inline void serialize(int_lenenc input, SerializationContext& ctx) noexcept +inline void serialize(int_lenenc input, serialization_context& ctx) noexcept { if (input.value < 251) { @@ -222,7 +222,7 @@ inline void serialize(int_lenenc input, SerializationContext& ctx) noexcept serialize(int8(static_cast(input.value)), ctx); } } -inline std::size_t get_size(int_lenenc input, const SerializationContext&) noexcept +inline std::size_t get_size(int_lenenc input, const serialization_context&) noexcept { if (input.value < 251) return 1; else if (input.value < 0x10000) return 3; @@ -237,7 +237,7 @@ inline std::string_view get_string(ReadIterator from, std::size_t size) } // string_null -inline errc deserialize(string_null& output, DeserializationContext& ctx) noexcept +inline errc deserialize(string_null& output, deserialization_context& ctx) noexcept { ReadIterator string_end = std::find(ctx.first(), ctx.last(), 0); if (string_end == ctx.last()) @@ -248,34 +248,34 @@ inline errc deserialize(string_null& output, DeserializationContext& ctx) noexce ctx.set_first(string_end + 1); // skip the null terminator return errc::ok; } -inline void serialize(string_null input, SerializationContext& ctx) noexcept +inline void serialize(string_null input, serialization_context& ctx) noexcept { ctx.write(input.value.data(), input.value.size()); ctx.write(0); // null terminator } -inline std::size_t get_size(string_null input, const SerializationContext&) noexcept +inline std::size_t get_size(string_null input, const serialization_context&) noexcept { return input.value.size() + 1; } // string_eof -inline errc deserialize(string_eof& output, DeserializationContext& ctx) noexcept +inline errc deserialize(string_eof& output, deserialization_context& ctx) noexcept { output.value = get_string(ctx.first(), ctx.last()-ctx.first()); ctx.set_first(ctx.last()); return errc::ok; } -inline void serialize(string_eof input, SerializationContext& ctx) noexcept +inline void serialize(string_eof input, serialization_context& ctx) noexcept { ctx.write(input.value.data(), input.value.size()); } -inline std::size_t get_size(string_eof input, const SerializationContext&) noexcept +inline std::size_t get_size(string_eof input, const serialization_context&) noexcept { return input.value.size(); } // string_lenenc -inline errc deserialize(string_lenenc& output, DeserializationContext& ctx) noexcept +inline errc deserialize(string_lenenc& output, deserialization_context& ctx) noexcept { int_lenenc length; errc err = deserialize(length, ctx); @@ -292,14 +292,14 @@ inline errc deserialize(string_lenenc& output, DeserializationContext& ctx) noex ctx.advance(length.value); return errc::ok; } -inline void serialize(string_lenenc input, SerializationContext& ctx) noexcept +inline void serialize(string_lenenc input, serialization_context& ctx) noexcept { int_lenenc length; length.value = input.value.size(); serialize(length, ctx); ctx.write(input.value.data(), input.value.size()); } -inline std::size_t get_size(string_lenenc input, const SerializationContext& ctx) noexcept +inline std::size_t get_size(string_lenenc input, const serialization_context& ctx) noexcept { int_lenenc length; length.value = input.value.size(); @@ -308,7 +308,7 @@ inline std::size_t get_size(string_lenenc input, const SerializationContext& ctx // Enums template >> -errc deserialize(T& output, DeserializationContext& ctx) noexcept +errc deserialize(T& output, deserialization_context& ctx) noexcept { value_holder> value; errc err = deserialize(value, ctx); @@ -321,21 +321,21 @@ errc deserialize(T& output, DeserializationContext& ctx) noexcept } template >> -void serialize(T input, SerializationContext& ctx) noexcept +void serialize(T input, serialization_context& ctx) noexcept { value_holder> value {static_cast>(input)}; serialize(value, ctx); } template >> -std::size_t get_size(T, const SerializationContext&) noexcept +std::size_t get_size(T, const serialization_context&) noexcept { return get_fixed_size>>::value; } // Floating points template >> -errc deserialize(value_holder& output, DeserializationContext& ctx) noexcept +errc deserialize(value_holder& output, deserialization_context& ctx) noexcept { // Size check if (!ctx.enough_size(sizeof(T))) return errc::incomplete_message; @@ -355,7 +355,7 @@ errc deserialize(value_holder& output, DeserializationContext& ctx) noexcept } template >> -void serialize(const value_holder& input, SerializationContext& ctx) noexcept +void serialize(const value_holder& input, serialization_context& ctx) noexcept { // Endianness conversion #if BOOST_ENDIAN_BIG_BYTE @@ -369,7 +369,7 @@ void serialize(const value_holder& input, SerializationContext& ctx) noexcept } template >> -std::size_t get_size(const value_holder&, const SerializationContext&) noexcept +std::size_t get_size(const value_holder&, const serialization_context&) noexcept { return sizeof(T); } @@ -412,7 +412,7 @@ struct is_command : decltype(is_command_helper::get(nullptr)) template errc deserialize_struct( [[maybe_unused]] T& output, - [[maybe_unused]] DeserializationContext& ctx + [[maybe_unused]] deserialization_context& ctx ) noexcept { constexpr auto fields = get_struct_fields::value; @@ -437,7 +437,7 @@ errc deserialize_struct( template std::enable_if_t::value, errc> -deserialize(T& output, DeserializationContext& ctx) noexcept +deserialize(T& output, deserialization_context& ctx) noexcept { return deserialize_struct<0>(output, ctx); } @@ -445,7 +445,7 @@ deserialize(T& output, DeserializationContext& ctx) noexcept template void serialize_struct( [[maybe_unused]] const T& value, - [[maybe_unused]] SerializationContext& ctx + [[maybe_unused]] serialization_context& ctx ) noexcept { constexpr auto fields = get_struct_fields::value; @@ -461,7 +461,7 @@ template std::enable_if_t::value> serialize( [[maybe_unused]] const T& input, - [[maybe_unused]] SerializationContext& ctx + [[maybe_unused]] serialization_context& ctx ) noexcept { // For commands, add the command ID. Commands are only sent by the client, @@ -476,7 +476,7 @@ serialize( template std::size_t get_size_struct( [[maybe_unused]] const T& input, - [[maybe_unused]] const SerializationContext& ctx + [[maybe_unused]] const serialization_context& ctx ) noexcept { constexpr auto fields = get_struct_fields::value; @@ -494,7 +494,7 @@ std::size_t get_size_struct( template std::enable_if_t::value, std::size_t> -get_size(const T& input, const SerializationContext& ctx) noexcept +get_size(const T& input, const serialization_context& ctx) noexcept { std::size_t res = is_command::value ? 1 : 0; res += get_size_struct<0>(input, ctx); @@ -503,10 +503,10 @@ get_size(const T& input, const SerializationContext& ctx) noexcept // Helper to write custom struct (de)serialize() template -errc deserialize_fields(DeserializationContext& ctx, FirstType& field) noexcept { return deserialize(field, ctx); } +errc deserialize_fields(deserialization_context& ctx, FirstType& field) noexcept { return deserialize(field, ctx); } template -errc deserialize_fields(DeserializationContext& ctx, FirstType& field, Types&... fields_tail) noexcept +errc deserialize_fields(deserialization_context& ctx, FirstType& field, Types&... fields_tail) noexcept { errc err = deserialize(field, ctx); if (err == errc::ok) @@ -517,10 +517,10 @@ errc deserialize_fields(DeserializationContext& ctx, FirstType& field, Types&... } template -void serialize_fields(SerializationContext& ctx, const FirstType& field) noexcept { serialize(field, ctx); } +void serialize_fields(serialization_context& ctx, const FirstType& field) noexcept { serialize(field, ctx); } template -void serialize_fields(SerializationContext& ctx, const FirstType& field, const Types&... fields_tail) +void serialize_fields(serialization_context& ctx, const FirstType& field, const Types&... fields_tail) { serialize(field, ctx); serialize_fields(ctx, fields_tail...); @@ -531,9 +531,9 @@ struct dummy_serializable { dummy_serializable(...) {} // Make it constructible from anything }; -inline std::size_t get_size(dummy_serializable, const SerializationContext&) noexcept { return 0; } -inline void serialize(dummy_serializable, SerializationContext&) noexcept {} -inline errc deserialize(dummy_serializable, DeserializationContext&) noexcept { return errc::ok; } +inline std::size_t get_size(dummy_serializable, const serialization_context&) noexcept { return 0; } +inline void serialize(dummy_serializable, serialization_context&) noexcept {} +inline errc deserialize(dummy_serializable, deserialization_context&) noexcept { return errc::ok; } } // detail } // mysql diff --git a/include/boost/mysql/detail/protocol/text_deserialization.hpp b/include/boost/mysql/detail/protocol/text_deserialization.hpp index c251849d..8ca35884 100644 --- a/include/boost/mysql/detail/protocol/text_deserialization.hpp +++ b/include/boost/mysql/detail/protocol/text_deserialization.hpp @@ -18,7 +18,7 @@ inline errc deserialize_text_value( ); inline error_code deserialize_text_row( - DeserializationContext& ctx, + deserialization_context& ctx, const std::vector& meta, std::vector& output ); diff --git a/test/common/serialization_test_common.hpp b/test/common/serialization_test_common.hpp index a164fe95..b8f7b097 100644 --- a/test/common/serialization_test_common.hpp +++ b/test/common/serialization_test_common.hpp @@ -94,9 +94,9 @@ class TypeErasedValue { public: virtual ~TypeErasedValue() {} - virtual void serialize(SerializationContext& ctx) const = 0; - virtual std::size_t get_size(const SerializationContext& ctx) const = 0; - virtual errc deserialize(DeserializationContext& ctx) = 0; + virtual void serialize(serialization_context& ctx) const = 0; + virtual std::size_t get_size(const serialization_context& ctx) const = 0; + virtual errc deserialize(deserialization_context& ctx) = 0; virtual std::shared_ptr default_construct() const = 0; virtual bool equals(const TypeErasedValue& rhs) const = 0; virtual void print(std::ostream& os) const = 0; @@ -115,9 +115,9 @@ class TypeErasedValueImpl : public TypeErasedValue T value_; public: TypeErasedValueImpl(const T& v): value_(v) {}; - void serialize(SerializationContext& ctx) const override { ::boost::mysql::detail::serialize(value_, ctx); } - std::size_t get_size(const SerializationContext& ctx) const override { return ::boost::mysql::detail::get_size(value_, ctx); } - errc deserialize(DeserializationContext& ctx) override { return ::boost::mysql::detail::deserialize(value_, ctx); } + void serialize(serialization_context& ctx) const override { ::boost::mysql::detail::serialize(value_, ctx); } + std::size_t get_size(const serialization_context& ctx) const override { return ::boost::mysql::detail::get_size(value_, ctx); } + errc deserialize(deserialization_context& ctx) override { return ::boost::mysql::detail::deserialize(value_, ctx); } std::shared_ptr default_construct() const override { return std::make_shared>(T{}); @@ -168,7 +168,7 @@ struct SerializationFixture : public testing::TestWithParam // get_size void get_size_test() { - SerializationContext ctx (GetParam().caps, nullptr); + serialization_context ctx (GetParam().caps, nullptr); auto size = GetParam().value->get_size(ctx); EXPECT_EQ(size, GetParam().expected_buffer.size()); } @@ -178,7 +178,7 @@ struct SerializationFixture : public testing::TestWithParam { auto expected_size = GetParam().expected_buffer.size(); std::vector buffer (expected_size + 8, 0x7a); // buffer overrun detector - SerializationContext ctx (GetParam().caps, buffer.data()); + serialization_context ctx (GetParam().caps, buffer.data()); GetParam().value->serialize(ctx); // Iterator @@ -200,7 +200,7 @@ struct SerializationFixture : public testing::TestWithParam { auto first = GetParam().expected_buffer.data(); auto size = GetParam().expected_buffer.size(); - DeserializationContext ctx (first, first + size, GetParam().caps); + deserialization_context ctx (first, first + size, GetParam().caps); auto actual_value = GetParam().value->default_construct(); auto err = actual_value->deserialize(ctx); @@ -219,7 +219,7 @@ struct SerializationFixture : public testing::TestWithParam std::vector buffer (GetParam().expected_buffer); buffer.push_back(0xff); auto first = buffer.data(); - DeserializationContext ctx (first, first + buffer.size(), GetParam().caps); + deserialization_context ctx (first, first + buffer.size(), GetParam().caps); auto actual_value = GetParam().value->default_construct(); auto err = actual_value->deserialize(ctx); @@ -237,7 +237,7 @@ struct SerializationFixture : public testing::TestWithParam { std::vector buffer (GetParam().expected_buffer); buffer.back() = 0x7a; // try to detect any overruns - DeserializationContext ctx (buffer.data(), buffer.data() + buffer.size() - 1, GetParam().caps); + deserialization_context ctx (buffer.data(), buffer.data() + buffer.size() - 1, GetParam().caps); auto actual_value = GetParam().value->default_construct(); auto err = actual_value->deserialize(ctx); EXPECT_EQ(err, errc::incomplete_message); @@ -302,7 +302,7 @@ TEST_P(DeserializeErrorTest, Deserialize_ErrorCondition_ReturnsErrorCode) { auto first = GetParam().buffer.data(); auto last = GetParam().buffer.data() + GetParam().buffer.size(); - DeserializationContext ctx (first, last, capabilities(0)); + deserialization_context ctx (first, last, capabilities(0)); auto value = GetParam().value->default_construct(); auto err = value->deserialize(ctx); EXPECT_EQ(err, GetParam().expected_error); diff --git a/test/unit/detail/protocol/binary_deserialization.cpp b/test/unit/detail/protocol/binary_deserialization.cpp index e78df0e5..685a0ff2 100644 --- a/test/unit/detail/protocol/binary_deserialization.cpp +++ b/test/unit/detail/protocol/binary_deserialization.cpp @@ -73,7 +73,7 @@ TEST_P(DeserializeBinaryValueTest, CorrectFormat_SetsOutputValueReturnsTrue) boost::mysql::field_metadata meta (coldef); value actual_value; const auto& buffer = GetParam().from; - DeserializationContext ctx (buffer.data(), buffer.data() + buffer.size(), capabilities()); + deserialization_context ctx (buffer.data(), buffer.data() + buffer.size(), capabilities()); auto err = deserialize_binary_value(ctx, meta, actual_value); EXPECT_EQ(err, errc::ok); EXPECT_EQ(actual_value, GetParam().expected); @@ -166,7 +166,7 @@ TEST_P(DeserializeBinaryRowTest, CorrectFormat_SetsOutputValueReturnsTrue) { auto meta = make_meta(GetParam().types); const auto& buffer = GetParam().from; - DeserializationContext ctx (buffer.data(), buffer.data() + buffer.size(), capabilities()); + deserialization_context ctx (buffer.data(), buffer.data() + buffer.size(), capabilities()); std::vector actual; auto err = deserialize_binary_row(ctx, meta, actual); @@ -242,7 +242,7 @@ TEST_P(DeserializeBinaryRowErrorTest, ErrorCondition_ReturnsErrorCode) { auto meta = make_meta(GetParam().types); const auto& buffer = GetParam().from; - DeserializationContext ctx (buffer.data(), buffer.data() + buffer.size(), capabilities()); + deserialization_context ctx (buffer.data(), buffer.data() + buffer.size(), capabilities()); std::vector actual; auto err = deserialize_binary_row(ctx, meta, actual); diff --git a/test/unit/detail/protocol/text_deserialization.cpp b/test/unit/detail/protocol/text_deserialization.cpp index 4745c548..74eb4f07 100644 --- a/test/unit/detail/protocol/text_deserialization.cpp +++ b/test/unit/detail/protocol/text_deserialization.cpp @@ -340,7 +340,7 @@ struct DeserializeTextRowTest : public Test error_code deserialize(const std::vector& buffer) { - DeserializationContext ctx (buffer.data(), buffer.data() + buffer.size(), capabilities()); + deserialization_context ctx (buffer.data(), buffer.data() + buffer.size(), capabilities()); return deserialize_text_row(ctx, meta, values); } };