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();
 
  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,
 
  467                                     const Item::List &removedItems );
 
  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 ); \ 
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.