24 #ifndef AKONADI_AGENTBASE_H
25 #define AKONADI_AGENTBASE_H
27 #include "akonadi_export.h"
28 #include <akonadi/item.h>
30 #include <KDE/KApplication>
32 #include <QtDBus/QDBusConnection>
33 #include <QtDBus/QDBusContext>
35 class Akonadi__ControlAdaptor;
36 class Akonadi__StatusAdaptor;
40 class AgentBasePrivate;
80 class AKONADI_EXPORT
AgentBase :
public QObject,
protected QDBusContext
203 virtual void itemAdded(
const Akonadi::Item &item,
const Akonadi::Collection &collection );
210 virtual void itemChanged(
const Akonadi::Item &item,
const QSet<QByteArray> &partIdentifiers );
216 virtual void itemRemoved(
const Akonadi::Item &item );
247 using Observer::collectionChanged;
259 virtual void itemMoved(
const Akonadi::Item &item,
const Akonadi::Collection &collectionSource,
268 virtual void itemLinked(
const Akonadi::Item &item,
const Akonadi::Collection &collection );
276 virtual void itemUnlinked(
const Akonadi::Item &item,
const Akonadi::Collection &collection );
296 virtual void collectionChanged(
const Akonadi::Collection &collection,
const QSet<QByteArray> &changedAttributes );
323 virtual void itemsFlagsChanged(
const Akonadi::Item::List &items,
const QSet<QByteArray> &addedFlags,
const QSet<QByteArray> &removedFlags );
330 virtual void itemsRemoved(
const Akonadi::Item::List &items );
339 virtual void itemsMoved(
const Akonadi::Item::List &items,
const Akonadi::Collection &sourceCollection,
348 virtual void itemsLinked(
const Akonadi::Item::List &items,
const Akonadi::Collection &collection );
356 virtual void itemsUnlinked(
const Akonadi::Item::List &items,
const Akonadi::Collection &collection );
403 virtual void itemsTagsChanged(
const Akonadi::Item::List &items,
const QSet<Akonadi::Tag> &addedTags,
const QSet<Akonadi::Tag> &removedTags );
441 template <
typename T>
442 static int init(
int argc,
char **argv )
444 const QString
id = parseArguments( argc, argv );
451 if ( observer != 0 ) {
452 r->registerObserver( observer );
467 virtual int status()
const;
472 virtual QString statusMessage()
const;
477 virtual int progress()
const;
482 virtual QString progressMessage()
const;
495 virtual void configure( WId windowId );
501 WId winIdForDialogs()
const;
508 void configure( qlonglong windowId );
514 QString identifier()
const;
523 virtual void cleanup();
532 void registerObserver( Observer *observer );
541 void setAgentName(
const QString &name );
548 QString agentName()
const;
558 static KComponentData componentData();
568 void agentNameChanged(
const QString &name );
575 void status(
int status,
const QString &message = QString() );
583 void percent(
int progress );
590 void warning(
const QString& message );
597 void error(
const QString& message );
605 void advancedStatus(
const QVariantMap &status );
615 void abortRequested();
623 void reloadConfiguration();
630 void onlineChanged(
bool online );
640 void configurationDialogAccepted();
650 void configurationDialogRejected();
672 virtual void aboutToQuit();
683 KSharedConfigPtr config();
692 void changeProcessed();
697 bool isOnline()
const;
707 void setNeedsNetwork(
bool needsNetwork );
712 void setOnline(
bool state );
737 void setTemporaryOffline(
int makeOnlineInSeconds = 300);
743 friend class ObserverV2;
751 virtual void doSetOnline(
bool online );
755 static QString parseArguments(
int,
char** );
757 void setOnlineInternal(
bool state );
765 friend class ::Akonadi__StatusAdaptor;
766 friend class ::Akonadi__ControlAdaptor;
769 Q_PRIVATE_SLOT( d_func(),
void delayedInit() )
770 Q_PRIVATE_SLOT( d_func(),
void slotStatus(
int, const QString& ) )
771 Q_PRIVATE_SLOT( d_func(),
void slotPercent(
int ) )
772 Q_PRIVATE_SLOT( d_func(),
void slotWarning( const QString& ) )
773 Q_PRIVATE_SLOT( d_func(),
void slotError( const QString& ) )
774 Q_PRIVATE_SLOT( d_func(),
void slotNetworkStatusChange( Solid::Networking::Status ) )
775 Q_PRIVATE_SLOT( d_func(),
void slotResumedFromSuspend() )
776 Q_PRIVATE_SLOT(d_func(),
void slotTemporaryOfflineTimeout())
783 #ifndef AKONADI_AGENT_MAIN
787 #define AKONADI_AGENT_MAIN( agentClass ) \
788 int main( int argc, char **argv ) \
790 return Akonadi::AgentBase::init<agentClass>( argc, argv ); \
Status
This enum describes the different states the agent can be in.
Represents a collection of PIM items.
The interface for reacting on monitored or replayed changes.
The base class for all Akonadi agents and resources.
BC extension of Observer with support for monitoring item and collection moves.
BC extension of ObserverV2 with support for batch operations.
The agent encountered an error state.
Observer that adds support for item tagging.
static int init(int argc, char **argv)
Use this method in the main function of your agent application to initialize your agent subclass...
The agent is working on something.
Records and replays change notification.