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;
38 class ResourceBasePrivate;
175 template <
typename T>
176 static int init(
int argc,
char **argv )
178 const QString
id = parseArguments( argc, argv );
186 r->registerObserver( observer );
194 void setName(
const QString &name );
199 QString name()
const;
213 void setAutomaticProgressReporting(
bool enabled );
221 void nameChanged(
const QString &name );
234 void attributesSynchronized( qlonglong collectionId );
241 void collectionTreeSynchronized();
249 virtual void retrieveCollections() = 0;
289 virtual bool retrieveItem(
const Akonadi::Item &item,
const QSet<QByteArray> &parts ) = 0;
298 void abortActivity();
326 void itemRetrieved(
const Item &item );
334 void collectionAttributesRetrieved(
const Collection &collection );
343 void changeCommitted(
const Item &item );
354 void changeCommitted(
const Collection &collection );
371 void collectionsRetrievedIncremental(
const Collection::List &changedCollections,
381 void setCollectionStreamingEnabled(
bool enable );
391 void collectionsRetrievalDone();
401 void itemsRetrieved(
const Item::List &items );
410 void setTotalItems(
int amount );
417 void setItemStreamingEnabled(
bool enable );
437 void setItemSynchronizationFetchScope(
const ItemFetchScope &fetchScope );
445 void itemsRetrievedIncremental(
const Item::List &changedItems,
457 void itemsRetrievalDone();
478 void invalidateCache(
const Collection &collection );
492 Item currentItem()
const;
503 void synchronizeCollection( qint64
id );
510 void synchronizeCollection( qint64
id,
bool recursive );
519 void synchronizeCollectionAttributes( qint64
id );
524 void synchronizeCollectionTree();
535 void cancelTask(
const QString &error );
554 void doSetOnline(
bool online );
566 void setHierarchicalRemoteIdentifiersEnabled(
bool enable );
568 friend class ResourceScheduler;
569 friend class ResourceState;
599 void scheduleCustomTask( QObject* receiver,
const char* method,
const QVariant &argument, SchedulePriority priority = Append );
613 QString dumpNotificationListToString()
const;
619 QString dumpSchedulerToString()
const;
622 static QString parseArguments(
int,
char** );
626 friend class ::Akonadi__ResourceAdaptor;
628 bool requestItemDelivery( qint64 uid,
const QString &remoteId,
const QString &mimeType,
const QStringList &parts );
630 QString requestItemDeliveryV2( qint64 uid,
const QString &remoteId,
const QString &mimeType,
const QStringList &parts );
635 Q_PRIVATE_SLOT( d_func(),
void slotAbortRequested() )
636 Q_PRIVATE_SLOT( d_func(),
void slotDeliveryDone( KJob* ) )
637 Q_PRIVATE_SLOT( d_func(),
void slotCollectionSyncDone( KJob* ) )
638 Q_PRIVATE_SLOT( d_func(),
void slotDeleteResourceCollection() )
639 Q_PRIVATE_SLOT( d_func(),
void slotDeleteResourceCollectionDone( KJob* ) )
640 Q_PRIVATE_SLOT( d_func(),
void slotCollectionDeletionDone( KJob* ) )
641 Q_PRIVATE_SLOT( d_func(),
void slotInvalidateCache( const Akonadi::
Collection& ) )
642 Q_PRIVATE_SLOT( d_func(),
void slotLocalListDone( KJob* ) )
643 Q_PRIVATE_SLOT( d_func(),
void slotSynchronizeCollection( const Akonadi::
Collection& ) )
644 Q_PRIVATE_SLOT( d_func(),
void slotCollectionListDone( KJob* ) )
645 Q_PRIVATE_SLOT( d_func(),
void slotSynchronizeCollectionAttributes( const Akonadi::
Collection& ) )
646 Q_PRIVATE_SLOT( d_func(),
void slotCollectionListForAttributesDone( KJob* ) )
647 Q_PRIVATE_SLOT( d_func(),
void slotCollectionAttributesSyncDone( KJob* ) )
648 Q_PRIVATE_SLOT( d_func(),
void slotItemSyncDone( KJob* ) )
649 Q_PRIVATE_SLOT( d_func(),
void slotPercent( KJob*,
unsigned long ) )
650 Q_PRIVATE_SLOT( d_func(),
void slotDelayedEmitProgress() )
651 Q_PRIVATE_SLOT( d_func(),
void slotPrepareItemRetrieval( const Akonadi::
Item& item ) )
652 Q_PRIVATE_SLOT( d_func(),
void slotPrepareItemRetrievalResult( KJob* ) )
653 Q_PRIVATE_SLOT( d_func(),
void changeCommittedResult( KJob* ) )
654 Q_PRIVATE_SLOT( d_func(),
void slotSessionReconnected() )
655 Q_PRIVATE_SLOT( d_func(),
void slotRecursiveMoveReplay(
RecursiveMover* ) )
656 Q_PRIVATE_SLOT( d_func(),
void slotRecursiveMoveReplayResult( KJob* ) )
661 #ifndef AKONADI_RESOURCE_MAIN
665 #define AKONADI_RESOURCE_MAIN( resourceClass ) \
666 int main( int argc, char **argv ) \
668 return Akonadi::ResourceBase::init<resourceClass>( argc, argv ); \