24 lines
716 B
C++
24 lines
716 B
C++
#pragma once
|
|
|
|
#include "IModuleDatabase.h"
|
|
|
|
class JSONModuleDatabase final : public IModuleDatabase
|
|
{
|
|
public:
|
|
JSONModuleDatabase(const std::string& baseDir);
|
|
JSONModuleDatabase(const JSONModuleDatabase&) = delete;
|
|
JSONModuleDatabase& operator=(const JSONModuleDatabase&) = delete;
|
|
|
|
public:
|
|
std::map<std::string, ModuleVersion> listModules() override;
|
|
boost::optional<Module> findModule(const std::string& moduleId) override;
|
|
void storeModule(const Module& module) override;
|
|
|
|
private:
|
|
void storeModuleList(const std::map<std::string, ModuleVersion>& moduleList);
|
|
void updateModuleList(const std::string& moduleId, const ModuleVersion& version);
|
|
|
|
private:
|
|
std::string m_baseDir;
|
|
};
|