src/options/Config.h

00001 // -*- c++ -*- 
00002 #ifndef HT_OPTIONS_CONFIG_H
00003 #define HT_OPTIONS_CONFIG_H
00004 
00005 #include <hightest/config.h>
00006 #include <utils/Error.h>
00007 
00008 #include <options/Attribute.h>
00009 
00010 #include <string>
00011 #include <vector>
00012 
00013 namespace ht {
00014     namespace options {
00016         class ConfigError : public utils::BaseException {
00017         public:
00019             ConfigError(const std::string &s) : BaseException(s) {}
00020         };
00021 
00022         class Config;
00023         typedef std::vector<Config *> Configs;
00024 
00026         class Config {
00027         public:
00028             virtual ~Config();
00030             virtual Attribute   attribute(const std::string &) const = 0;
00031 
00034             virtual Attribute   attribute(const std::string &, 
00035                                           const std::string &) const = 0;
00036 
00042             virtual const Config *
00043                                 child(const std::string &)     const = 0;
00044 
00046             virtual Configs     children()                     const = 0;
00047 
00049             virtual std::string name()                         const = 0;
00050         };
00051     }
00052 }
00053 
00054 #endif

Generated on Thu Jan 3 15:26:45 2008 by  doxygen 1.5.2