libLicenseClient/api/JSONModuleDatabase.h
2018-03-27 23:03:06 +02:00

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;
};