From 7cdcd44e0ca10ebdc796638190ed1d9b45d99ef0 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Mon, 15 Jan 2024 12:31:20 +1100 Subject: Begin migration of remaining screens to Lua --- src/database/database.cpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'src/database/database.cpp') diff --git a/src/database/database.cpp b/src/database/database.cpp index 27b5c24c..4bd9d2db 100644 --- a/src/database/database.cpp +++ b/src/database/database.cpp @@ -17,6 +17,7 @@ #include #include #include +#include #include #include "collation.hpp" @@ -198,6 +199,33 @@ Database::~Database() { sIsDbOpen.store(false); } +auto Database::schemaVersion() -> std::string { + // If the database is open, then it must have the current schema. + return std::to_string(kCurrentDbVersion); +} + +auto Database::sizeOnDiskBytes() -> size_t { + auto lock = drivers::acquire_spi(); + + FF_DIR dir; + FRESULT res = f_opendir(&dir, kDbPath); + if (res != FR_OK) { + return 0; + } + + size_t total_size = 0; + for (;;) { + FILINFO info; + res = f_readdir(&dir, &info); + if (res != FR_OK || info.fname[0] == 0) { + break; + } + total_size += info.fsize; + } + + return total_size; +} + auto Database::put(const std::string& key, const std::string& val) -> void { db_->Put(leveldb::WriteOptions{}, kKeyCustom + key, val); } -- cgit v1.2.3