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,
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 ); \