git / moonbite-core / src/libmw/src/db/MMRInfoDB.cpp · raw

#include <mw/db/MMRInfoDB.h>#include "common/Database.h"#include <limits>static const DBTable MMR_TABLE = { 'M' };static const uint32_t LATEST_INDEX = std::numeric_limits<uint32_t>::max();MMRInfoDB::MMRInfoDB(mw::DBWrapper* pDBWrapper, mw::DBBatch* pBatch)    : m_pDatabase(std::make_unique<Database>(pDBWrapper, pBatch)) { }MMRInfoDB::~MMRInfoDB() { }std::unique_ptr<MMRInfo> MMRInfoDB::GetByIndex(const uint32_t index) const{    auto pEntry = m_pDatabase->Get<MMRInfo>(MMR_TABLE, std::to_string(index));    return pEntry != nullptr ? std::make_unique<MMRInfo>(*pEntry->item) : nullptr;}std::unique_ptr<MMRInfo> MMRInfoDB::GetLatest() const{    return GetByIndex(LATEST_INDEX);}void MMRInfoDB::Save(const MMRInfo& info){    std::vector<DBEntry<MMRInfo>> entries{        DBEntry<MMRInfo>(std::to_string(info.index), info),        DBEntry<MMRInfo>(std::to_string(LATEST_INDEX), info)    };    m_pDatabase->Put(MMR_TABLE, entries);}