akonadi
Akonadi::TransactionSequence Class Reference
Base class for jobs that need to run a sequence of sub-jobs in a transaction. More...
#include <transactionsequence.h>

Public Member Functions | |
void | commit () |
TransactionSequence (QObject *parent=0) | |
~TransactionSequence () | |
Protected Slots | |
void | slotResult (KJob *job) |
Protected Member Functions | |
bool | addSubjob (KJob *job) |
void | doStart () |
Detailed Description
Base class for jobs that need to run a sequence of sub-jobs in a transaction.As soon as the first subjob is added, the transaction is started. As soon as the last subjob has successfully finished, the transaction is committed. If any subjob fails, the transaction is rolled back.
Alternatively, a TransactionSequence object can be used as a parent object for a set of jobs to achieve the same behaviour without subclassing.
Example:
// Delete a couple of items inside a transaction Akonadi::TransactionSequence *transaction = new TransactionSequence; const Akonadi::Item::List items = ... foreach ( const Akonadi::Item &item, items ) { new Akonadi::ItemDeleteJob( item, transaction ); } transaction->exec();
Definition at line 60 of file transactionsequence.h.
Constructor & Destructor Documentation
TransactionSequence::TransactionSequence | ( | QObject * | parent = 0 |
) | [explicit] |
Creates a new transaction sequence.
- Parameters:
-
parent The parent object.
Definition at line 69 of file transactionsequence.cpp.
TransactionSequence::~TransactionSequence | ( | ) |
Member Function Documentation
bool TransactionSequence::addSubjob | ( | KJob * | job | ) | [protected, virtual] |
Adds the given job as a subjob to this job.
This method is automatically called if you construct a job using another job as parent object. The base implementation does the necessary setup to share the network connection with the backend.
- Parameters:
-
job The new subjob.
Reimplemented from Akonadi::Job.
Definition at line 78 of file transactionsequence.cpp.
void TransactionSequence::commit | ( | ) |
Commits the transaction as soon as all pending sub-jobs finished successfully.
Definition at line 113 of file transactionsequence.cpp.
void TransactionSequence::doStart | ( | ) | [protected, virtual] |
This method must be reimplemented in the concrete jobs.
It will be called after the job has been started and a connection to the Akonadi backend has been established.
Implements Akonadi::Job.
Definition at line 135 of file transactionsequence.cpp.
The documentation for this class was generated from the following files: