Akonadi::ItemFetchJob

#include <itemfetchjob.h>

Inheritance diagram for Akonadi::ItemFetchJob:

Public Types

enum  DeliveryOption { ItemGetter = 0x1, EmitItemsIndividually = 0x2, EmitItemsInBatches = 0x4, Default = ItemGetter | EmitItemsInBatches }
 
typedef QFlags< DeliveryOptionDeliveryOptions
 
- Public Types inherited from Akonadi::Job
enum  Error {
  ConnectionFailed = UserDefinedError, ProtocolVersionMismatch, UserCanceled, Unknown,
  UserError = UserDefinedError + 42
}
 
typedef QList< Job * > List
 
- Public Types inherited from KJob
typedef QFlags< CapabilityCapabilities
 
enum  Capability
 
enum  Unit
 

Signals

void itemsReceived (const Akonadi::Item::List &items)
 
- Signals inherited from Akonadi::Job
void aboutToStart (Akonadi::Job *job)
 
void writeFinished (Akonadi::Job *job)
 
- Signals inherited from KJob
void description (KJob *job, const QString &title, const QPair< QString, QString > &field1=QPair< QString, QString >(), const QPair< QString, QString > &field2=QPair< QString, QString >())
 
void finished (KJob *job)
 
void infoMessage (KJob *job, const QString &plain, const QString &rich=QString())
 
void percent (KJob *job, unsigned long percent)
 
void processedAmount (KJob *job, KJob::Unit unit, qulonglong amount)
 
void processedSize (KJob *job, qulonglong size)
 
void result (KJob *job)
 
void resumed (KJob *job)
 
void speed (KJob *job, unsigned long speed)
 
void suspended (KJob *job)
 
void totalAmount (KJob *job, KJob::Unit unit, qulonglong amount)
 
void totalSize (KJob *job, qulonglong size)
 
void warning (KJob *job, const QString &plain, const QString &rich=QString())
 

Public Member Functions

 ItemFetchJob (const Collection &collection, QObject *parent=nullptr)
 
 ItemFetchJob (const Item &item, QObject *parent=nullptr)
 
 ItemFetchJob (const Item::List &items, QObject *parent=nullptr)
 
 ItemFetchJob (const QList< Item::Id > &items, QObject *parent=nullptr)
 
 ItemFetchJob (const QVector< Item::Id > &items, QObject *parent=nullptr)
 
 ItemFetchJob (const Tag &tag, QObject *parent=nullptr)
 
 ~ItemFetchJob () override
 
void clearItems ()
 
int count () const
 
DeliveryOptions deliveryOptions () const
 
ItemFetchScopefetchScope ()
 
Item::List items () const
 
void setCollection (const Collection &collection)
 
void setDeliveryOption (DeliveryOptions options)
 
void setFetchScope (const ItemFetchScope &fetchScope)
 
- Public Member Functions inherited from Akonadi::Job
 Job (QObject *parent=nullptr)
 
 ~Job () override
 
QString errorString () const final
 
void start () override
 
- Public Member Functions inherited from KCompositeJob
 KCompositeJob (QObject *parent=nullptr)
 
- Public Member Functions inherited from KJob
 KJob (QObject *parent=nullptr)
 
Capabilities capabilities () const
 
int error () const
 
QString errorText () const
 
bool exec ()
 
bool isAutoDelete () const
 
bool isSuspended () const
 
unsigned long percent () const
 
Q_SCRIPTABLE qulonglong processedAmount (Unit unit) const
 
void setAutoDelete (bool autodelete)
 
void setUiDelegate (KJobUiDelegate *delegate)
 
Q_SCRIPTABLE qulonglong totalAmount (Unit unit) const
 
KJobUiDelegateuiDelegate () const
 
- Public Member Functions inherited from QObject
 QObject (QObject *parent)
 
bool blockSignals (bool block)
 
const QObjectListchildren () const const
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const
 
void deleteLater ()
 
void destroyed (QObject *obj)
 
bool disconnect (const char *signal, const QObject *receiver, const char *method) const const
 
bool disconnect (const QObject *receiver, const char *method) const const
 
void dumpObjectInfo ()
 
void dumpObjectInfo () const const
 
void dumpObjectTree ()
 
void dumpObjectTree () const const
 
QList< QByteArraydynamicPropertyNames () const const
 
virtual bool event (QEvent *e)
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 
findChild (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegExp &regExp, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const
 
bool inherits (const char *className) const const
 
void installEventFilter (QObject *filterObj)
 
bool isWidgetType () const const
 
bool isWindowType () const const
 
void killTimer (int id)
 
virtual const QMetaObjectmetaObject () const const
 
void moveToThread (QThread *targetThread)
 
QString objectName () const const
 
void objectNameChanged (const QString &objectName)
 
QObjectparent () const const
 
QVariant property (const char *name) const const
 
 Q_CLASSINFO (Name, Value)
 
 Q_DISABLE_COPY (Class)
 
 Q_DISABLE_COPY_MOVE (Class)
 
 Q_DISABLE_MOVE (Class)
 
 Q_EMIT Q_EMIT
 
 Q_ENUM (...)
 
 Q_ENUM_NS (...)
 
 Q_ENUMS (...)
 
 Q_FLAG (...)
 
 Q_FLAG_NS (...)
 
 Q_FLAGS (...)
 
 Q_GADGET Q_GADGET
 
 Q_INTERFACES (...)
 
 Q_INVOKABLE Q_INVOKABLE
 
 Q_NAMESPACE Q_NAMESPACE
 
 Q_NAMESPACE_EXPORT (EXPORT_MACRO)
 
 Q_OBJECT Q_OBJECT
 
 Q_PROPERTY (...)
 
 Q_REVISION Q_REVISION
 
 Q_SET_OBJECT_NAME (Object)
 
 Q_SIGNAL Q_SIGNAL
 
 Q_SIGNALS Q_SIGNALS
 
 Q_SLOT Q_SLOT
 
 Q_SLOTS Q_SLOTS
 
qFindChild (const QObject *obj, const QString &name)
 
QList< T > qFindChildren (const QObject *obj, const QRegExp &regExp)
 
QList< T > qFindChildren (const QObject *obj, const QString &name)
 
qobject_cast (QObject *object)
 
qobject_cast (const QObject *object)
 
 QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_NARROWING_CONVERSIONS_IN_CONNECT
 
void removeEventFilter (QObject *obj)
 
void setObjectName (const QString &name)
 
void setParent (QObject *parent)
 
bool setProperty (const char *name, const QVariant &value)
 
bool signalsBlocked () const const
 
int startTimer (int interval, Qt::TimerType timerType)
 
int startTimer (std::chrono::milliseconds time, Qt::TimerType timerType)
 
QThreadthread () const const
 

Protected Member Functions

bool doHandleResponse (qint64 tag, const Protocol::CommandPtr &response) override
 
void doStart () override
 
- Protected Member Functions inherited from Akonadi::Job
bool addSubjob (KJob *job) override
 
bool doKill () override
 
void emitWriteFinished ()
 
bool removeSubjob (KJob *job) override
 
- Protected Member Functions inherited from KCompositeJob
void clearSubjobs ()
 
bool hasSubjobs () const
 
const QList< KJob * > & subjobs () const
 
- Protected Member Functions inherited from KJob
virtual bool doResume ()
 
virtual bool doSuspend ()
 
void emitPercent (qulonglong processedAmount, qulonglong totalAmount)
 
void emitResult ()
 
void emitSpeed (unsigned long speed)
 
bool isFinished () const
 
void setCapabilities (Capabilities capabilities)
 
void setError (int errorCode)
 
void setErrorText (const QString &errorText)
 
void setPercent (unsigned long percentage)
 
void setProcessedAmount (Unit unit, qulonglong amount)
 
void setProgressUnit (Unit unit)
 
void setTotalAmount (Unit unit, qulonglong amount)
 
- Protected Member Functions inherited from QObject
virtual void childEvent (QChildEvent *event)
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void customEvent (QEvent *event)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
bool isSignalConnected (const QMetaMethod &signal) const const
 
int receivers (const char *signal) const const
 
QObjectsender () const const
 
int senderSignalIndex () const const
 
virtual void timerEvent (QTimerEvent *event)
 

Additional Inherited Members

- Properties inherited from QObject
 objectName
 
- Public Slots inherited from KJob
bool kill (KillVerbosity verbosity=Quietly)
 
bool resume ()
 
bool suspend ()
 
- Static Public Member Functions inherited from QObject
QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, Functor functor)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type)
 
