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 );
198 void setName(
const QString &name );
203 QString name()
const;
217 void setAutomaticProgressReporting(
bool enabled );
225 void nameChanged(
const QString &name );
238 void attributesSynchronized( qlonglong collectionId );
245 void collectionTreeSynchronized();
253 virtual void retrieveCollections() = 0;
293 virtual bool retrieveItem(
const Akonadi::Item &item,
const QSet<QByteArray> &parts ) = 0;
302 void abortActivity();
310 QString dumpResourceToString()
const
333 void itemRetrieved(
const Item &item );
341 void collectionAttributesRetrieved(
const Collection &collection );
350 void changeCommitted(
const Item &item );
361 void changesCommitted(
const Item::List &items );
372 void changeCommitted(
const Collection &collection );
389 void collectionsRetrievedIncremental(
const Collection::List &changedCollections,
399 void setCollectionStreamingEnabled(
bool enable );
409 void collectionsRetrievalDone();
420 void itemsRetrieved(
const Item::List &items );
430 void setTotalItems(
int amount );
437 void setItemStreamingEnabled(
bool enable );
458 void setItemSynchronizationFetchScope(
const ItemFetchScope &fetchScope );
466 void itemsRetrievedIncremental(
const Item::List &changedItems,
478 void itemsRetrievalDone();
500 void invalidateCache(
const Collection &collection );
514 Item currentItem()
const;
525 void synchronizeCollection( qint64
id );
532 void synchronizeCollection( qint64
id,
bool recursive );
541 void synchronizeCollectionAttributes( qint64
id );
546 void synchronizeCollectionTree();
558 void cancelTask(
const QString &error );
577 void doSetOnline(
bool online );
590 void setHierarchicalRemoteIdentifiersEnabled(
bool enable );
592 friend class ResourceScheduler;
593 friend class ::ResourceState;
623 void scheduleCustomTask( QObject* receiver,
const char* method,
const QVariant &argument, SchedulePriority priority = Append );
637 QString dumpNotificationListToString()
const;
647 void dumpMemoryInfo()
const;
655 QString dumpMemoryInfoToString()
const;
661 QString dumpSchedulerToString()
const;
664 static QString parseArguments(
int,
char** );
668 friend class ::Akonadi__ResourceAdaptor;
670 bool requestItemDelivery( qint64 uid,
const QString &remoteId,
const QString &mimeType,
const QStringList &parts );
672 QString requestItemDeliveryV2( qint64 uid,
const QString &remoteId,
const QString &mimeType,
const QStringList &parts );
677 Q_PRIVATE_SLOT( d_func(),
void slotAbortRequested() )
678 Q_PRIVATE_SLOT( d_func(),
void slotDeliveryDone( KJob* ) )
679 Q_PRIVATE_SLOT( d_func(),
void slotCollectionSyncDone( KJob* ) )
680 Q_PRIVATE_SLOT( d_func(),
void slotDeleteResourceCollection() )
681 Q_PRIVATE_SLOT( d_func(),
void slotDeleteResourceCollectionDone( KJob* ) )
682 Q_PRIVATE_SLOT( d_func(),
void slotCollectionDeletionDone( KJob* ) )
683 Q_PRIVATE_SLOT( d_func(),
void slotInvalidateCache( const Akonadi::
Collection& ) )
684 Q_PRIVATE_SLOT( d_func(),
void slotLocalListDone( KJob* ) )
685 Q_PRIVATE_SLOT( d_func(),
void slotSynchronizeCollection( const Akonadi::
Collection& ) )
686 Q_PRIVATE_SLOT( d_func(),
void slotCollectionListDone( KJob* ) )
687 Q_PRIVATE_SLOT( d_func(),
void slotSynchronizeCollectionAttributes( const Akonadi::
Collection& ) )
688 Q_PRIVATE_SLOT( d_func(),
void slotCollectionListForAttributesDone( KJob* ) )
689 Q_PRIVATE_SLOT( d_func(),
void slotCollectionAttributesSyncDone( KJob* ) )
690 Q_PRIVATE_SLOT( d_func(),
void slotItemSyncDone( KJob* ) )
691 Q_PRIVATE_SLOT( d_func(),
void slotPercent( KJob*,
unsigned long ) )
692 Q_PRIVATE_SLOT( d_func(),
void slotDelayedEmitProgress() )
693 Q_PRIVATE_SLOT( d_func(),
void slotPrepareItemRetrieval( const Akonadi::
Item& item ) )
694 Q_PRIVATE_SLOT( d_func(),
void slotPrepareItemRetrievalResult( KJob* ) )
695 Q_PRIVATE_SLOT( d_func(),
void changeCommittedResult( KJob* ) )
696 Q_PRIVATE_SLOT( d_func(),
void slotSessionReconnected() )
697 Q_PRIVATE_SLOT( d_func(),
void slotRecursiveMoveReplay(
RecursiveMover* ) )
698 Q_PRIVATE_SLOT( d_func(),
void slotRecursiveMoveReplayResult( KJob* ) )
703 #ifndef AKONADI_RESOURCE_MAIN
707 #define AKONADI_RESOURCE_MAIN( resourceClass ) \
708 int main( int argc, char **argv ) \
710 return Akonadi::ResourceBase::init<resourceClass>( argc, argv ); \