28 #ifndef PKGLIB_CONFIGURATION_H
29 #define PKGLIB_CONFIGURATION_H
37 #ifndef APT_8_CLEANER_HEADERS
53 std::string FullTag(
const Item *Stop = 0)
const;
55 Item() : Parent(0), Child(0), Next(0) {};
63 Item *Lookup(
Item *Head,
const char *S,
unsigned long const &Len,
bool const &Create);
64 Item *Lookup(
const char *Name,
const bool &Create);
65 inline const Item *Lookup(
const char *Name)
const
72 std::string Find(
const char *Name,
const char *Default = 0)
const;
73 std::string Find(std::string
const &Name,
const char *Default = 0)
const {
return Find(Name.c_str(),Default);};
74 std::string Find(std::string
const &Name, std::string
const &Default)
const {
return Find(Name.c_str(),Default.c_str());};
75 std::string FindFile(
const char *Name,
const char *Default = 0)
const;
76 std::string FindDir(
const char *Name,
const char *Default = 0)
const;
77 std::vector<std::string> FindVector(
const char *Name)
const;
78 std::vector<std::string> FindVector(std::string
const &Name)
const {
return FindVector(Name.c_str()); };
79 int FindI(
const char *Name,
int const &Default = 0)
const;
80 int FindI(std::string
const &Name,
int const &Default = 0)
const {
return FindI(Name.c_str(),Default);};
81 bool FindB(
const char *Name,
bool const &Default =
false)
const;
82 bool FindB(std::string
const &Name,
bool const &Default =
false)
const {
return FindB(Name.c_str(),Default);};
83 std::string FindAny(
const char *Name,
const char *Default = 0)
const;
85 inline void Set(
const std::string &Name,
const std::string &Value) {Set(Name.c_str(),Value);};
86 void CndSet(
const char *Name,
const std::string &Value);
87 void CndSet(
const char *Name,
const int Value);
88 void Set(
const char *Name,
const std::string &Value);
89 void Set(
const char *Name,
const int &Value);
91 inline bool Exists(
const std::string &Name)
const {
return Exists(Name.c_str());};
92 bool Exists(
const char *Name)
const;
93 bool ExistsAny(
const char *Name)
const;
96 void Clear(
const std::string &Name);
100 void Clear(std::string
const &List, std::string
const &Value);
101 void Clear(std::string
const &List,
int const &Value);
103 inline const Item *Tree(
const char *Name)
const {
return Lookup(Name);};
105 inline void Dump() { Dump(std::clog); };
106 void Dump(std::ostream& str);
107 void Dump(std::ostream& str,
char const *
const root,
108 char const *
const format,
bool const emptyValue);
117 std::vector<regex_t *> patterns;
118 void clearPatterns();
125 bool Match(
char const * str)
const;
126 bool Match(std::string
const &str)
const {
return Match(str.c_str()); };
135 bool ReadConfigFile(
Configuration &Conf,
const std::string &FName,
136 bool const &AsSectional =
false,
137 unsigned const &Depth = 0);
139 bool ReadConfigDir(
Configuration &Conf,
const std::string &Dir,
140 bool const &AsSectional =
false,
141 unsigned const &Depth = 0);