diff options
Diffstat (limited to 'debian/htdig/htdig-3.2.0b6/htcommon/HtConfiguration.h')
-rw-r--r-- | debian/htdig/htdig-3.2.0b6/htcommon/HtConfiguration.h | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/debian/htdig/htdig-3.2.0b6/htcommon/HtConfiguration.h b/debian/htdig/htdig-3.2.0b6/htcommon/HtConfiguration.h new file mode 100644 index 00000000..accb379a --- /dev/null +++ b/debian/htdig/htdig-3.2.0b6/htcommon/HtConfiguration.h @@ -0,0 +1,95 @@ +// +// HtConfiguration.h +// +// HtConfiguration: extends Configuration class +// to implement Apache-style config. Uses parser +// generated by Bison from conf_parser.yxx +// +// Part of the ht://Dig package <http://www.htdig.org/> +// Copyright (c) 1995-2004 The ht://Dig Group +// For copyright details, see the file COPYING in your distribution +// or the GNU Library General Public License (LGPL) version 2 or later +// <http://www.gnu.org/copyleft/lgpl.html> +// +// $Id: HtConfiguration.h,v 1.5 2004/05/28 13:15:12 lha Exp $ +// + + +#ifndef _HtConfiguration_h_ +#define _HtConfiguration_h_ + +#include"Configuration.h" +#include "ParsedString.h" +#include "URL.h" + +class HtConfiguration : public Configuration +{ + public: + const String Find(const String& name) const {return(Configuration::Find(name));} + int Value(const String& name, int default_value = 0) const + {return(Configuration::Value (name,default_value));} + double Double(const String& name, double default_value = 0) const + {return(Configuration::Double (name,default_value));} + int Boolean(const String& name, int default_value = 0) const + {return(Configuration::Boolean(name,default_value));} + void Add(const String& str){Configuration::Add(str);} + void Add(const String& name, const String& value) + {Configuration::Add(name,value);} + void AddParsed(const String& name, const String& value) + {Configuration::AddParsed(name,value);} + + void Add(const char *name, const char *value, + Configuration *aList); + const String Find(URL *aUrl, const char *value) const; + const String Find(const char *blockName, const char *name, const char *value) const; + int Value(const char *blockName, const char *name, const char *value, + int default_value = 0); + double Double(const char *blockName, const char *name, const char *value, + double default_value = 0); + int Boolean(const char *blockName, const char *name, const char *value, + int default_value = 0); + int Value(URL *aUrl,const char *value,int default_value = 0); + double Double(URL *aUrl,const char *value,double default_value = 0); + int Boolean(URL *aUrl,const char *value,int default_value = 0); + inline + String ParseString(const char*) const; // parse ${var} string + String getFileName() const { return FileName; } + + // + // We need some way of reading in the database from a configuration file + // ... this uses the parser + virtual int Read(const String& filename); + + protected: + Dictionary dcBlocks; + Dictionary dcUrls; + String FileName; // config's file name + + public: + HtConfiguration():Configuration() + {;} + + HtConfiguration(const HtConfiguration& config) : + Configuration(config), + dcBlocks(config.dcBlocks), + dcUrls(config.dcUrls) + { + ; + } + + static HtConfiguration* const config(); + + private: + static HtConfiguration* _config; +}; + +//******************************************************************** +// +inline +String HtConfiguration::ParseString(const char *str) const { + return ParsedString(str).get(dcGlobalVars); +} + +#endif + + |