12#include <userver/storages/redis/impl/types.hpp>
14USERVER_NAMESPACE_BEGIN
22inline constexpr std::chrono::milliseconds kDefaultTimeoutSingle{500};
23inline constexpr std::chrono::milliseconds kDefaultTimeoutAll{2000};
24inline constexpr std::size_t kDefaultMaxRetries{4};
32 bool IsAny()
const {
return id_ == -1; }
34 bool operator==(
const ServerId& other)
const {
return other.id_ == id_; }
35 bool operator!=(
const ServerId& other)
const {
return !(other == *
this); }
37 bool operator<(
const ServerId& other)
const {
return id_ < other.id_; }
45 static ServerId Invalid() {
return invalid_; }
47 int64_t GetId()
const {
return id_; }
49 void SetDescription(std::string description)
const;
50 void RemoveDescription()
const;
51 std::string GetDescription()
const;
54 static std::atomic<std::int64_t> next_id_;
61 std::size_t operator()(
ServerId server_id)
const noexcept {
62 return std::hash<std::size_t>{}(server_id.GetId());
135 CommandControl() =
default;
136 CommandControl(
const std::optional<std::chrono::milliseconds>& timeout_single,
137 const std::optional<std::chrono::milliseconds>& timeout_all,
138 const std::optional<size_t>& max_retries);
146 std::string ToString()
const;