Empirical
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
emp::Config Class Reference

Master configuration class that manages all of the settings. More...

#include <config.h>

Classes

class  ConfigGroup
 Information about a sub-group of settings. More...
 
class  ConfigLiveEntry
 Special settings entry for settings created during the run (only accissibly dynamically) More...
 
class  tConfigConstEntry
 Type-specific and CONST versions of ConfigEntry class to manage fixed settings. More...
 
class  tConfigEntry
 Type-specific versions of ConfigEntry class to manage settings. More...
 

Public Member Functions

 Config (const std::string &in_version="")
 
 ~Config ()
 
ConfigEntryoperator[] (const std::string &name)
 
auto begin () -> decltype(var_map.begin())
 
auto end () -> decltype(var_map.end())
 
ConfigSetExpandOK (bool ok=true)
 
bool Has (const std::string &setting_name) const
 
bool ResolveAlias (std::string &setting_name) const
 
std::string Get (std::string setting_name)
 
ConfigSet (std::string setting_name, const std::string &new_value, const std::string &in_desc="")
 
std::string operator() (const std::string &setting_name)
 
Configoperator() (const std::string &setting_name, const std::string &new_value)
 
void AddAlias (const std::string &base_name, const std::string &alias_name)
 
void Write (std::ostream &out)
 
void Write (std::string filename)
 
void WriteMacros (std::ostream &out, bool as_const=false)
 
void WriteMacros (std::string filename, bool as_const=false)
 
bool Read (std::istream &input)
 
bool Read (std::string filename)
 
void AddCommand (const std::string &command_name, std::function< bool(std::string)> command_fun)
 
void AddNewCallback (const std::string &type_name, std::function< bool(std::string)> new_fun)
 
void AddUseCallback (const std::string &type_name, std::function< bool(std::string)> use_fun)
 
template<class MANAGED_TYPE >
void AddManagedType (const std::string &type_keyword, const std::string &command_keyword, std::function< bool(MANAGED_TYPE &, std::string)> fun_callback)
 

Protected Member Functions

ConfigGroupGetActiveGroup ()
 
ConfigEntryGetActiveEntry ()
 
bool IsVarChar (const char c)
 
void ProcessLine (std::string &cur_line, std::string &extras)
 

Protected Attributes

emp::vector< std::string > class_names
 
std::map< std::string, ConfigEntry * > var_map
 
std::string version_id
 
emp::vector< ConfigGroup * > group_set
 
std::stringstream warnings
 
int delay_warnings
 
std::map< std::string, std::string > alias_map
 
std::map< std::string, ConfigManager_Base * > type_manager_map
 
std::map< std::string, std::function< bool(std::string)> > command_map
 
std::map< std::string, std::function< bool(std::string)> > new_map
 
std::map< std::string, std::function< bool(std::string)> > use_map
 
bool expand_ok
 

Detailed Description

Master configuration class that manages all of the settings.

Constructor & Destructor Documentation

emp::Config::Config ( const std::string &  in_version = "")
inline
emp::Config::~Config ( )
inline

Member Function Documentation

void emp::Config::AddAlias ( const std::string &  base_name,
const std::string &  alias_name 
)
inline
void emp::Config::AddCommand ( const std::string &  command_name,
std::function< bool(std::string)>  command_fun 
)
inline
template<class MANAGED_TYPE >
void emp::Config::AddManagedType ( const std::string &  type_keyword,
const std::string &  command_keyword,
std::function< bool(MANAGED_TYPE &, std::string)>  fun_callback 
)
inline
void emp::Config::AddNewCallback ( const std::string &  type_name,
std::function< bool(std::string)>  new_fun 
)
inline
void emp::Config::AddUseCallback ( const std::string &  type_name,
std::function< bool(std::string)>  use_fun 
)
inline
auto emp::Config::begin ( ) -> decltype(var_map.begin())
inline
auto emp::Config::end ( ) -> decltype(var_map.end())
inline
std::string emp::Config::Get ( std::string  setting_name)
inline
ConfigEntry* emp::Config::GetActiveEntry ( )
inlineprotected
ConfigGroup* emp::Config::GetActiveGroup ( )
inlineprotected
bool emp::Config::Has ( const std::string &  setting_name) const
inline
bool emp::Config::IsVarChar ( const char  c)
inlineprotected
std::string emp::Config::operator() ( const std::string &  setting_name)
inline
Config& emp::Config::operator() ( const std::string &  setting_name,
const std::string &  new_value 
)
inline
ConfigEntry* emp::Config::operator[] ( const std::string &  name)
inline
void emp::Config::ProcessLine ( std::string &  cur_line,
std::string &  extras 
)
inlineprotected
bool emp::Config::Read ( std::istream &  input)
inline

Read in from a text representation (typically a file) to set the state of Config. Return success state.

bool emp::Config::Read ( std::string  filename)
inline
bool emp::Config::ResolveAlias ( std::string &  setting_name) const
inline
Config& emp::Config::Set ( std::string  setting_name,
const std::string &  new_value,
const std::string &  in_desc = "" 
)
inline
Config& emp::Config::SetExpandOK ( bool  ok = true)
inline
void emp::Config::Write ( std::ostream &  out)
inline
void emp::Config::Write ( std::string  filename)
inline
void emp::Config::WriteMacros ( std::ostream &  out,
bool  as_const = false 
)
inline
void emp::Config::WriteMacros ( std::string  filename,
bool  as_const = false 
)
inline

Member Data Documentation

std::map<std::string, std::string> emp::Config::alias_map
protected
emp::vector<std::string> emp::Config::class_names
protected
std::map<std::string, std::function<bool(std::string)> > emp::Config::command_map
protected
int emp::Config::delay_warnings
protected
bool emp::Config::expand_ok
protected
emp::vector<ConfigGroup *> emp::Config::group_set
protected
std::map<std::string, std::function<bool(std::string)> > emp::Config::new_map
protected
std::map<std::string, ConfigManager_Base *> emp::Config::type_manager_map
protected
std::map<std::string, std::function<bool(std::string)> > emp::Config::use_map
protected
std::map<std::string, ConfigEntry *> emp::Config::var_map
protected
std::string emp::Config::version_id
protected
std::stringstream emp::Config::warnings
protected

The documentation for this class was generated from the following file: