0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-08-25 11:02:08 +02:00
construct/include/ircd/db/database/sst.h

57 lines
1.3 KiB
C++

// Matrix Construct
//
// Copyright (C) Matrix Construct Developers, Authors & Contributors
// Copyright (C) 2016-2018 Jason Volk <jason@zemos.net>
//
// Permission to use, copy, modify, and/or distribute this software for any
// purpose with or without fee is hereby granted, provided that the above
// copyright notice and this permission notice is present in all copies. The
// full license for this software is available in the LICENSE file.
#pragma once
#define HAVE_IRCD_DB_DATABASE_SST_H
struct ircd::db::database::sst
{
struct info;
static void dump(const vector_view<const string_view> &args);
};
struct ircd::db::database::sst::writer
{
using key_range = std::pair<string_view, string_view>;
writer(const database &, const column &, const key_range & = {});
};
/// Get info about an SST file.
///
struct ircd::db::database::sst::info
{
struct vector;
std::string name;
std::string path;
std::string column;
size_t size {0};
uint64_t min_seq {0};
uint64_t max_seq {0};
std::string min_key;
std::string max_key;
uint64_t num_reads {0};
int level {-1};
bool compacting {false};
info() = default;
info(rocksdb::LiveFileMetaData &&);
info(const database &, const string_view &filename);
};
struct ircd::db::database::sst::info::vector
:std::vector<info>
{
vector() = default;
explicit vector(const database &);
};