2
0
mirror of https://github.com/boostorg/redis.git synced 2026-02-11 12:02:29 +00:00
Files
redis/include/aedis/impl/read.ipp
Marcelo Zimbres 2ed19ee124 Refactoring.
2021-08-28 09:56:16 +02:00

44 lines
1.7 KiB
C++

/* Copyright (c) 2019 - 2021 Marcelo Zimbres Silva (mzimbres at gmail dot com)
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
#include <aedis/read.hpp>
namespace aedis {
response_adapter_base* select_buffer(detail::response_adapters& adapters, resp3::type type, command cmd)
{
if (type == resp3::type::push)
return &adapters.resp_push;
if (cmd == command::exec)
return &adapters.resp_transaction;
switch (type) {
case resp3::type::set: return &adapters.resp_set;
case resp3::type::map: return &adapters.resp_map;
case resp3::type::attribute: return &adapters.resp_attribute;
case resp3::type::array: return &adapters.resp_array;
case resp3::type::simple_error: return &adapters.resp_simple_error;
case resp3::type::simple_string: return &adapters.resp_simple_string;
case resp3::type::number: return &adapters.resp_number;
case resp3::type::doublean: return &adapters.resp_double;
case resp3::type::big_number: return &adapters.resp_big_number;
case resp3::type::boolean: return &adapters.resp_boolean;
case resp3::type::blob_error: return &adapters.resp_blob_error;
case resp3::type::blob_string: return &adapters.resp_blob_string;
case resp3::type::verbatim_string: return &adapters.resp_verbatim_string;
case resp3::type::streamed_string_part: return &adapters.resp_streamed_string_part;
case resp3::type::null: return &adapters.resp_ignore;
default: {
throw std::runtime_error("response_buffers");
return nullptr;
}
}
}
} // aedis