sievejob.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef __KMAIL_SIEVE_JOB_H__
00016 #define __KMAIL_SIEVE_JOB_H__
00017
00018 #include <qobject.h>
00019 #include <qvaluestack.h>
00020 #include <qstring.h>
00021 #include <qstringlist.h>
00022 #include <qcstring.h>
00023
00024 #include <kurl.h>
00025 #include <kio/global.h>
00026
00027 class QTextDecoder;
00028 namespace KIO {
00029 class Job;
00030 }
00031
00032 namespace KMail {
00033
00034 class SieveJob : public QObject {
00035 Q_OBJECT
00036 protected:
00037 enum Command { Get, Put, Activate, Deactivate, SearchActive };
00038 SieveJob( const KURL & url, const QString & script,
00039 const QValueStack<Command> & commands,
00040 QObject * parent=0, const char * name=0 );
00041 virtual ~SieveJob();
00042
00043 public:
00044 enum Existence { DontKnow, Yes, No };
00045
00046 static SieveJob * put( const KURL & dest, const QString & script,
00047 bool makeActive, bool wasActive );
00048 static SieveJob * get( const KURL & src );
00049
00050 void kill( bool quiet=true );
00051
00052 const QStringList & sieveCapabilities() const {
00053 return mSieveCapabilities;
00054 }
00055
00056 bool fileExists() const {
00057 return mFileExists;
00058 }
00059
00060 signals:
00061 void result( KMail::SieveJob * job, bool success,
00062 const QString & script, bool active );
00063
00064 protected:
00065 void schedule( Command command );
00066
00067 protected slots:
00068 void slotData( KIO::Job *, const QByteArray & );
00069 void slotDataReq( KIO::Job *, QByteArray & );
00070 void slotEntries( KIO::Job *, const KIO::UDSEntryList & );
00071 void slotResult( KIO::Job * );
00072
00073 protected:
00074 KURL mUrl;
00075 KIO::Job * mJob;
00076 QTextDecoder * mDec;
00077 QString mScript;
00078 QString mActiveScriptName;
00079 Existence mFileExists;
00080 QStringList mSieveCapabilities;
00081 QValueStack<Command> mCommands;
00082 };
00083
00084 }
00085
00086 #endif // __KMAIL_SIEVE_JOB_H__
This file is part of the documentation for kmail Library Version 3.2.2.