• Skip to content
  • Skip to link menu
KDE 4.6 API Reference
  • KDE API Reference
  • KDE-PIM Libraries
  • KDE Home
  • Contact Us
 

akonadi

  • Akonadi
  • ItemFetchJob
Signals | Public Member Functions | Protected Member Functions
Akonadi::ItemFetchJob Class Reference

Job that fetches items from the Akonadi storage. More...

#include <itemfetchjob.h>

Inheritance diagram for Akonadi::ItemFetchJob:
Inheritance graph
[legend]

List of all members.

Signals

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

Public Member Functions

 ItemFetchJob (const Collection &collection, QObject *parent=0)
 ItemFetchJob (const Item &item, QObject *parent=0)
 ItemFetchJob (const Item::List &items, QObject *parent=0)
virtual ~ItemFetchJob ()
ItemFetchScope & fetchScope ()
Item::List items () const
void setCollection (const Collection &collection)
void setFetchScope (const ItemFetchScope &fetchScope)
void setFetchScope (ItemFetchScope &fetchScope)

Protected Member Functions

virtual void doHandleResponse (const QByteArray &tag, const QByteArray &data)
virtual void doStart ()

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();

 Akonadi::ItemFetchJob *job = new Akonadi::ItemFetchJob( collection );
 connect( job, SIGNAL( result( KJob* ) ), SLOT( jobFinished( KJob* ) ) );
 job->fetchScope().fetchFullPayload();

 ...

 MyClass::jobFinished( KJob *job )
 {
   if ( job->error() ) {
     qDebug() << "Error occurred";
     return;
   }

   Akonadi::ItemFetchJob *fetchJob = qobject_cast<Akonadi::ItemFetchJob*>( job );

   const Akonadi::Item::List items = fetchJob->items();
   foreach ( const Akonadi::Item &item, items ) {
     qDebug() << "Item ID:" << item.id();
   }
 }
Author:
Volker Krause <vkrause@kde.org>

Definition at line 82 of file itemfetchjob.h.


Constructor & Destructor Documentation

Akonadi::ItemFetchJob::ItemFetchJob ( const Collection &  collection,
QObject *  parent = 0 
) [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.
Akonadi::ItemFetchJob::ItemFetchJob ( const Item &  item,
QObject *  parent = 0 
) [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 resource and/or collection to search in in that case, using setCollection() or Akonadi::ResourceSelectJob.

Parameters:
itemThe item to fetch.
parentThe parent object.
Akonadi::ItemFetchJob::ItemFetchJob ( const Item::List &  items,
QObject *  parent = 0 
) [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 resource and/or collection to search in in that case, using setCollection() or Akonadi::ResourceSelectJob.

Parameters:
itemsThe items to fetch.
parentThe parent object.
Since:
4.4
ItemFetchJob::~ItemFetchJob ( ) [virtual]

Destroys the item fetch job.

Definition at line 148 of file itemfetchjob.cpp.


Member Function Documentation

virtual void Akonadi::ItemFetchJob::doHandleResponse ( const QByteArray &  tag,
const QByteArray &  data 
) [protected, virtual]

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.
dataThe received data.

Reimplemented from Akonadi::Job.

virtual void Akonadi::ItemFetchJob::doStart ( ) [protected, virtual]

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.

ItemFetchScope& Akonadi::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
Item::List Akonadi::ItemFetchJob::items ( ) const

Returns the fetched item.

Note:
The items are invalid before the result( KJob* ) signal has been emitted or if an error occurred.
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 Akonadi::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:
Akonadi::ResourceSelectJob
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 210 of file itemfetchjob.cpp.

void ItemFetchJob::setFetchScope ( 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()

Definition at line 203 of file itemfetchjob.cpp.


The documentation for this class was generated from the following files:
  • itemfetchjob.h
  • itemfetchjob.cpp

akonadi

Skip menu "akonadi"
  • Main Page
  • Modules
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

KDE-PIM Libraries

Skip menu "KDE-PIM Libraries"
  • akonadi
  •   contact
  •   kmime
  • kabc
  • kblog
  • kcal
  • kcalcore
  • kcalutils
  • kholidays
  • kimap
  • kioslave
  •   imap4
  •   mbox
  •   nntp
  • kldap
  • kmbox
  • kmime
  • kontactinterface
  • kpimidentities
  • kpimtextedit
  •   richtextbuilders
  • kpimutils
  • kresources
  • ktnef
  • kxmlrpcclient
  • mailtransport
  • microblog
  • qgpgme
  • syndication
  •   atom
  •   rdf
  •   rss2
Generated for KDE-PIM Libraries by doxygen 1.7.4
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal