Files
scylladb/idl/raft_storage.idl.hh
Avi Kivity 0ae22a09d4 LICENSE: Update to version 1.1
Updated terms of non-commercial use (must be a never-customer).
2026-04-12 19:46:33 +03:00

53 lines
935 B
C++

/*
* Copyright 2021-present ScyllaDB
*/
/*
* SPDX-License-Identifier: LicenseRef-ScyllaDB-Source-Available-1.1
*/
#include "raft/raft.hh"
#include "idl/uuid.idl.hh"
namespace raft {
namespace internal {
template<typename Tag>
struct tagged_id {
utils::UUID id;
};
template<typename Tag>
struct tagged_uint64 {
uint64_t value();
};
} // namespace internal
struct server_address {
raft::server_id id;
bytes info;
};
struct config_member {
raft::server_address addr;
raft::is_voter can_vote;
};
struct configuration {
std::unordered_set<raft::config_member, raft::config_member_hash, std::equal_to<void>> current;
std::unordered_set<raft::config_member, raft::config_member_hash, std::equal_to<void>> previous;
};
struct log_entry {
struct dummy {};
raft::term_t term;
raft::index_t idx;
std::variant<bytes_ostream, raft::configuration, raft::log_entry::dummy> data;
};
}