23 #ifndef AKONADI_RESOURCEBASE_H
24 #define AKONADI_RESOURCEBASE_H
26 #include "akonadi_export.h"
28 #include <akonadi/agentbase.h>
29 #include <akonadi/collection.h>
30 #include <akonadi/item.h>
31 #include <akonadi/itemsync.h>
34 class Akonadi__ResourceAdaptor;
39 class ResourceBasePrivate;
179 template <
typename T>
180 static int init(
int argc,
char **argv )
182 const QString
id = parseArguments( argc, argv );
190 r->registerObserver( observer );
198 void setName(
const QString &name );
203 QString name()
const;
217 void setAutomaticProgressReporting(
bool enabled );
225 void nameChanged(
const QString &name );
238 void attributesSynchronized( qlonglong collectionId );
245 void collectionTreeSynchronized();
253 virtual void retrieveCollections() = 0;
293 virtual bool retrieveItem(
const Akonadi::Item &item,
const QSet<QByteArray> &parts ) = 0;
302 void abortActivity();
333 void itemRetrieved(
const Item &item );
341 void collectionAttributesRetrieved(
const Collection &collection );
350 void changeCommitted(
const Item &item );
361 void changesCommitted(
const Item::List &items );
372 void changeCommitted(
const Collection &collection );
389 void collectionsRetrievedIncremental(
const Collection::List &changedCollections,
399 void setCollectionStreamingEnabled(
bool enable );
409 void collectionsRetrievalDone();
420 void itemsRetrieved(
const Item::List &items );
430 void setTotalItems(
int amount );
437 void setItemStreamingEnabled(
bool enable );
458 void setItemSynchronizationFetchScope(
const ItemFetchScope &fetchScope );
466 void itemsRetrievedIncremental(
const Item::List &changedItems,
467 const Item::List &removedItems );
478 void itemsRetrievalDone();
500 void invalidateCache(
const Collection &collection );
514 Item currentItem()
const;
525 void synchronizeCollection( qint64
id );
532 void synchronizeCollection( qint64
id,
bool recursive );
541 void synchronizeCollectionAttributes( qint64
id );
546 void synchronizeCollectionTree();
558 void cancelTask(
const QString &error );
577 void doSetOnline(
bool online );
590 void setHierarchicalRemoteIdentifiersEnabled(
bool enable );
592 friend class ResourceScheduler;
593 friend class ::ResourceState;
623 void scheduleCustomTask( QObject* receiver,
const char* method,
const QVariant &argument, SchedulePriority priority = Append );
637 QString dumpNotificationListToString()
const;
647 void dumpMemoryInfo()
const;
655 QString dumpMemoryInfoToString()
const;
661 QString dumpSchedulerToString()
const;
664 static QString parseArguments(
int,
char** );
668 friend class ::Akonadi__ResourceAdaptor;
670 bool requestItemDelivery( qint64 uid,
const QString &remoteId,
const QString &mimeType,
const QStringList &parts );
672 QString requestItemDeliveryV2( qint64 uid,
const QString &remoteId,
const QString &mimeType,
const QStringList &parts );
677 Q_PRIVATE_SLOT( d_func(),
void slotAbortRequested() )
678 Q_PRIVATE_SLOT( d_func(),
void slotDeliveryDone( KJob* ) )
679 Q_PRIVATE_SLOT( d_func(),
void slotCollectionSyncDone( KJob* ) )
680 Q_PRIVATE_SLOT( d_func(),
void slotDeleteResourceCollection() )
681 Q_PRIVATE_SLOT( d_func(),
void slotDeleteResourceCollectionDone( KJob* ) )
682 Q_PRIVATE_SLOT( d_func(),
void slotCollectionDeletionDone( KJob* ) )
683 Q_PRIVATE_SLOT( d_func(),
void slotInvalidateCache( const Akonadi::
Collection& ) )
684 Q_PRIVATE_SLOT( d_func(),
void slotLocalListDone( KJob* ) )
685 Q_PRIVATE_SLOT( d_func(),
void slotSynchronizeCollection( const Akonadi::
Collection& ) )
686 Q_PRIVATE_SLOT( d_func(),
void slotCollectionListDone( KJob* ) )
687 Q_PRIVATE_SLOT( d_func(),
void slotSynchronizeCollectionAttributes( const Akonadi::
Collection& ) )
688 Q_PRIVATE_SLOT( d_func(),
void slotCollectionListForAttributesDone( KJob* ) )
689 Q_PRIVATE_SLOT( d_func(),
void slotCollectionAttributesSyncDone( KJob* ) )
690 Q_PRIVATE_SLOT( d_func(),
void slotItemSyncDone( KJob* ) )
691 Q_PRIVATE_SLOT( d_func(),
void slotPercent( KJob*,
unsigned long ) )
692 Q_PRIVATE_SLOT( d_func(),
void slotDelayedEmitProgress() )
693 Q_PRIVATE_SLOT( d_func(),
void slotPrepareItemRetrieval( const Akonadi::Item& item ) )
694 Q_PRIVATE_SLOT( d_func(),
void slotPrepareItemRetrievalResult( KJob* ) )
695 Q_PRIVATE_SLOT( d_func(),
void changeCommittedResult( KJob* ) )
696 Q_PRIVATE_SLOT( d_func(),
void slotSessionReconnected() )
697 Q_PRIVATE_SLOT( d_func(),
void slotRecursiveMoveReplay(
RecursiveMover* ) )
698 Q_PRIVATE_SLOT( d_func(),
void slotRecursiveMoveReplayResult( KJob* ) )
703 #ifndef AKONADI_RESOURCE_MAIN
707 #define AKONADI_RESOURCE_MAIN( resourceClass ) \
708 int main( int argc, char **argv ) \
710 return Akonadi::ResourceBase::init<resourceClass>( argc, argv ); \
Helper class for expanding inter-resource collection moves inside ResourceBase.
Represents a collection of PIM items.
The interface for reacting on monitored or replayed changes.
The base class for all Akonadi agents and resources.
SchedulePriority
Describes the scheduling priority of a task that has been queued for execution.
The task is scheduled after the last ChangeReplay task in the queue.
Specifies which parts of an item should be fetched from the Akonadi storage.
TransactionMode
Transaction mode used by ItemSync.
QString dumpResourceToString() const
Dump resource internals, for debugging.
static int init(int argc, char **argv)
Use this method in the main function of your resource application to initialize your resource subclas...
The task will be executed as soon as the current task has finished.
QList< Collection > List
Describes a list of collections.
The base class for all Akonadi resources.