bool disconnect (const QMetaObject::Connection &connection)
 
bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method)
 
bool disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method)
 
bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
 
QString tr (const char *sourceText, const char *disambiguation, int n)
 
QString trUtf8 (const char *sourceText, const char *disambiguation, int n)
 
- Public Attributes inherited from KJob
 Bytes
 
 Directories
 
 Files
 
 Items
 
 Killable
 
 NoCapabilities
 
 Suspendable
 
- Public Attributes inherited from QObject
typedef QObjectList
 
- Protected Slots inherited from Akonadi::Job
void slotResult (KJob *job) override
 
- Protected Slots inherited from KCompositeJob
virtual void slotInfoMessage (KJob *job, const QString &plain, const QString &rich)
 
virtual void slotResult (KJob *job)
 

Detailed Description

Job that fetches items from the Akonadi storage.

This class is used to fetch items from the Akonadi storage. Which parts of the items (e.g. headers only, attachments or all) can be specified by the ItemFetchScope.

Note that ItemFetchJob does not refresh the Akonadi storage from the backend; this is unnecessary due to the fact that backend updates automatically trigger an update to the Akonadi database whenever they occur (unless the resource is offline).

Note that items can not be created in the root collection (Collection::root()) and therefore can not be fetched from there either. That is - an item fetch in the root collection will yield an empty list.

Example:

// Fetch all items with full payload from a collection
const Collection collection = getCollection();
connect(job, SIGNAL(result(KJob*)), SLOT(jobFinished(KJob*)));
...
MyClass::jobFinished(KJob *job)
{
if (job->error()) {
qDebug() << "Error occurred";
return;
}
const Akonadi::Item::List items = fetchJob->items();
for (const Akonadi::Item &item : items) {
qDebug() << "Item ID:" << item.id();
}
}
Author
Volker Krause vkrau[email protected][email protected][email protected]de.or[email protected]g

Definition at line 71 of file itemfetchjob.h.

Member Enumeration Documentation

Enumerator
ItemGetter 

items available through items()

EmitItemsIndividually 

emitted via signal upon reception

EmitItemsInBatches 

emitted via signal in bulk (collected and emitted delayed via timer)

Definition at line 203 of file itemfetchjob.h.

Constructor & Destructor Documentation

ItemFetchJob::ItemFetchJob ( const Collection collection,
QObject parent = nullptr 
)
explicit

Creates a new item fetch job that retrieves all items inside the given collection.

Parameters
collectionThe parent collection to fetch all items from.
parentThe parent object.

Definition at line 108 of file itemfetchjob.cpp.

ItemFetchJob::ItemFetchJob ( const Item &  item,
QObject parent = nullptr 
)
explicit

Creates a new item fetch job that retrieves the specified item.

If the item has a uid set, this is used to identify the item on the Akonadi server. If only a remote identifier is available, that is used. However, as remote identifiers are not necessarily globally unique, you need to specify the collection to search in in that case, using setCollection().

For internal use only when using remote identifiers, the resource search context can be set globally by ResourceSelectJob.

Parameters
itemThe item to fetch.
parentThe parent object.

Definition at line 118 of file itemfetchjob.cpp.

ItemFetchJob::ItemFetchJob ( const Item::List &  items,
QObject parent = nullptr 
)
explicit

Creates a new item fetch job that retrieves the specified items.

If the items have a uid set, this is used to identify the item on the Akonadi server. If only a remote identifier is available, that is used. However, as remote identifiers are not necessarily globally unique, you need to specify the collection to search in in that case, using setCollection().

For internal use only when using remote identifiers, the resource search context can be set globally by ResourceSelectJob.

Parameters
itemsThe items to fetch.
parentThe parent object.
Since
4.4

Definition at line 127 of file itemfetchjob.cpp.

ItemFetchJob::ItemFetchJob ( const QList< Item::Id > &  items,
QObject parent = nullptr 
)
explicit

Convenience ctor equivalent to ItemFetchJob(const Item::List &items, QObject *parent = nullptr)

Since
4.8

