summaryrefslogtreecommitdiff
path: root/apt-pkg/contrib/configuration.h
diff options
context:
space:
mode:
authorArch Librarian <arch@canonical.com>2004-09-20 16:50:41 +0000
committerArch Librarian <arch@canonical.com>2004-09-20 16:50:41 +0000
commit6c139d6e362f04a1582e8a8f511f8aeab031fecf (patch)
treec200b8f51da9bcfe612b7ceb645e6eec9ebac9f1 /apt-pkg/contrib/configuration.h
parent2246928b428c3ece2c2743da5b0bb63257e37a85 (diff)
Sync
Author: jgg Date: 1998-07-07 04:17:00 GMT Sync
Diffstat (limited to 'apt-pkg/contrib/configuration.h')
-rw-r--r--apt-pkg/contrib/configuration.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/apt-pkg/contrib/configuration.h b/apt-pkg/contrib/configuration.h
new file mode 100644
index 000000000..7476346ef
--- /dev/null
+++ b/apt-pkg/contrib/configuration.h
@@ -0,0 +1,61 @@
+// -*- mode: cpp; mode: fold -*-
+// Description /*{{{*/
+// $Id: configuration.h,v 1.1 1998/07/07 04:17:10 jgg Exp $
+/* ######################################################################
+
+ Configuration Class
+
+ This class provides a configuration file and command line parser
+ for a tree-oriented configuration environment. All runtime configuration
+ is stored in here.
+
+ Each configuration name is given as a fully scoped string such as
+ Foo::Bar
+ And has associated with it a text string. The Configuration class only
+ provides storage and lookup for this tree, other classes provide
+ configuration file formats (and parsers/emitters if needed).
+
+ Most things can get by quite happily with,
+ cout << _config->Find("Foo::Bar") << endl;
+
+ ##################################################################### */
+ /*}}}*/
+// Header section: pkglib
+#ifndef PKGLIB_TAGFILE_H
+#define PKGLIB_TAGFILE_H
+
+#ifdef __GNUG__
+#pragma interface "pkglib/configuration.h"
+#endif
+
+#include <string>
+
+class Configuration
+{
+ struct Item
+ {
+ string Value;
+ string Tag;
+ Item *Child;
+ Item *Next;
+ Item() : Child(0), Next(0) {};
+ };
+ Item *Root;
+
+ Item *Lookup(Item *Head,const char *S,unsigned long Len,bool Create);
+ Item *Lookup(const char *Name,bool Create);
+
+ public:
+
+ string Find(const char *Name,const char *Default = 0);
+ int FindI(const char *Name,int Default = 0);
+
+ void Set(const char *Name,string Value);
+ void Set(const char *Name,int Value);
+
+ Configuration();
+};
+
+extern Configuration *_config;
+
+#endif