mirror of
https://github.com/matrix-construct/construct
synced 2024-09-30 12:48:54 +02:00
ircd::db: Minor cleanup; interface const consistency on our side.
This commit is contained in:
parent
faefd5dd64
commit
cbfb105765
3 changed files with 31 additions and 28 deletions
|
@ -15,18 +15,18 @@ namespace ircd::db
|
||||||
{
|
{
|
||||||
struct column;
|
struct column;
|
||||||
|
|
||||||
|
// Information about a column
|
||||||
|
uint32_t id(const column &);
|
||||||
|
const std::string &name(const column &);
|
||||||
|
const database::descriptor &describe(const column &);
|
||||||
|
size_t file_count(const column &);
|
||||||
|
size_t bytes(const column &);
|
||||||
|
|
||||||
// Get property data of a db column. R can optionally be uint64_t for some
|
// Get property data of a db column. R can optionally be uint64_t for some
|
||||||
// values. Refer to RocksDB documentation for more info.
|
// values. Refer to RocksDB documentation for more info.
|
||||||
template<class R = std::string> R property(column &, const string_view &name);
|
template<class R = std::string> R property(const column &, const string_view &name);
|
||||||
template<> std::string property(column &, const string_view &name);
|
template<> std::string property(const column &, const string_view &name);
|
||||||
template<> uint64_t property(column &, const string_view &name);
|
template<> uint64_t property(const column &, const string_view &name);
|
||||||
|
|
||||||
// Information about a column
|
|
||||||
const database::descriptor &describe(const column &);
|
|
||||||
const std::string &name(const column &);
|
|
||||||
uint32_t id(const column &);
|
|
||||||
size_t file_count(column &);
|
|
||||||
size_t bytes(column &);
|
|
||||||
|
|
||||||
// [GET] Tests if key exists
|
// [GET] Tests if key exists
|
||||||
bool has(column &, const string_view &key, const gopts & = {});
|
bool has(column &, const string_view &key, const gopts & = {});
|
||||||
|
|
|
@ -15,11 +15,12 @@ namespace ircd::db
|
||||||
{
|
{
|
||||||
struct database;
|
struct database;
|
||||||
|
|
||||||
template<class R = uint64_t> R property(database &, const string_view &name);
|
template<class R = uint64_t> R property(const database &, const string_view &name);
|
||||||
template<> uint64_t property(database &, const string_view &name);
|
template<> uint64_t property(const database &, const string_view &name);
|
||||||
const std::string &name(const database &);
|
const std::string &name(const database &);
|
||||||
uint64_t sequence(const database &); // Latest sequence number
|
uint64_t sequence(const database &); // Latest sequence number
|
||||||
void sync(database &); // Sync the write log (all columns)
|
|
||||||
|
void sync(database &);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Database instance
|
/// Database instance
|
||||||
|
|
30
ircd/db.cc
30
ircd/db.cc
|
@ -123,17 +123,19 @@ ircd::db::sync(database &d)
|
||||||
}
|
}
|
||||||
|
|
||||||
uint64_t
|
uint64_t
|
||||||
ircd::db::sequence(const database &d)
|
ircd::db::sequence(const database &cd)
|
||||||
{
|
{
|
||||||
|
database &d(const_cast<database &>(cd));
|
||||||
return d.d->GetLatestSequenceNumber();
|
return d.d->GetLatestSequenceNumber();
|
||||||
}
|
}
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
uint64_t
|
uint64_t
|
||||||
ircd::db::property(database &d,
|
ircd::db::property(const database &cd,
|
||||||
const string_view &name)
|
const string_view &name)
|
||||||
{
|
{
|
||||||
uint64_t ret;
|
uint64_t ret;
|
||||||
|
database &d(const_cast<database &>(cd));
|
||||||
if(!d.d->GetAggregatedIntProperty(slice(name), &ret))
|
if(!d.d->GetAggregatedIntProperty(slice(name), &ret))
|
||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
|
@ -3468,24 +3470,24 @@ ircd::db::read(column &column,
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
std::string
|
std::string
|
||||||
ircd::db::property(column &column,
|
ircd::db::property(const column &column,
|
||||||
const string_view &name)
|
const string_view &name)
|
||||||
{
|
{
|
||||||
std::string ret;
|
std::string ret;
|
||||||
database &d(column);
|
database::column &c(const_cast<db::column &>(column));
|
||||||
database::column &c(column);
|
database &d(const_cast<db::column &>(column));
|
||||||
d.d->GetProperty(c, slice(name), &ret);
|
d.d->GetProperty(c, slice(name), &ret);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
uint64_t
|
uint64_t
|
||||||
ircd::db::property(column &column,
|
ircd::db::property(const column &column,
|
||||||
const string_view &name)
|
const string_view &name)
|
||||||
{
|
{
|
||||||
uint64_t ret;
|
uint64_t ret;
|
||||||
database &d(column);
|
database::column &c(const_cast<db::column &>(column));
|
||||||
database::column &c(column);
|
database &d(const_cast<db::column &>(column));
|
||||||
if(!d.d->GetIntProperty(c, slice(name), &ret))
|
if(!d.d->GetIntProperty(c, slice(name), &ret))
|
||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
|
@ -3493,22 +3495,22 @@ ircd::db::property(column &column,
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t
|
size_t
|
||||||
ircd::db::bytes(column &column)
|
ircd::db::bytes(const column &column)
|
||||||
{
|
{
|
||||||
rocksdb::ColumnFamilyMetaData cfm;
|
rocksdb::ColumnFamilyMetaData cfm;
|
||||||
database::column &c(column);
|
database &d(const_cast<db::column &>(column));
|
||||||
database &d(c);
|
database::column &c(const_cast<db::column &>(column));
|
||||||
assert(bool(c.handle));
|
assert(bool(c.handle));
|
||||||
d.d->GetColumnFamilyMetaData(c.handle.get(), &cfm);
|
d.d->GetColumnFamilyMetaData(c.handle.get(), &cfm);
|
||||||
return cfm.size;
|
return cfm.size;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t
|
size_t
|
||||||
ircd::db::file_count(column &column)
|
ircd::db::file_count(const column &column)
|
||||||
{
|
{
|
||||||
rocksdb::ColumnFamilyMetaData cfm;
|
rocksdb::ColumnFamilyMetaData cfm;
|
||||||
database::column &c(column);
|
database &d(const_cast<db::column &>(column));
|
||||||
database &d(c);
|
database::column &c(const_cast<db::column &>(column));
|
||||||
assert(bool(c.handle));
|
assert(bool(c.handle));
|
||||||
d.d->GetColumnFamilyMetaData(c.handle.get(), &cfm);
|
d.d->GetColumnFamilyMetaData(c.handle.get(), &cfm);
|
||||||
return cfm.file_count;
|
return cfm.file_count;
|
||||||
|
|
Loading…
Reference in a new issue