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;
176 template <
typename T>
177 static int init(
int argc,
char **argv )
179 const QString
id = parseArguments( argc, argv );
187 r->registerObserver( observer );
195 void setName(
const QString &name );
200 QString name()
const;
214 void setAutomaticProgressReporting(
bool enabled );
222 void nameChanged(
const QString &name );
235 void attributesSynchronized( qlonglong collectionId );
242 void collectionTreeSynchronized();
250 virtual void retrieveCollections() = 0;
290 virtual bool retrieveItem(
const Akonadi::Item &item,
const QSet<QByteArray> &parts ) = 0;
299 void abortActivity();
327 void itemRetrieved(
const Item &item );
335 void collectionAttributesRetrieved(
const Collection &collection );
344 void changeCommitted(
const Item &item );
355 void changeCommitted(
const Collection &collection );
372 void collectionsRetrievedIncremental(
const Collection::List &changedCollections,
382 void setCollectionStreamingEnabled(
bool enable );
392 void collectionsRetrievalDone();
402 void itemsRetrieved(
const Item::List &items );
411 void setTotalItems(
int amount );
418 void setItemStreamingEnabled(
bool enable );
438 void setItemSynchronizationFetchScope(
const ItemFetchScope &fetchScope );
446 void itemsRetrievedIncremental(
const Item::List &changedItems,
447 const Item::List &removedItems );
458 void itemsRetrievalDone();
479 void invalidateCache(
const Collection &collection );
493 Item currentItem()
const;
504 void synchronizeCollection( qint64
id );
511 void synchronizeCollection( qint64
id,
bool recursive );
520 void synchronizeCollectionAttributes( qint64
id );
525 void synchronizeCollectionTree();
536 void cancelTask(
const QString &error );
555 void doSetOnline(
bool online );
567 void setHierarchicalRemoteIdentifiersEnabled(
bool enable );
569 friend class ResourceScheduler;
570 friend class ::ResourceState;
600 void scheduleCustomTask( QObject* receiver,
const char* method,
const QVariant &argument, SchedulePriority priority = Append );
614 QString dumpNotificationListToString()
const;
620 QString dumpSchedulerToString()
const;
623 static QString parseArguments(
int,
char** );
627 friend class ::Akonadi__ResourceAdaptor;
629 bool requestItemDelivery( qint64 uid,
const QString &remoteId,
const QString &mimeType,
const QStringList &parts );
631 QString requestItemDeliveryV2( qint64 uid,
const QString &remoteId,
const QString &mimeType,
const QStringList &parts );
636 Q_PRIVATE_SLOT( d_func(),
void slotAbortRequested() )
637 Q_PRIVATE_SLOT( d_func(),
void slotDeliveryDone( KJob* ) )
638 Q_PRIVATE_SLOT( d_func(),
void slotCollectionSyncDone( KJob* ) )
639 Q_PRIVATE_SLOT( d_func(),
void slotDeleteResourceCollection() )
640 Q_PRIVATE_SLOT( d_func(),
void slotDeleteResourceCollectionDone( KJob* ) )
641 Q_PRIVATE_SLOT( d_func(),
void slotCollectionDeletionDone( KJob* ) )
642 Q_PRIVATE_SLOT( d_func(),
void slotInvalidateCache( const Akonadi::
Collection& ) )
643 Q_PRIVATE_SLOT( d_func(),
void slotLocalListDone( KJob* ) )
644 Q_PRIVATE_SLOT( d_func(),
void slotSynchronizeCollection( const Akonadi::
Collection& ) )
645 Q_PRIVATE_SLOT( d_func(),
void slotCollectionListDone( KJob* ) )
646 Q_PRIVATE_SLOT( d_func(),
void slotSynchronizeCollectionAttributes( const Akonadi::
Collection& ) )
647 Q_PRIVATE_SLOT( d_func(),
void slotCollectionListForAttributesDone( KJob* ) )
648 Q_PRIVATE_SLOT( d_func(),
void slotCollectionAttributesSyncDone( KJob* ) )
649 Q_PRIVATE_SLOT( d_func(),
void slotItemSyncDone( KJob* ) )
650 Q_PRIVATE_SLOT( d_func(),
void slotPercent( KJob*,
unsigned long ) )
651 Q_PRIVATE_SLOT( d_func(),
void slotDelayedEmitProgress() )
652 Q_PRIVATE_SLOT( d_func(),
void slotPrepareItemRetrieval( const Akonadi::Item& item ) )
653 Q_PRIVATE_SLOT( d_func(),
void slotPrepareItemRetrievalResult( KJob* ) )
654 Q_PRIVATE_SLOT( d_func(),
void changeCommittedResult( KJob* ) )
655 Q_PRIVATE_SLOT( d_func(),
void slotSessionReconnected() )
656 Q_PRIVATE_SLOT( d_func(),
void slotRecursiveMoveReplay(
RecursiveMover* ) )
657 Q_PRIVATE_SLOT( d_func(),
void slotRecursiveMoveReplayResult( KJob* ) )
662 #ifndef AKONADI_RESOURCE_MAIN
666 #define AKONADI_RESOURCE_MAIN( resourceClass ) \
667 int main( int argc, char **argv ) \
669 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.