Akonadi::ItemFetchJob

Search for usage in LXR

#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
}
 
using List = QList<Job *>
 
- 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 &message)
 
void percentChanged (KJob *job, unsigned long percent)
 
void processedAmountChanged (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 totalAmountChanged (KJob *job, KJob::Unit unit, qulonglong amount)
 
void totalSize (KJob *job, qulonglong size)
 
void warning (KJob *job, const QString &message)
 

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 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)
 
void setLimit (int limit, int start, Qt::SortOrder order=Qt::DescendingOrder)
 
- 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 isFinishedNotificationHidden () const
 
bool isStartedWithExec () const
 
bool isSuspended () const
 
unsigned long percent () const
 
Q_SCRIPTABLE qulonglong processedAmount (Unit unit) const
 
void setAutoDelete (bool autodelete)
 
void setFinishedNotificationHidden (bool hide=true)
 
void setUiDelegate (KJobUiDelegate *delegate)
 
Q_SCRIPTABLE qulonglong totalAmount (Unit unit) const
 
KJobUiDelegateuiDelegate () const
 
- Public Member Functions inherited from QObject
 QObject (QObject *parent)
 
QBindable< QStringbindableObjectName ()
 
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 () const const
 
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 QRegularExpression &re, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (Qt::FindChildOptions options) const const
 
bool inherits (const char *className) const const
 
void installEventFilter (QObject *filterObj)
 
bool isQuickItemType () const const
 
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_EMIT Q_EMIT
 
 Q_ENUM (...)
 
 Q_ENUM_NS (...)
 
 Q_ENUMS (...)
 
 Q_FLAG (...)
 
 Q_FLAG_NS (...)
 
 Q_FLAGS (...)
 
 Q_GADGET Q_GADGET
 
 Q_GADGET_EXPORT (EXPORT_MACRO)
 
 Q_INTERFACES (...)
 
 Q_INVOKABLE Q_INVOKABLE
 
 Q_MOC_INCLUDE Q_MOC_INCLUDE
 
 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
 
qobject_cast (const QObject *object)
 
qobject_cast (QObject *object)
 
 QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_NARROWING_CONVERSIONS_IN_CONNECT
 
void removeEventFilter (QObject *obj)
 
void setObjectName (const QString &name)
 
void setObjectName (QAnyStringView name)
 
void setParent (QObject *parent)
 
bool setProperty (const char *name, const QVariant &value)
 
bool setProperty (const char *name, QVariant &&value)
 
bool signalsBlocked () const const
 
int startTimer (int interval, Qt::TimerType timerType)
 
int startTimer (std::chrono::milliseconds interval, 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 (KJob::KillVerbosity verbosity=KJob::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 *context, Functor functor, 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)
 
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, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
 
bool disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method)
 
QString tr (const char *sourceText, const char *disambiguation, int n)
 
- Public Attributes inherited from KJob
 Bytes
 
 Directories
 
 Files
 
 Items
 
 Killable
 
 NoCapabilities
 
 Suspendable
 
 UnitsCount
 
- 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 &message)
 
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();
...
MyClass::jobFinished(KJob *job)
{
if (job->error()) {
qDebug() << "Error occurred";
return;
}
for (const Akonadi::Item &item : items) {
qDebug() << "Item ID:" << item.id();
}
}
Represents a collection of PIM items.
Definition collection.h:62
Job that fetches items from the Akonadi storage.
ItemFetchScope & fetchScope()
Returns the item fetch scope.
Item::List items() const
Returns the fetched items.
void fetchFullPayload(bool fetch=true)
Sets whether the full payload shall be fetched.
Represents a PIM item stored in Akonadi storage.
Definition item.h:101
int error() const
void result(KJob *job)
QMetaObject::Connection connect(const QObject *sender, PointerToMemberFunction signal, Functor functor)
T qobject_cast(QObject *object)
Author
Volker Krause vkrau.nosp@m.se@k.nosp@m.de.or.nosp@m.g

Definition at line 69 of file itemfetchjob.h.

Member Typedef Documentation

◆ DeliveryOptions

Member Enumeration Documentation

◆ DeliveryOption

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 194 of file itemfetchjob.h.

Constructor & Destructor Documentation

◆ ItemFetchJob() [1/5]

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 110 of file itemfetchjob.cpp.

◆ ItemFetchJob() [2/5]

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 120 of file itemfetchjob.cpp.

◆ ItemFetchJob() [3/5]

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 129 of file itemfetchjob.cpp.

◆ ItemFetchJob() [4/5]

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 138 of file itemfetchjob.cpp.

◆ ItemFetchJob() [5/5]

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 149 of file itemfetchjob.cpp.

◆ ~ItemFetchJob()

ItemFetchJob::~ItemFetchJob ( )
overridedefault

Destroys the item fetch job.

Member Function Documentation

◆ clearItems()

void ItemFetchJob::clearItems ( )

Save memory by clearing the fetched items.

Since
4.12

Definition at line 223 of file itemfetchjob.cpp.

◆ count()

int ItemFetchJob::count ( ) const

Returns the total number of retrieved items.

This works also without the ItemGetter DeliveryOption.

Since
4.14

Definition at line 265 of file itemfetchjob.cpp.

◆ deliveryOptions()

ItemFetchJob::DeliveryOptions ItemFetchJob::deliveryOptions ( ) const

Returns the delivery options.

Since
4.13

Definition at line 258 of file itemfetchjob.cpp.

◆ doHandleResponse()

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 179 of file itemfetchjob.cpp.

◆ doStart()

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 161 of file itemfetchjob.cpp.

◆ fetchScope()

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 237 of file itemfetchjob.cpp.

◆ items()

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 216 of file itemfetchjob.cpp.

◆ itemsReceived

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.

◆ setCollection()

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 244 of file itemfetchjob.cpp.

◆ setDeliveryOption()

void ItemFetchJob::setDeliveryOption ( DeliveryOptions options)

Sets the mechanisms by which the items should be fetched.

Since
4.13

Definition at line 251 of file itemfetchjob.cpp.

◆ setFetchScope()

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 230 of file itemfetchjob.cpp.

◆ setLimit()

void ItemFetchJob::setLimit ( int limit,
int start,
Qt::SortOrder order = Qt::DescendingOrder )

Sets the limit of fetched items.

Parameters
limitthe maximum number of items to retrieve. The default value for limit is -1, indicating no limit.
startspecifies the offset of the first item to retrieve.
orderspecifies whether items will be fetched starting with the highest or lowest ID of the item.

Definition at line 272 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-2024 The KDE developers.
Generated on Tue Mar 26 2024 11:13:38 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.