00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
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
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
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