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);
199 void setName(
const QString &name);
204 QString name()
const;
218 void setAutomaticProgressReporting(
bool enabled);
226 void nameChanged(
const QString &name);
239 void attributesSynchronized(qlonglong collectionId);
246 void collectionTreeSynchronized();
263 void retrieveNextItemSyncBatch(
int remainingBatchSize);
271 virtual void retrieveCollections() = 0;
310 int itemSyncBatchSize()
const;
319 void setItemSyncBatchSize(
int batchSize);
330 virtual bool retrieveItem(
const Akonadi::Item &item,
const QSet<QByteArray> &parts) = 0;
339 void abortActivity();
370 void itemRetrieved(
const Item &item);
378 void collectionAttributesRetrieved(
const Collection &collection);
387 void changeCommitted(
const Item &item);
398 void changesCommitted(
const Item::List &items);
409 void changeCommitted(
const Tag &tag);
420 void changeCommitted(
const Collection &collection);
437 void collectionsRetrievedIncremental(
const Collection::List &changedCollections,
447 void setCollectionStreamingEnabled(
bool enable);
457 void collectionsRetrievalDone();
472 void setKeepLocalCollectionChanges(
const QSet<QByteArray> &parts);
483 void itemsRetrieved(
const Item::List &items);
500 void setTotalItems(
int amount);
515 void setDisableAutomaticItemDeliveryDone(
bool disable);
522 void setItemStreamingEnabled(
bool enable);
543 void setItemSynchronizationFetchScope(
const ItemFetchScope &fetchScope);
551 void itemsRetrievedIncremental(
const Item::List &changedItems,
552 const Item::List &removedItems);
563 void itemsRetrievalDone();
585 void invalidateCache(
const Collection &collection);
599 Item currentItem()
const;
610 void synchronizeCollection(qint64
id);
617 void synchronizeCollection(qint64
id,
bool recursive);
626 void synchronizeCollectionAttributes(qint64
id);
631 void synchronizeCollectionTree();
643 void cancelTask(
const QString &error);
665 void doSetOnline(
bool online);
678 void setHierarchicalRemoteIdentifiersEnabled(
bool enable);
680 friend class ResourceScheduler;
681 friend class ::ResourceState;
711 void scheduleCustomTask(QObject *receiver,
const char *method,
const QVariant &argument, SchedulePriority priority = Append);
725 QString dumpNotificationListToString()
const;
735 void dumpMemoryInfo()
const;
743 QString dumpMemoryInfoToString()
const;
749 QString dumpSchedulerToString()
const;
752 static QString parseArguments(
int,
char **);
756 friend class ::Akonadi__ResourceAdaptor;
758 bool requestItemDelivery(qint64 uid,
const QString &remoteId,
const QString &mimeType,
const QStringList &parts);
760 QString requestItemDeliveryV2(qint64 uid,
const QString &remoteId,
const QString &mimeType,
const QStringList &parts);
765 Q_PRIVATE_SLOT(d_func(),
void slotAbortRequested())
766 Q_PRIVATE_SLOT(d_func(),
void slotDeliveryDone(KJob *))
767 Q_PRIVATE_SLOT(d_func(),
void slotCollectionSyncDone(KJob *))
768 Q_PRIVATE_SLOT(d_func(),
void slotDeleteResourceCollection())
769 Q_PRIVATE_SLOT(d_func(),
void slotDeleteResourceCollectionDone(KJob *))
770 Q_PRIVATE_SLOT(d_func(),
void slotCollectionDeletionDone(KJob *))
771 Q_PRIVATE_SLOT(d_func(),
void slotInvalidateCache(const Akonadi::
Collection &))
772 Q_PRIVATE_SLOT(d_func(),
void slotLocalListDone(KJob *))
773 Q_PRIVATE_SLOT(d_func(),
void slotSynchronizeCollection(const Akonadi::
Collection &))
774 Q_PRIVATE_SLOT(d_func(),
void slotCollectionListDone(KJob *))
775 Q_PRIVATE_SLOT(d_func(),
void slotSynchronizeCollectionAttributes(const Akonadi::
Collection &))
776 Q_PRIVATE_SLOT(d_func(),
void slotCollectionListForAttributesDone(KJob *))
777 Q_PRIVATE_SLOT(d_func(),
void slotCollectionAttributesSyncDone(KJob *))
778 Q_PRIVATE_SLOT(d_func(),
void slotItemSyncDone(KJob *))
779 Q_PRIVATE_SLOT(d_func(),
void slotPercent(KJob *,
unsigned long))
780 Q_PRIVATE_SLOT(d_func(),
void slotDelayedEmitProgress())
781 Q_PRIVATE_SLOT(d_func(),
void slotPrepareItemRetrieval(const Akonadi::Item &item))
782 Q_PRIVATE_SLOT(d_func(),
void slotPrepareItemRetrievalResult(KJob *))
783 Q_PRIVATE_SLOT(d_func(),
void changeCommittedResult(KJob *))
784 Q_PRIVATE_SLOT(d_func(),
void slotSessionReconnected())
785 Q_PRIVATE_SLOT(d_func(),
void slotRecursiveMoveReplay(
RecursiveMover *))
786 Q_PRIVATE_SLOT(d_func(),
void slotRecursiveMoveReplayResult(KJob *))
787 Q_PRIVATE_SLOT(d_func(),
void slotItemRetrievalCollectionFetchDone(KJob *))
788 Q_PRIVATE_SLOT(d_func(),
void slotAttributeRetrievalCollectionFetchDone(KJob *))
793 #ifndef AKONADI_RESOURCE_MAIN
797 #define AKONADI_RESOURCE_MAIN( resourceClass ) \
798 int main( int argc, char **argv ) \
800 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.