Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members

Checker.hh

Go to the documentation of this file.
00001 // Checker.hh - source file for the mailfilter program
00002 // Copyright (c) 2000 - 2004  Andreas Bauer <baueran@in.tum.de>
00003 //
00004 // This program is free software; you can redistribute it and/or modify
00005 // it under the terms of the GNU General Public License as published by
00006 // the Free Software Foundation; either version 2 of the License, or
00007 // (at your option) any later version.
00008 //
00009 // This program is distributed in the hope that it will be useful,
00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012 // GNU General Public License for more details.
00013 //
00014 // You should have received a copy of the GNU General Public License
00015 // along with this program; if not, write to the Free Software
00016 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
00017 // USA.
00018 
00019 #ifndef CHECKER_HH
00020 #define CHECKER_HH
00021 
00022 #include <vector>
00023 #include <string>
00024 #include "Header.hh"
00025 #include "RegExp.hh"
00026 #include "Preferences.hh"
00027 
00028 #ifdef HAVE_CONFIG_H
00029 #include "config.h"
00030 #endif
00031 
00032 using namespace std;
00033 
00034 namespace check {
00035   
00036   class Checker {
00037   private:
00038     vector<string> matchingStrings;
00039     vector<string> matchingFilters;
00040     pref::Preferences* prefs;
00041     re::RegExp regExp;
00042 
00043   public:
00044     Checker(pref::Preferences*);
00045     ~Checker();
00046     int duplicates(msg::Header*, vector<string>*);
00047     int lineLength(msg::Header*);
00048     int friends(msg::Header*);
00049     int size(msg::Header*);
00050     int filters(msg::Header*);
00051     int negFilters(msg::Header*);
00052     int scores(msg::Header*);
00053     int negScores(msg::Header*);
00054     int maxSizeScore(msg::Header*);
00055 
00056     void cleanMatchingStrings(void);
00057     void cleanMatchingFilters(void);
00058     void setMatchingString(const string);
00059     vector<string>* getMatchingStrings(void);
00060     void setMatchingFilter(const string);
00061     vector<string>* getMatchingFilters(void);
00062   };
00063 
00064 }
00065 
00066 #endif

Generated on Sat Feb 14 18:53:12 2004 for mailfilter by doxygen 1.3.5