TransactionSequence Class Reference
from PyKDE4.akonadi import *
Inherits: Akonadi.Job → KCompositeJob → KJob → QObject
Subclasses: Akonadi.SpecialCollectionsRequestJob
Namespace: Akonadi.TransactionSequence
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; connect( transaction, SIGNAL( result( KJob* ) ), SLOT( transactionFinished( KJob* ) ) ); const Akonadi.Item.List items = ... foreach ( const Akonadi.Item &item, items ) { new Akonadi.ItemDeleteJob( item, transaction ); } ... MyClass.transactionFinished( KJob *job ) { if ( job->error() ) qDebug() << "Error occurred"; else qDebug() << "Items deleted successfully"; }
Methods | |
__init__ (self, QObject parent=0) | |
bool | addSubjob (self, KJob job) |
commit (self) | |
doStart (self) | |
slotResult (self, KJob job) |
Method Documentation
__init__ | ( | self, | ||
QObject | parent=0 | |||
) |
Creates a new transaction sequence.
- Parameters:
-
parent The parent object.
bool addSubjob | ( | self, | ||
KJob | job | |||
) |
commit | ( | self ) |
Commits the transaction as soon as all pending sub-jobs finished successfully.
doStart | ( | self ) |
slotResult | ( | self, | ||
KJob | job | |||
) |