Definition at line 136 of file itemfetchjob.cpp.

ItemFetchJob::ItemFetchJob ( const QVector< Item::Id > &  items,
QObject parent = nullptr 
)
explicit

Convenience ctor equivalent to ItemFetchJob(const Item::List &items, QObject *parent = nullptr)

Since
5.4

Definition at line 148 of file itemfetchjob.cpp.

ItemFetchJob::ItemFetchJob ( const Tag tag,
QObject parent = nullptr 
)
explicit

Creates a new item fetch job that retrieves all items tagged with specified tag.

Parameters
tagThe tag to fetch all items from.
parentThe parent object.
Since
4.14

Definition at line 160 of file itemfetchjob.cpp.

ItemFetchJob::~ItemFetchJob ( )
overridedefault

Destroys the item fetch job.

Member Function Documentation

void ItemFetchJob::clearItems ( )

Save memory by clearing the fetched items.

Since
4.12

Definition at line 234 of file itemfetchjob.cpp.

int ItemFetchJob::count ( ) const

Returns the total number of retrieved items.

This works also without the ItemGetter DeliveryOption.

Since
4.14

Definition at line 276 of file itemfetchjob.cpp.

ItemFetchJob::DeliveryOptions ItemFetchJob::deliveryOptions ( ) const

Returns the delivery options.

Since
4.13

Definition at line 269 of file itemfetchjob.cpp.

bool ItemFetchJob::doHandleResponse ( qint64  tag,
const Protocol::CommandPtr response 
)
overrideprotectedvirtual

This method should be reimplemented in the concrete jobs in case you want to handle incoming data.

It will be called on received data from the backend. The default implementation does nothing.

Parameters
tagThe tag of the corresponding command, empty if this is an untagged response.
responseThe received response
Returns
Implementations should return true if the last response was processed and the job can emit result. Return false if more responses from server are expected.

Reimplemented from Akonadi::Job.

Definition at line 190 of file itemfetchjob.cpp.

void ItemFetchJob::doStart ( )
overrideprotectedvirtual

This method must be reimplemented in the concrete jobs.

It will be called after the job has been started and a connection to the Akonadi backend has been established.

Implements Akonadi::Job.

Definition at line 172 of file itemfetchjob.cpp.

ItemFetchScope & ItemFetchJob::fetchScope ( )

Returns the item fetch scope.

Since this returns a reference it can be used to conveniently modify the current scope in-place, i.e. by calling a method on the returned reference without storing it in a local variable. See the ItemFetchScope documentation for an example.

Returns
a reference to the current item fetch scope
See also
setFetchScope() for replacing the current item fetch scope

Definition at line 248 of file itemfetchjob.cpp.

Item::List ItemFetchJob::items ( ) const

Returns the fetched items.

This returns an empty list when not using the ItemGetter DeliveryOption.

Note
The items are invalid before the result(KJob*) signal has been emitted or if an error occurred.

Definition at line 227 of file itemfetchjob.cpp.

void Akonadi::ItemFetchJob::itemsReceived ( const Akonadi::Item::List &  items)
signal

This signal is emitted whenever new items have been fetched completely.

Note
This is an optimization; instead of waiting for the end of the job and calling items(), you can connect to this signal and get the items incrementally.
Parameters
itemsThe fetched items.
void ItemFetchJob::setCollection ( const Collection collection)

Specifies the collection the item is in.

This is only required when retrieving an item based on its remote id which might not be unique globally.

See also
ResourceSelectJob (for internal use only)

Definition at line 255 of file itemfetchjob.cpp.

void ItemFetchJob::setDeliveryOption ( DeliveryOptions  options)

Sets the mechanisms by which the items should be fetched.

Since
4.13

Definition at line 262 of file itemfetchjob.cpp.

void ItemFetchJob::setFetchScope ( const ItemFetchScope fetchScope)

Sets the item fetch scope.

The ItemFetchScope controls how much of an item's data is fetched from the server, e.g. whether to fetch the full item payload or only meta data.

Parameters
fetchScopeThe new scope for item fetch operations.
See also
fetchScope()
Since
4.4

Definition at line 241 of file itemfetchjob.cpp.


The documentation for this class was generated from the following files:
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Fri Dec 4 2020 23:17:58 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.