/usr/include/akonadi/itemcreatejob.h is in kdepimlibs5-dev 4:4.14.10-1ubuntu7.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 | /*
Copyright (c) 2006 - 2007 Volker Krause <vkrause@kde.org>
This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
*/
#ifndef AKONADI_ITEMCREATEJOB_H
#define AKONADI_ITEMCREATEJOB_H
#include <akonadi/job.h>
namespace Akonadi {
class Collection;
class Item;
class ItemCreateJobPrivate;
/**
* @short Job that creates a new item in the Akonadi storage.
*
* This job creates a new item with all the set properties in the
* given target collection.
*
* Note that items can not be created in the root collection (Collection::root())
* and the collection must have Collection::contentMimeTypes() that match the mimetype
* of the item being created.
*
* Example:
*
* @code
*
* // Create a contact item in the root collection
*
* KABC::Addressee addr;
* addr.setNameFromString( "Joe Jr. Miller" );
*
* Akonadi::Item item;
* item.setMimeType( "text/directory" );
* item.setPayload<KABC::Addressee>( addr );
*
* Akonadi::Collection collection = getCollection();
*
* Akonadi::ItemCreateJob *job = new Akonadi::ItemCreateJob( item, collection );
* connect( job, SIGNAL(result(KJob*)), SLOT(jobFinished(KJob*)) );
*
* ...
*
* MyClass::jobFinished( KJob *job )
* {
* if ( job->error() )
* qDebug() << "Error occurred";
* else
* qDebug() << "Contact item created successfully";
* }
*
* @endcode
*
* @author Volker Krause <vkrause@kde.org>
*/
class AKONADI_EXPORT ItemCreateJob : public Job
{
Q_OBJECT
public:
/**
* Creates a new item create job.
*
* @param item The item to create.
* @note It must have a mime type set.
* @param collection The parent collection where the new item shall be located in.
* @param parent The parent object.
*/
ItemCreateJob(const Item &item, const Collection &collection, QObject *parent = 0);
/**
* Destroys the item create job.
*/
~ItemCreateJob();
/**
* Returns the created item with the new unique id, or an invalid item if the job failed.
*/
Item item() const;
enum MergeOption {
NoMerge = 0, ///< Don't merge
RID = 1, ///< Merge by remote id
GID = 2, ///< Merge by GID
Silent = 4 ///< Only return the id of the merged/created item.
};
Q_DECLARE_FLAGS(MergeOptions, MergeOption)
/**
* Merge this item into an existing one if available.
*
* If an item with same GID and/or remote ID as the created item exists in
* specified collection (depending on the provided options), the new item will
* be merged into the existing one and the merged item will be returned
* (unless the Silent option is used).
*
* If no matching item is found a new item is created.
*
* If the item does not have a GID or RID, this option will be
* ignored and a new item will be created.
*
* By default, merging is disabled.
*
* @param options Merge options.
* @since 4.14
*/
void setMerge(MergeOptions options);
protected:
virtual void doStart();
virtual void doHandleResponse(const QByteArray &tag, const QByteArray &data);
private:
Q_DECLARE_PRIVATE(ItemCreateJob)
};
Q_DECLARE_OPERATORS_FOR_FLAGS(ItemCreateJob::MergeOptions)
}
#endif
|