certmanager/lib
qgpgmejob.h00001
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 #ifndef __KLEO_QGPGMEJOB_H__
00034 #define __KLEO_QGPGMEJOB_H__
00035
00036 #include <gpgmepp/interfaces/progressprovider.h>
00037 #include <gpgmepp/interfaces/passphraseprovider.h>
00038
00039 #include <gpgmepp/key.h>
00040
00041 #include <qcstring.h>
00042 #include <qstring.h>
00043
00044 #include <vector>
00045 #include <kdepimmacros.h>
00046
00047 namespace GpgME {
00048 class Error;
00049 class Context;
00050 class Data;
00051 }
00052
00053 namespace Kleo {
00054 class Job;
00055 }
00056
00057 namespace QGpgME {
00058 class QByteArrayDataProvider;
00059 }
00060
00061 class QString;
00062 class QStringList;
00063
00064 namespace Kleo {
00065
00079 class KDE_EXPORT QGpgMEJob : public GpgME::ProgressProvider, public GpgME::PassphraseProvider {
00080 public:
00081 QGpgMEJob( Kleo::Job * _this, GpgME::Context * context );
00082 ~QGpgMEJob();
00083
00084 protected:
00087 virtual void doOperationDoneEvent( const GpgME::Error & e ) = 0;
00089 void hookupContextToEventLoopInteractor();
00091 void setPatterns( const QStringList & sl, bool allowEmpty=false );
00093 unsigned int numPatterns() const { return mNumPatterns; }
00095 const char* * nextChunk();
00097 const char* * patterns() const;
00099 void setChunkSize( unsigned int size );
00101 unsigned int chunkSize() const { return mChunkSize; }
00103 void createOutData();
00106 void createInData( const QByteArray & in );
00108 GpgME::Error setSigningKeys( const std::vector<GpgME::Key> & signers );
00110 void doSlotOperationDoneEvent( GpgME::Context * context, const GpgME::Error & e );
00112 void getAuditLog();
00113
00114
00115
00116
00117
00118 protected:
00119 virtual void doEmitProgressSignal( const QString & what, int current, int total ) = 0;
00120 virtual void doEmitDoneSignal() = 0;
00121 void doSlotCancel();
00122 QString auditLogAsHtml() const { return mAuditLogAsHtml; }
00123
00124 private:
00126 void showProgress( const char * what, int type, int current, int total );
00127 char * getPassphrase( const char * useridHint, const char * description,
00128 bool previousWasBad, bool & canceled );
00129 void deleteAllPatterns();
00130
00131 public:
00132 void checkInvariants() const;
00133
00134 protected:
00135 Kleo::Job * mThis;
00136 GpgME::Context * mCtx;
00137 GpgME::Data * mInData;
00138 QGpgME::QByteArrayDataProvider * mInDataDataProvider;
00139 GpgME::Data * mOutData;
00140 QGpgME::QByteArrayDataProvider * mOutDataDataProvider;
00141 private:
00142 const char* * mPatterns;
00143
00144
00145 const char * mReplacedPattern;
00146 unsigned int mNumPatterns;
00147 unsigned int mChunkSize;
00148 unsigned int mPatternStartIndex, mPatternEndIndex;
00149 QString mAuditLogAsHtml;
00150 };
00151
00152 }
00153
00154 #define make_slot_cancel private: void slotCancel() { QGpgMEJob::doSlotCancel(); }
00155 #define make_progress_emitter private: void doEmitProgressSignal( const QString & what, int cur, int tot ) { emit progress( what, cur, tot ); }
00156 #define make_done_emitter private: void doEmitDoneSignal() { emit done(); }
00157 #define make_auditLogAsHtml private: QString auditLogAsHtml() const { return QGpgMEJob::auditLogAsHtml(); }
00158 #define QGPGME_JOB make_slot_cancel make_progress_emitter make_done_emitter make_auditLogAsHtml
00159
00160 #endif // __KLEO_QGPGMEJOB_H__
|