Begin removing several dependencies on Config object
Este commit está contenido en:
76
config.h
76
config.h
@@ -6,25 +6,17 @@
|
||||
#include <map>
|
||||
#include "permissions.h"
|
||||
#include "utils.h"
|
||||
class Config
|
||||
|
||||
class WikiGeneralConfig
|
||||
{
|
||||
private:
|
||||
std::map<std::string, std::string> configmap;
|
||||
std::string required(const std::string &key);
|
||||
|
||||
std::string optional(const std::string &key, std::string defaultvalue = "");
|
||||
int optional(const std::string &key, int defaulvalue);
|
||||
uint64_t optional(const std::string &key, uint64_t defaultvalue);
|
||||
|
||||
public:
|
||||
Config(const std::map<std::string, std::string> &map);
|
||||
// TODO: these could be references!?
|
||||
std::string wikiname;
|
||||
std::string wikipath;
|
||||
std::string templatepath;
|
||||
std::string templateprefix;
|
||||
std::string logfile;
|
||||
std::string anon_username;
|
||||
int max_pagename_length;
|
||||
int query_limit;
|
||||
};
|
||||
|
||||
struct ConfigUrls
|
||||
{
|
||||
std::string linkindex;
|
||||
std::string linkrecent;
|
||||
std::string linkallpages;
|
||||
@@ -46,6 +38,53 @@ class Config
|
||||
std::string linkhistorysort;
|
||||
std::string adminregisterurl;
|
||||
std::string userchangepwurl;
|
||||
};
|
||||
|
||||
class ConfigVariableResolver
|
||||
{
|
||||
private:
|
||||
const std::map<std::string, std::string> *configmap;
|
||||
|
||||
public:
|
||||
ConfigVariableResolver()
|
||||
{
|
||||
}
|
||||
|
||||
ConfigVariableResolver(const std::map<std::string, std::string> &configmap)
|
||||
{
|
||||
this->configmap = &configmap;
|
||||
}
|
||||
|
||||
std::string getConfig(const std::string &key) const
|
||||
{
|
||||
return utils::getKeyOrEmpty(*configmap, key);
|
||||
}
|
||||
};
|
||||
|
||||
class Config
|
||||
{
|
||||
private:
|
||||
std::map<std::string, std::string> configmap;
|
||||
std::string required(const std::string &key);
|
||||
|
||||
std::string optional(const std::string &key, std::string defaultvalue = "");
|
||||
int optional(const std::string &key, int defaulvalue);
|
||||
uint64_t optional(const std::string &key, uint64_t defaultvalue);
|
||||
|
||||
public:
|
||||
ConfigUrls urls;
|
||||
ConfigVariableResolver configVarResolver;
|
||||
|
||||
Config(const std::map<std::string, std::string> &map);
|
||||
|
||||
// TODO: these could be references!?
|
||||
std::string wikiname;
|
||||
std::string wikipath;
|
||||
std::string templatepath;
|
||||
std::string templateprefix;
|
||||
std::string logfile;
|
||||
std::string anon_username;
|
||||
|
||||
std::string connectionstring;
|
||||
|
||||
int query_limit;
|
||||
@@ -56,11 +95,6 @@ class Config
|
||||
uint64_t max_payload_length;
|
||||
|
||||
Permissions anon_permissions;
|
||||
|
||||
std::string getConfig(const std::string &key) const
|
||||
{
|
||||
return utils::getKeyOrEmpty(configmap, key);
|
||||
}
|
||||
};
|
||||
|
||||
class ConfigReader
|
||||
|
Referencia en una nueva incidencia
Block a user