0
0
Fork 0
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:
Jason Volk 2018-03-22 19:35:50 -07:00
parent faefd5dd64
commit cbfb105765
3 changed files with 31 additions and 28 deletions

View file

@ -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 & = {});

View file

@ -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

View file

@ -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;