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

filter.hh

Go to the documentation of this file.
00001 // filter.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 FILTER_HH 00020 #define FILTER_HH 00021 00022 #include <string> 00023 extern "C" { 00024 #include <regex.h> 00025 #include <sys/types.h> 00026 } 00027 00028 // Filter modes 00029 #define CASE_DEFAULT REG_ICASE 00030 #define CASE_SENSITIVE 0 00031 #define CASE_INSENSITIVE REG_ICASE 00032 00033 using namespace std; 00034 00035 class Filter 00036 { 00037 private: 00038 string expr; 00039 regex_t comp_expr; 00040 regex_t comp_normal_expr; 00041 // Values can be CASE_SENSITIVE, CASE_INSENSITIVE, or CASE_DEFAULT: 00042 int case_sensitivity; 00043 bool negativity; 00044 bool compiled; 00045 00046 public: 00047 Filter (void); 00048 ~Filter (void); 00049 string expression (void) const; 00050 void set_expression (const char*); 00051 int compile (void); 00052 void set_negativity (bool); 00053 bool is_negative (void) const; 00054 int ccase (void) const; 00055 void set_case (int); 00056 const regex_t* comp_exp (void) const; 00057 }; 00058 00059 #endif

Generated on Sat Nov 27 14:29:56 2004 for mailfilter by doxygen 1.3.8