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);
99 void Clear(std::string
const &List, std::string
const &Value);
100 void Clear(std::string
const &List,
int const &Value);
102 inline const Item *Tree(
const char *Name)
const {
return Lookup(Name);};
104 inline void Dump() { Dump(std::clog); };
105 void Dump(std::ostream& str);
106 void Dump(std::ostream& str,
char const *
const root,
107 char const *
const format,
bool const emptyValue);
116 std::vector<regex_t *> patterns;
117 void clearPatterns();
124 bool Match(
char const * str)
const;
125 bool Match(std::string
const &str)
const {
return Match(str.c_str()); };
134 bool ReadConfigFile(
Configuration &Conf,
const std::string &FName,
135 bool const &AsSectional =
false,
136 unsigned const &Depth = 0);
138 bool ReadConfigDir(
Configuration &Conf,
const std::string &Dir,
139 bool const &AsSectional =
false,
140 unsigned const &Depth = 0);