From fc32f790fbf0c406ab1c51b2d9084b696e0d13fb Mon Sep 17 00:00:00 2001 From: Martchus Date: Tue, 18 Jan 2022 22:25:28 +0100 Subject: [PATCH] lmdb: Use namespace and have reflective-rapidjson code in its own header --- 3rdparty/lmdb-safe | 2 +- libpkg/CMakeLists.txt | 1 + libpkg/data/storage.cpp | 4 ++-- libpkg/data/storageprivate.h | 13 +++++++------ 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/3rdparty/lmdb-safe b/3rdparty/lmdb-safe index bd72fce..d53687b 160000 --- a/3rdparty/lmdb-safe +++ b/3rdparty/lmdb-safe @@ -1 +1 @@ -Subproject commit bd72fce0a7e5ec77a042d2701158f58f64563172 +Subproject commit d53687bdee68ce1f9eb870564c1e972fb9cab7c7 diff --git a/libpkg/CMakeLists.txt b/libpkg/CMakeLists.txt index d20d883..a02e3cc 100644 --- a/libpkg/CMakeLists.txt +++ b/libpkg/CMakeLists.txt @@ -33,6 +33,7 @@ set(SRC_FILES parser/siglevel.cpp lmdb-safe/lmdb-safe.hh lmdb-safe/lmdb-typed.hh + lmdb-safe/lmdb-reflective.hh lmdb-safe/lmdb-safe.cc lmdb-safe/lmdb-typed.cc) set(TEST_HEADER_FILES tests/parser_helper.h) diff --git a/libpkg/data/storage.cpp b/libpkg/data/storage.cpp index 7f24d3f..db1ecb5 100644 --- a/libpkg/data/storage.cpp +++ b/libpkg/data/storage.cpp @@ -8,7 +8,7 @@ namespace LibPkg { StorageDistribution::StorageDistribution(const char *path, std::uint32_t maxDbs) { - m_env = getMDBEnv(path, MDB_NOSUBDIR, 0600, maxDbs); + m_env = LMDBSafe::getMDBEnv(path, MDB_NOSUBDIR, 0600, maxDbs); } PackageSpec PackageCache::retrieve(DatabaseStorage &databaseStorage, const std::string &packageName) @@ -135,7 +135,7 @@ void PackageCache::clearCacheOnly(DatabaseStorage &databaseStorage) m_packages.clear(databaseStorage); } -DatabaseStorage::DatabaseStorage(const std::shared_ptr &env, PackageCache &packageCache, std::string_view uniqueDatabaseName) +DatabaseStorage::DatabaseStorage(const std::shared_ptr &env, PackageCache &packageCache, std::string_view uniqueDatabaseName) : packageCache(packageCache) , packages(env, argsToString(uniqueDatabaseName, "_packages")) , providedDeps(env, argsToString(uniqueDatabaseName, "_provides")) diff --git a/libpkg/data/storageprivate.h b/libpkg/data/storageprivate.h index 431d47e..d15823c 100644 --- a/libpkg/data/storageprivate.h +++ b/libpkg/data/storageprivate.h @@ -3,6 +3,7 @@ #include "./package.h" +#include "../lmdb-safe/lmdb-reflective.hh" #include "../lmdb-safe/lmdb-safe.hh" #include "../lmdb-safe/lmdb-typed.hh" @@ -17,15 +18,15 @@ namespace LibPkg { using StorageID = std::uint32_t; -using PackageStorage = TypedDBI>; -using DependencyStorage = TypedDBI>; +using PackageStorage = LMDBSafe::TypedDBI>; +using DependencyStorage = LMDBSafe::TypedDBI>; using LibraryDependencyStorage - = TypedDBI>; + = LMDBSafe::TypedDBI>; struct PackageCache; struct DatabaseStorage { - explicit DatabaseStorage(const std::shared_ptr &env, PackageCache &packageCache, std::string_view uniqueDatabaseName); + explicit DatabaseStorage(const std::shared_ptr &env, PackageCache &packageCache, std::string_view uniqueDatabaseName); PackageCache &packageCache; PackageStorage packages; DependencyStorage providedDeps; @@ -34,7 +35,7 @@ struct DatabaseStorage { LibraryDependencyStorage requiredLibs; private: - std::shared_ptr m_env; + std::shared_ptr m_env; }; struct PackageCacheRef { @@ -149,7 +150,7 @@ struct StorageDistribution { std::unique_ptr forDatabase(std::string_view uniqueDatabaseName); private: - std::shared_ptr m_env; + std::shared_ptr m_env; PackageCache m_packageCache; };