certmanager/lib Library API Documentation

qgpgmejob.h

00001 /* 00002 qgpgmejob.h 00003 00004 This file is part of libkleopatra, the KDE keymanagement library 00005 Copyright (c) 2004 Klarälvdalens Datakonsult AB 00006 00007 Libkleopatra is free software; you can redistribute it and/or 00008 modify it under the terms of the GNU General Public License as 00009 published by the Free Software Foundation; either version 2 of the 00010 License, or (at your option) any later version. 00011 00012 Libkleopatra is distributed in the hope that it will be useful, 00013 but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 General Public License for more details. 00016 00017 You should have received a copy of the GNU General Public License 00018 along with this program; if not, write to the Free Software 00019 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00020 00021 In addition, as a special exception, the copyright holders give 00022 permission to link the code of this program with any edition of 00023 the Qt library by Trolltech AS, Norway (or with modified versions 00024 of Qt that use the same license as Qt), and distribute linked 00025 combinations including the two. You must obey the GNU General 00026 Public License in all respects for all of the code used other than 00027 Qt. If you modify this file, you may extend this exception to 00028 your version of the file, but you are not obligated to do so. If 00029 you do not wish to do so, delete this exception statement from 00030 your version. 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 00043 #include <vector> 00044 00045 namespace GpgME { 00046 class Error; 00047 class Context; 00048 class Data; 00049 } 00050 00051 namespace Kleo { 00052 class Job; 00053 } 00054 00055 namespace QGpgME { 00056 class QByteArrayDataProvider; 00057 } 00058 00059 class QString; 00060 class QStringList; 00061 00062 namespace Kleo { 00063 00077 class QGpgMEJob : public GpgME::ProgressProvider, public GpgME::PassphraseProvider { 00078 public: 00079 QGpgMEJob( Kleo::Job * _this, GpgME::Context * context ); 00080 ~QGpgMEJob(); 00081 00082 protected: 00085 virtual void doOperationDoneEvent( const GpgME::Error & e ) = 0; 00087 void hookupContextToEventLoopInteractor(); 00089 void setPatterns( const QStringList & sl, bool allowEmpty=false ); 00091 void createOutData(); 00094 void createInData( const QByteArray & in ); 00096 GpgME::Error setSigningKeys( const std::vector<GpgME::Key> & signers ); 00098 void doSlotOperationDoneEvent( GpgME::Context * context, const GpgME::Error & e ); 00099 00100 // 00101 // only boring stuff below this line... 00102 // 00103 00104 protected: 00105 virtual void doEmitProgressSignal( const QString & what, int current, int total ) = 0; 00106 virtual void doEmitDoneSignal() = 0; 00107 void doSlotCancel(); 00108 00109 private: 00111 void showProgress( const char * what, int type, int current, int total ); 00112 char * getPassphrase( const char * useridHint, const char * description, 00113 bool previousWasBad, bool & canceled ); 00114 00115 protected: 00116 Kleo::Job * mThis; 00117 GpgME::Context * mCtx; 00118 const char* * mPatterns; // use if you want, but it's deleted by this class' dtor! 00119 GpgME::Data * mInData; 00120 QGpgME::QByteArrayDataProvider * mInDataDataProvider; 00121 GpgME::Data * mOutData; 00122 QGpgME::QByteArrayDataProvider * mOutDataDataProvider; 00123 }; 00124 00125 } 00126 00127 #define make_slot_cancel private: void slotCancel() { QGpgMEJob::doSlotCancel(); } 00128 #define make_progress_emitter private: void doEmitProgressSignal( const QString & what, int cur, int tot ) { emit progress( what, cur, tot ); } 00129 #define make_done_emitter private: void doEmitDoneSignal() { emit done(); } 00130 #define QGPGME_JOB make_slot_cancel make_progress_emitter make_done_emitter 00131 00132 #endif // __KLEO_QGPGMEJOB_H__
KDE Logo
This file is part of the documentation for certmanager/lib Library Version 3.3.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Fri Aug 27 12:50:06 2004 by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2003