diff options
author | David Kalnischkies <david@kalnischkies.de> | 2014-02-24 23:10:25 +0100 |
---|---|---|
committer | David Kalnischkies <david@kalnischkies.de> | 2014-03-13 13:57:34 +0100 |
commit | a5414e56403537678d5be87acf59c37a05f55719 (patch) | |
tree | e68d95ae7867e4723e4aa69f8a9ede1e36eb0df2 /apt-pkg/contrib/configuration.h | |
parent | fa19cc9573aac19cfbf43364d4b5660c9ab645bc (diff) |
add default and override handling for Cnf::FindVector
Automatically handle the override of list options via its parent value
which can even be a comma-separated list of values. It also adds an easy
way of providing a default for the list.
Diffstat (limited to 'apt-pkg/contrib/configuration.h')
-rw-r--r-- | apt-pkg/contrib/configuration.h | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/apt-pkg/contrib/configuration.h b/apt-pkg/contrib/configuration.h index 8e09ea0a6..c256139f4 100644 --- a/apt-pkg/contrib/configuration.h +++ b/apt-pkg/contrib/configuration.h @@ -74,8 +74,22 @@ class Configuration std::string Find(std::string const &Name, std::string const &Default) const {return Find(Name.c_str(),Default.c_str());}; std::string FindFile(const char *Name,const char *Default = 0) const; std::string FindDir(const char *Name,const char *Default = 0) const; + /** return a list of child options + * + * Options like Acquire::Languages are handled as lists which + * can be overridden and have a default. For the later two a comma + * separated list of values is supported. + * + * \param Name of the parent node + * \param Default list of values separated by commas */ + std::vector<std::string> FindVector(const char *Name, std::string const &Default) const; + std::vector<std::string> FindVector(std::string const &Name, std::string const &Default) const { return FindVector(Name.c_str(), Default); }; +#if (APT_PKG_MAJOR >= 4 && APT_PKG_MINOR >= 13) + std::vector<std::string> FindVector(const char *Name) const { return FindVector(Name, ""); }; +#else std::vector<std::string> FindVector(const char *Name) const; - std::vector<std::string> FindVector(std::string const &Name) const { return FindVector(Name.c_str()); }; +#endif + std::vector<std::string> FindVector(std::string const &Name) const { return FindVector(Name.c_str(), ""); }; int FindI(const char *Name,int const &Default = 0) const; int FindI(std::string const &Name,int const &Default = 0) const {return FindI(Name.c_str(),Default);}; bool FindB(const char *Name,bool const &Default = false) const; |