0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-09-25 18:08:52 +02:00

ircd::db::database::snapshot: Minor cleanup; inline, noexcept.

This commit is contained in:
Jason Volk 2023-02-16 15:59:13 -08:00
parent 4edf7f0052
commit d48e6ccb8d
2 changed files with 36 additions and 13 deletions

View file

@ -19,8 +19,8 @@ namespace rocksdb
namespace ircd::db namespace ircd::db
{ {
uint64_t sequence(const database::snapshot &); // Sequence of a snapshot uint64_t sequence(const database::snapshot &) noexcept; // Sequence of a snapshot
uint64_t sequence(const rocksdb::Snapshot *const &); uint64_t sequence(const rocksdb::Snapshot *) noexcept;
} }
/// Database snapshot object. Maintaining this object will maintain a /// Database snapshot object. Maintaining this object will maintain a
@ -31,12 +31,41 @@ struct ircd::db::database::snapshot
std::shared_ptr<const rocksdb::Snapshot> s; std::shared_ptr<const rocksdb::Snapshot> s;
public: public:
operator const rocksdb::Snapshot *() const { return s.get(); } operator const rocksdb::Snapshot *() const;
explicit operator bool() const { return bool(s); } explicit operator bool() const;
bool operator !() const { return !s; } bool operator !() const;
explicit snapshot(database &); explicit snapshot(database &);
snapshot() = default; snapshot() = default;
~snapshot() noexcept; ~snapshot() noexcept;
}; };
inline bool
ircd::db::database::snapshot::operator!()
const
{
return !s;
}
inline ircd::db::database::snapshot::operator
bool()
const
{
return bool(s);
}
inline ircd::db::database::snapshot::operator
const rocksdb::Snapshot *()
const
{
return s.get();
}
inline uint64_t
ircd::db::sequence(const database::snapshot &s)
noexcept
{
const rocksdb::Snapshot *const rs(s);
return sequence(rs);
}

View file

@ -2109,14 +2109,8 @@ const noexcept
// //
uint64_t uint64_t
ircd::db::sequence(const database::snapshot &s) ircd::db::sequence(const rocksdb::Snapshot *const rs)
{ noexcept
const rocksdb::Snapshot *const rs(s);
return sequence(rs);
}
uint64_t
ircd::db::sequence(const rocksdb::Snapshot *const &rs)
{ {
return likely(rs)? rs->GetSequenceNumber() : 0ULL; return likely(rs)? rs->GetSequenceNumber() : 0ULL;
} }