scaffold some common services
This commit is contained in:
49
common/config/LoggerConfig.hpp
Normal file
49
common/config/LoggerConfig.hpp
Normal file
@@ -0,0 +1,49 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "IConfig.hpp"
|
||||
|
||||
struct LoggerParams {
|
||||
std::string id;
|
||||
std::vector<std::string> flagsEnabled;
|
||||
bool showTime = false;
|
||||
bool showSourceTrace = false;
|
||||
bool coutEnabled = false;
|
||||
bool fileEnabled = false;
|
||||
std::string filePath;
|
||||
std::string fileName;
|
||||
};
|
||||
|
||||
class LoggerConfig : public IConfig<LoggerParams> {
|
||||
|
||||
public:
|
||||
|
||||
using IConfig<LoggerParams>::IConfig;
|
||||
|
||||
bool parseConfig(const libconfig::Setting& setting) override {
|
||||
|
||||
if (!setting.lookupValue("Id", params_->id)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
try {
|
||||
const libconfig::Setting& flags = setting.lookup("FlagsEnabled");
|
||||
for (int index = 0; index < flags.getLength(); ++index) {
|
||||
params_->flagsEnabled.push_back(static_cast<const char*>(flags[index]));
|
||||
}
|
||||
} catch (const libconfig::SettingException&) {
|
||||
params_->flagsEnabled.clear();
|
||||
return false;
|
||||
}
|
||||
|
||||
setting.lookupValue("ShowTime", params_->showTime);
|
||||
setting.lookupValue("ShowSourceTrace", params_->showSourceTrace);
|
||||
setting.lookupValue("CoutEnabled", params_->coutEnabled);
|
||||
setting.lookupValue("FileEnabled", params_->fileEnabled);
|
||||
setting.lookupValue("FilePath", params_->filePath);
|
||||
setting.lookupValue("FileName", params_->fileName);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
};
|
||||
Reference in New Issue
Block a user