blob: eadb2ecc31e51711c3031457688b9ebe51398f48 [file] [log] [blame]
#pragma once
#include <chrono>
#include <cstdint>
#include <stdexcept>
#include <string>
#include <vector>
namespace c10d {
class Store {
public:
static constexpr std::chrono::milliseconds kDefaultTimeout =
std::chrono::seconds(30);
static constexpr std::chrono::milliseconds kNoTimeout =
std::chrono::milliseconds::zero();
virtual ~Store();
virtual void set(
const std::string& key,
const std::vector<uint8_t>& value) = 0;
virtual std::vector<uint8_t> get(const std::string& key) = 0;
virtual int64_t add(const std::string& key, int64_t value) = 0;
virtual bool check(const std::vector<std::string>& keys) = 0;
virtual void wait(
const std::vector<std::string>& keys,
const std::chrono::milliseconds& timeout = kDefaultTimeout) = 0;
};
} // namespace c10d