Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

configuration.h

Go to the documentation of this file.
00001 #ifndef CONFIGURATION_H
00002 #define CONFIGURATION_H
00003 // $Id: configuration_h-source.html,v 1.1 2001/04/16 17:42:58 dvermeir Exp $
00004 
00005 #include <iostream>
00006 #include <set>
00007 #include "expression.h"
00008 
00010 class Configuration {
00011 public:
00012   enum CRITERIUM { DATE, PATH, DOMAIN, NONE };
00013   Configuration();
00014   ~Configuration();
00015 
00016   CRITERIUM       format() const { return format_; }
00017   unsigned int    max_level() const { return max_level_; }
00018   const set<unsigned int>& levels() const { return levels_; }
00019   const set<CRITERIUM>& criteria() const { return criteria_; }
00020   const Expression*     select() const { return select_; }
00021 
00022   unsigned int parse(istream&);
00023 
00024 
00025   friend ostream& operator<<(ostream&,const Configuration&);
00026 
00027 protected: 
00028   bool parse_format(istream&);
00029   bool parse_select(istream&);
00030   bool parse_exclude(istream&);
00031   Expression* parse_expression(istream&);
00032   CRITERIUM parse_criterium(istream&);
00033   bool parse_levels(istream&,set<unsigned int>& levels);
00034 
00035   void add_expression(Expression* e);
00036 private:
00037   CRITERIUM         format_;
00038   set<CRITERIUM>    criteria_;
00039   set<unsigned int> levels_;
00040   unsigned int      max_level_;
00041   AndExpression*    select_;
00042 };
00043 
00044 ostream& operator<<(ostream&,const Configuration::CRITERIUM&);
00045 #endif
00046 

httpstats-stage04 [ 7 April, 2001]