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);
662 void doSetOnline(
bool online);
675 void setHierarchicalRemoteIdentifiersEnabled(
bool enable);
677 friend class ResourceScheduler;
678 friend class ::ResourceState;
708 void scheduleCustomTask(QObject *receiver,
const char *method,
const QVariant &argument, SchedulePriority priority = Append);
722 QString dumpNotificationListToString()
const;
732 void dumpMemoryInfo()
const;
740 QString dumpMemoryInfoToString()
const;
746 QString dumpSchedulerToString()
const;
749 static QString parseArguments(
int,
char **);
753 friend class ::Akonadi__ResourceAdaptor;
755 bool requestItemDelivery(qint64 uid,
const QString &remoteId,
const QString &mimeType,
const QStringList &parts);
757 QString requestItemDeliveryV2(qint64 uid,
const QString &remoteId,
const QString &mimeType,
const QStringList &parts);
762 Q_PRIVATE_SLOT(d_func(),
void slotAbortRequested())
763 Q_PRIVATE_SLOT(d_func(),
void slotDeliveryDone(KJob *))
764 Q_PRIVATE_SLOT(d_func(),
void slotCollectionSyncDone(KJob *))
765 Q_PRIVATE_SLOT(d_func(),
void slotDeleteResourceCollection())
766 Q_PRIVATE_SLOT(d_func(),
void slotDeleteResourceCollectionDone(KJob *))
767 Q_PRIVATE_SLOT(d_func(),
void slotCollectionDeletionDone(KJob *))
769 Q_PRIVATE_SLOT(d_func(),
void slotLocalListDone(KJob *))
770 Q_PRIVATE_SLOT(d_func(),
void slotSynchronizeCollection(const
Akonadi::
Collection &))
771 Q_PRIVATE_SLOT(d_func(),
void slotCollectionListDone(KJob *))
772 Q_PRIVATE_SLOT(d_func(),
void slotSynchronizeCollectionAttributes(const
Akonadi::
Collection &))
773 Q_PRIVATE_SLOT(d_func(),
void slotCollectionListForAttributesDone(KJob *))
774 Q_PRIVATE_SLOT(d_func(),
void slotCollectionAttributesSyncDone(KJob *))
775 Q_PRIVATE_SLOT(d_func(),
void slotItemSyncDone(KJob *))
776 Q_PRIVATE_SLOT(d_func(),
void slotPercent(KJob *,
unsigned long))
777 Q_PRIVATE_SLOT(d_func(),
void slotDelayedEmitProgress())
778 Q_PRIVATE_SLOT(d_func(),
void slotPrepareItemRetrieval(const
Akonadi::Item &item))
779 Q_PRIVATE_SLOT(d_func(),
void slotPrepareItemRetrievalResult(KJob *))
780 Q_PRIVATE_SLOT(d_func(),
void changeCommittedResult(KJob *))
781 Q_PRIVATE_SLOT(d_func(),
void slotSessionReconnected())
782 Q_PRIVATE_SLOT(d_func(),
void slotRecursiveMoveReplay(
RecursiveMover *))
783 Q_PRIVATE_SLOT(d_func(),
void slotRecursiveMoveReplayResult(KJob *))
784 Q_PRIVATE_SLOT(d_func(),
void slotItemRetrievalCollectionFetchDone(KJob *))
785 Q_PRIVATE_SLOT(d_func(),
void slotAttributeRetrievalCollectionFetchDone(KJob *))
790 #ifndef AKONADI_RESOURCE_MAIN
794 #define AKONADI_RESOURCE_MAIN( resourceClass ) \
795 int main( int argc, char **argv ) \
797 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.
FreeBusyManager::Singleton.
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.