5#include <userver/engine/impl/context_accessor.hpp> 
    6#include <userver/storages/redis/reply_fwd.hpp> 
    7#include <userver/storages/redis/reply_types.hpp> 
    8#include <userver/storages/redis/scan_tag.hpp> 
   10USERVER_NAMESPACE_BEGIN
 
   21template <
typename ReplyType>
 
   24  virtual ~RequestDataBase() = 
default;
 
   26  virtual void Wait() = 0;
 
   28  virtual ReplyType Get(
const std::string& request_description) = 0;
 
   30  virtual ReplyPtr GetRaw() = 0;
 
   32  virtual engine::impl::ContextAccessor* TryGetContextAccessor() 
noexcept = 0;
 
   35template <ScanTag scan_tag>
 
   38  using ReplyElem = 
typename ScanReplyElem<scan_tag>::type;
 
   40  virtual ~RequestScanDataBase() = 
default;
 
   42  void SetRequestDescription(std::string request_description) {
 
   43    request_description_ = std::move(request_description);
 
   46  virtual ReplyElem Get() = 0;
 
   48  virtual ReplyElem& Current() = 0;
 
   50  virtual bool Eof() = 0;
 
   54  std::string request_description_;