kmail
antispamconfig.hGo to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 #ifndef __KMAIL_ANTISPAMCONFIG_H__
00035 #define __KMAIL_ANTISPAMCONFIG_H__
00036
00037 #include <qvaluelist.h>
00038 #include <qregexp.h>
00039
00040 class QString;
00041 class QCString;
00042
00043 namespace KMail {
00044
00046 typedef enum {
00047 SpamAgentNone,
00048 SpamAgentBool,
00049 SpamAgentFloat,
00050 SpamAgentFloatLarge,
00051 SpamAgentAdjustedFloat
00052 } SpamAgentTypes;
00053
00054 class SpamAgent {
00055 public:
00056 SpamAgent() : mType( SpamAgentNone ) {}
00057 SpamAgent( const QString & name, SpamAgentTypes type, const QCString & field,
00058 const QRegExp & score, const QRegExp & threshold )
00059 : mName( name ), mType( type ), mField( field ),
00060 mScore( score ), mThreshold( threshold ) {}
00061
00062 QString name() const { return mName; }
00063 SpamAgentTypes scoreType() const { return mType; }
00064 QCString header() const { return mField; }
00065 QRegExp scorePattern() const { return mScore; }
00066 QRegExp thresholdPattern() const { return mThreshold; }
00067
00068 private:
00069 QString mName;
00070 SpamAgentTypes mType;
00071 QCString mField;
00072 QRegExp mScore;
00073 QRegExp mThreshold;
00074 };
00075 typedef QValueList<SpamAgent> SpamAgents;
00076 typedef QValueListIterator<SpamAgent> SpamAgentsIterator;
00077
00087 class AntiSpamConfig {
00088 private:
00089 static AntiSpamConfig * sSelf;
00090
00091 AntiSpamConfig() {}
00092
00093 public:
00094 ~AntiSpamConfig() {}
00095
00096 static AntiSpamConfig * instance();
00097
00102 const SpamAgents agents() const { return mAgents; }
00103 SpamAgents agents() { return mAgents; }
00104
00110 const SpamAgents uniqueAgents() const;
00111
00112 private:
00113 SpamAgents mAgents;
00114
00115 void readConfig();
00116 };
00117
00118 }
00119
00120 #endif // __KMAIL_ANTISPAMCONFIG_H__
|