00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef AKONADI_TRANSACTIONSEQUENCE_H
00021 #define AKONADI_TRANSACTIONSEQUENCE_H
00022
00023 #include "akonadi_export.h"
00024
00025 #include <akonadi/job.h>
00026
00027 namespace Akonadi {
00028
00029 class TransactionSequencePrivate;
00030
00069 class AKONADI_EXPORT TransactionSequence : public Job
00070 {
00071 Q_OBJECT
00072 public:
00078 explicit TransactionSequence( QObject *parent = 0 );
00079
00083 ~TransactionSequence();
00084
00088 void commit();
00089
00097 void rollback();
00098
00105 void setIgnoreJobFailure( KJob *job );
00106
00117 void setAutomaticCommittingEnabled( bool enable );
00118
00119 protected:
00120 bool addSubjob( KJob* job );
00121 void doStart();
00122
00123 protected Q_SLOTS:
00124 void slotResult( KJob *job );
00125
00126 private:
00127 Q_DECLARE_PRIVATE( TransactionSequence )
00128
00129
00130 Q_PRIVATE_SLOT( d_func(), void commitResult(KJob*) )
00131 Q_PRIVATE_SLOT( d_func(), void rollbackResult(KJob*) )
00132
00133 };
00134
00135 }
00136
00137 #endif