lmdb: Use namespace and have reflective-rapidjson code in its own header

This commit is contained in:
Martchus 2022-01-18 22:25:28 +01:00
parent f4774cac56
commit fc32f790fb
4 changed files with 11 additions and 9 deletions

2
3rdparty/lmdb-safe vendored

@ -1 +1 @@
Subproject commit bd72fce0a7e5ec77a042d2701158f58f64563172
Subproject commit d53687bdee68ce1f9eb870564c1e972fb9cab7c7

View File

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

View File

@ -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<MDBEnv> &env, PackageCache &packageCache, std::string_view uniqueDatabaseName)
DatabaseStorage::DatabaseStorage(const std::shared_ptr<LMDBSafe::MDBEnv> &env, PackageCache &packageCache, std::string_view uniqueDatabaseName)
: packageCache(packageCache)
, packages(env, argsToString(uniqueDatabaseName, "_packages"))
, providedDeps(env, argsToString(uniqueDatabaseName, "_provides"))

View File

@ -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<Package, index_on<Package, std::string, &Package::name>>;
using DependencyStorage = TypedDBI<DatabaseDependency, index_on<Dependency, std::string, &DatabaseDependency::name>>;
using PackageStorage = LMDBSafe::TypedDBI<Package, LMDBSafe::index_on<Package, std::string, &Package::name>>;
using DependencyStorage = LMDBSafe::TypedDBI<DatabaseDependency, LMDBSafe::index_on<Dependency, std::string, &DatabaseDependency::name>>;
using LibraryDependencyStorage
= TypedDBI<DatabaseLibraryDependency, index_on<DatabaseLibraryDependency, std::string, &DatabaseLibraryDependency::name>>;
= LMDBSafe::TypedDBI<DatabaseLibraryDependency, LMDBSafe::index_on<DatabaseLibraryDependency, std::string, &DatabaseLibraryDependency::name>>;
struct PackageCache;
struct DatabaseStorage {
explicit DatabaseStorage(const std::shared_ptr<MDBEnv> &env, PackageCache &packageCache, std::string_view uniqueDatabaseName);
explicit DatabaseStorage(const std::shared_ptr<LMDBSafe::MDBEnv> &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<MDBEnv> m_env;
std::shared_ptr<LMDBSafe::MDBEnv> m_env;
};
struct PackageCacheRef {
@ -149,7 +150,7 @@ struct StorageDistribution {
std::unique_ptr<DatabaseStorage> forDatabase(std::string_view uniqueDatabaseName);
private:
std::shared_ptr<MDBEnv> m_env;
std::shared_ptr<LMDBSafe::MDBEnv> m_env;
PackageCache m_packageCache;
};