]>
git.saurik.com Git - apt.git/blob - apt-pkg/contrib/configuration.h
1 // -*- mode: cpp; mode: fold -*-
3 // $Id: configuration.h,v 1.12 2001/02/20 07:03:17 jgg Exp $
4 /* ######################################################################
8 This class provides a configuration file and command line parser
9 for a tree-oriented configuration environment. All runtime configuration
12 Each configuration name is given as a fully scoped string such as
14 And has associated with it a text string. The Configuration class only
15 provides storage and lookup for this tree, other classes provide
16 configuration file formats (and parsers/emitters if needed).
18 Most things can get by quite happily with,
19 cout << _config->Find("Foo::Bar") << endl;
21 A special extension, support for ordered lists is provided by using the
22 special syntax, "block::list::" the trailing :: designates the
23 item as a list. To access the list you must use the tree function on
26 ##################################################################### */
28 #ifndef PKGLIB_CONFIGURATION_H
29 #define PKGLIB_CONFIGURATION_H
32 #pragma interface "apt-pkg/configuration.h"
49 string
FullTag(const Item
*Stop
= 0) const;
51 Item() : Parent(0), Child(0), Next(0) {};
59 Item
*Lookup(Item
*Head
,const char *S
,unsigned long Len
,bool Create
);
60 Item
*Lookup(const char *Name
,bool Create
);
61 inline const Item
*Lookup(const char *Name
) const
63 return ((Configuration
*)this)->Lookup(Name
,false);
68 string
Find(const char *Name
,const char *Default
= 0) const;
69 string
Find(string Name
,const char *Default
= 0) const {return Find(Name
.c_str(),Default
);};
70 string
FindFile(const char *Name
,const char *Default
= 0) const;
71 string
FindDir(const char *Name
,const char *Default
= 0) const;
72 int FindI(const char *Name
,int Default
= 0) const;
73 int FindI(string Name
,bool Default
= 0) const {return FindI(Name
.c_str(),Default
);};
74 bool FindB(const char *Name
,bool Default
= false) const;
75 bool FindB(string Name
,bool Default
= false) const {return FindB(Name
.c_str(),Default
);};
76 string
FindAny(const char *Name
,const char *Default
= 0) const;
78 inline void Set(string Name
,string Value
) {Set(Name
.c_str(),Value
);};
79 void CndSet(const char *Name
,string Value
);
80 void Set(const char *Name
,string Value
);
81 void Set(const char *Name
,int Value
);
83 inline bool Exists(string Name
) const {return Exists(Name
.c_str());};
84 bool Exists(const char *Name
) const;
85 bool ExistsAny(const char *Name
) const;
87 void Clear(string Name
);
89 inline const Item
*Tree(const char *Name
) const {return Lookup(Name
);};
93 Configuration(const Item
*Root
);
98 extern Configuration
*_config
;
100 bool ReadConfigFile(Configuration
&Conf
,string FName
,bool AsSectional
= false,
103 bool ReadConfigDir(Configuration
&Conf
,string Dir
,bool AsSectional
= false,