File: HtConfiguration.h

package info (click to toggle)
htdig 1%3A3.2.0b6-21
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 21,292 kB
  • sloc: ansic: 49,632; cpp: 46,468; sh: 17,400; xml: 4,180; perl: 2,543; makefile: 888; php: 79; asm: 14
file content (95 lines) | stat: -rw-r--r-- 3,216 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
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   <https://htdig.sourceforge.net/>
// 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