From 3dcda61229866947f3e41b2dfc2ae2a5143b6c2e Mon Sep 17 00:00:00 2001 From: Ed Bruck Date: Thu, 14 Mar 2019 15:17:39 -0700 Subject: [PATCH] KEP-1244 Daemon should return quickread as a dedicated message type (#267) --- crud/crud.cpp | 12 ++++++++++-- crud/test/crud_test.cpp | 12 ++++++------ proto/database.proto | 13 +++++++------ 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/crud/crud.cpp b/crud/crud.cpp index 1cd71e1c..d3c895d2 100644 --- a/crud/crud.cpp +++ b/crud/crud.cpp @@ -178,8 +178,16 @@ crud::handle_read(const bzn::caller_id_t& /*caller_id*/, const database_msg& req if (result) { - response.mutable_read()->set_key(key); - response.mutable_read()->set_value(*result); + if (request.msg_case() == database_msg::kRead) + { + response.mutable_read()->set_key(key); + response.mutable_read()->set_value(*result); + } + else + { + response.mutable_quick_read()->set_key(key); + response.mutable_quick_read()->set_value(*result); + } } this->send_response(request, (result) ? bzn::storage_result::ok : bzn::storage_result::not_found, std::move(response), session); diff --git a/crud/test/crud_test.cpp b/crud/test/crud_test.cpp index 7ecd6a16..9fb119aa 100644 --- a/crud/test/crud_test.cpp +++ b/crud/test/crud_test.cpp @@ -326,11 +326,11 @@ TEST(crud, test_that_read_sends_proper_response) // quick read key... msg.release_read(); msg.mutable_quick_read()->set_key("key"); - expect_response(session, "uuid", uint64_t(123), database_response::kRead, std::nullopt, + expect_response(session, "uuid", uint64_t(123), database_response::kQuickRead, std::nullopt, [](const auto& resp) { - ASSERT_EQ(resp.read().key(), "key"); - ASSERT_EQ(resp.read().value(), "value"); + ASSERT_EQ(resp.quick_read().key(), "key"); + ASSERT_EQ(resp.quick_read().value(), "value"); }); crud.handle_request("caller_id", msg, session); @@ -413,9 +413,9 @@ TEST(crud, test_that_point_of_contact_read_sends_proper_response) ASSERT_TRUE(parse_env_to_db_resp(resp, msg->SerializeAsString())); ASSERT_EQ(resp.header().db_uuid(), "uuid"); ASSERT_EQ(resp.header().nonce(), uint64_t(123)); - ASSERT_EQ(resp.response_case(), database_response::kRead); - ASSERT_EQ(resp.read().key(), "key"); - ASSERT_EQ(resp.read().value(), "value"); + ASSERT_EQ(resp.response_case(), database_response::kQuickRead); + ASSERT_EQ(resp.quick_read().key(), "key"); + ASSERT_EQ(resp.quick_read().value(), "value"); })); crud.handle_request("caller_id", msg, nullptr); diff --git a/proto/database.proto b/proto/database.proto index 9621e6bb..1b98e627 100644 --- a/proto/database.proto +++ b/proto/database.proto @@ -178,12 +178,13 @@ message database_response database_redirect_response redirect = 2; database_subscription_update subscription_update = 3; database_read_response read = 4; - database_has_response has = 5; - database_keys_response keys = 6; - database_size_response size = 7; - database_error error = 8; - database_has_db_response has_db = 9; - database_writers_response writers = 10; + database_read_response quick_read = 5; + database_has_response has = 6; + database_keys_response keys = 7; + database_size_response size = 8; + database_error error = 9; + database_has_db_response has_db = 10; + database_writers_response writers = 11; } }