summaryrefslogtreecommitdiffstats
path: root/examples/maildirresource
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2016-01-20 19:07:07 +0100
committerChristian Mollekopf <chrigi_1@fastmail.fm>2016-01-20 19:07:07 +0100
commitbdb01c2c068df326f5a8328ed1492ab1bea388c5 (patch)
tree25c2ee1b29bc481b6914c244ed9ca194b1415d16 /examples/maildirresource
parent17e7ee40c9185c0505883853345fd6024c675b1a (diff)
downloadsink-bdb01c2c068df326f5a8328ed1492ab1bea388c5.tar.gz
sink-bdb01c2c068df326f5a8328ed1492ab1bea388c5.zip
Renamed Akonadi2 to Sink
(except for documentation).
Diffstat (limited to 'examples/maildirresource')
-rw-r--r--examples/maildirresource/CMakeLists.txt6
-rw-r--r--examples/maildirresource/domainadaptor.h4
-rw-r--r--examples/maildirresource/facade.cpp4
-rw-r--r--examples/maildirresource/facade.h4
-rw-r--r--examples/maildirresource/libmaildir/maildir.cpp16
-rw-r--r--examples/maildirresource/libmaildir/maildir.h2
-rw-r--r--examples/maildirresource/maildirresource.cpp90
-rw-r--r--examples/maildirresource/maildirresource.h20
8 files changed, 73 insertions, 73 deletions
diff --git a/examples/maildirresource/CMakeLists.txt b/examples/maildirresource/CMakeLists.txt
index 2340cf6..baacd44 100644
--- a/examples/maildirresource/CMakeLists.txt
+++ b/examples/maildirresource/CMakeLists.txt
@@ -1,4 +1,4 @@
1project(akonadi2_resource_maildir) 1project(sink_resource_maildir)
2 2
3add_definitions(-DQT_PLUGIN) 3add_definitions(-DQT_PLUGIN)
4include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) 4include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
@@ -8,8 +8,8 @@ find_package(KF5 COMPONENTS REQUIRED Mime)
8add_library(${PROJECT_NAME} SHARED facade.cpp maildirresource.cpp domainadaptor.cpp) 8add_library(${PROJECT_NAME} SHARED facade.cpp maildirresource.cpp domainadaptor.cpp)
9# generate_flatbuffers(${PROJECT_NAME} dummycalendar) 9# generate_flatbuffers(${PROJECT_NAME} dummycalendar)
10qt5_use_modules(${PROJECT_NAME} Core Network) 10qt5_use_modules(${PROJECT_NAME} Core Network)
11target_link_libraries(${PROJECT_NAME} akonadi2common maildir KF5::Mime) 11target_link_libraries(${PROJECT_NAME} sinkcommon maildir KF5::Mime)
12 12
13install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION ${AKONADI2_RESOURCE_PLUGINS_PATH}) 13install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION ${SINK_RESOURCE_PLUGINS_PATH})
14 14
15add_subdirectory(libmaildir) 15add_subdirectory(libmaildir)
diff --git a/examples/maildirresource/domainadaptor.h b/examples/maildirresource/domainadaptor.h
index 0fc7108..700d2e5 100644
--- a/examples/maildirresource/domainadaptor.h
+++ b/examples/maildirresource/domainadaptor.h
@@ -23,14 +23,14 @@
23#include "folder_generated.h" 23#include "folder_generated.h"
24#include "dummy_generated.h" 24#include "dummy_generated.h"
25 25
26class MaildirMailAdaptorFactory : public DomainTypeAdaptorFactory<Akonadi2::ApplicationDomain::Mail, Akonadi2::ApplicationDomain::Buffer::Dummy, Akonadi2::ApplicationDomain::Buffer::DummyBuilder> 26class MaildirMailAdaptorFactory : public DomainTypeAdaptorFactory<Sink::ApplicationDomain::Mail, Sink::ApplicationDomain::Buffer::Dummy, Sink::ApplicationDomain::Buffer::DummyBuilder>
27{ 27{
28public: 28public:
29 MaildirMailAdaptorFactory(); 29 MaildirMailAdaptorFactory();
30 virtual ~MaildirMailAdaptorFactory() {}; 30 virtual ~MaildirMailAdaptorFactory() {};
31}; 31};
32 32
33class MaildirFolderAdaptorFactory : public DomainTypeAdaptorFactory<Akonadi2::ApplicationDomain::Folder, Akonadi2::ApplicationDomain::Buffer::Dummy, Akonadi2::ApplicationDomain::Buffer::DummyBuilder> 33class MaildirFolderAdaptorFactory : public DomainTypeAdaptorFactory<Sink::ApplicationDomain::Folder, Sink::ApplicationDomain::Buffer::Dummy, Sink::ApplicationDomain::Buffer::DummyBuilder>
34{ 34{
35public: 35public:
36 MaildirFolderAdaptorFactory(); 36 MaildirFolderAdaptorFactory();
diff --git a/examples/maildirresource/facade.cpp b/examples/maildirresource/facade.cpp
index 3cf3fde..7178ab9 100644
--- a/examples/maildirresource/facade.cpp
+++ b/examples/maildirresource/facade.cpp
@@ -22,7 +22,7 @@
22#include "domainadaptor.h" 22#include "domainadaptor.h"
23 23
24MaildirResourceMailFacade::MaildirResourceMailFacade(const QByteArray &instanceIdentifier) 24MaildirResourceMailFacade::MaildirResourceMailFacade(const QByteArray &instanceIdentifier)
25 : Akonadi2::GenericFacade<Akonadi2::ApplicationDomain::Mail>(instanceIdentifier, QSharedPointer<MaildirMailAdaptorFactory>::create()) 25 : Sink::GenericFacade<Sink::ApplicationDomain::Mail>(instanceIdentifier, QSharedPointer<MaildirMailAdaptorFactory>::create())
26{ 26{
27} 27}
28 28
@@ -32,7 +32,7 @@ MaildirResourceMailFacade::~MaildirResourceMailFacade()
32 32
33 33
34MaildirResourceFolderFacade::MaildirResourceFolderFacade(const QByteArray &instanceIdentifier) 34MaildirResourceFolderFacade::MaildirResourceFolderFacade(const QByteArray &instanceIdentifier)
35 : Akonadi2::GenericFacade<Akonadi2::ApplicationDomain::Folder>(instanceIdentifier, QSharedPointer<MaildirFolderAdaptorFactory>::create()) 35 : Sink::GenericFacade<Sink::ApplicationDomain::Folder>(instanceIdentifier, QSharedPointer<MaildirFolderAdaptorFactory>::create())
36{ 36{
37} 37}
38 38
diff --git a/examples/maildirresource/facade.h b/examples/maildirresource/facade.h
index 80f0d06..a243b0d 100644
--- a/examples/maildirresource/facade.h
+++ b/examples/maildirresource/facade.h
@@ -21,14 +21,14 @@
21 21
22#include "common/facade.h" 22#include "common/facade.h"
23 23
24class MaildirResourceMailFacade : public Akonadi2::GenericFacade<Akonadi2::ApplicationDomain::Mail> 24class MaildirResourceMailFacade : public Sink::GenericFacade<Sink::ApplicationDomain::Mail>
25{ 25{
26public: 26public:
27 MaildirResourceMailFacade(const QByteArray &instanceIdentifier); 27 MaildirResourceMailFacade(const QByteArray &instanceIdentifier);
28 virtual ~MaildirResourceMailFacade(); 28 virtual ~MaildirResourceMailFacade();
29}; 29};
30 30
31class MaildirResourceFolderFacade : public Akonadi2::GenericFacade<Akonadi2::ApplicationDomain::Folder> 31class MaildirResourceFolderFacade : public Sink::GenericFacade<Sink::ApplicationDomain::Folder>
32{ 32{
33public: 33public:
34 MaildirResourceFolderFacade(const QByteArray &instanceIdentifier); 34 MaildirResourceFolderFacade(const QByteArray &instanceIdentifier);
diff --git a/examples/maildirresource/libmaildir/maildir.cpp b/examples/maildirresource/libmaildir/maildir.cpp
index 28cf46e..3d4630f 100644
--- a/examples/maildirresource/libmaildir/maildir.cpp
+++ b/examples/maildirresource/libmaildir/maildir.cpp
@@ -688,7 +688,7 @@ bool Maildir::removeEntry(const QString& key)
688 // return QFile::remove(realKey); 688 // return QFile::remove(realKey);
689} 689}
690 690
691// QString Maildir::changeEntryFlags(const QString& key, const Akonadi::Item::Flags& flags) 691// QString Maildir::changeEntryFlags(const QString& key, const Sink::Item::Flags& flags)
692// { 692// {
693// QString realKey(d->findRealKey(key)); 693// QString realKey(d->findRealKey(key));
694// if (realKey.isEmpty()) { 694// if (realKey.isEmpty()) {
@@ -701,16 +701,16 @@ bool Maildir::removeEntry(const QString& key)
701// QString finalKey = key.left(key.indexOf(rx)); 701// QString finalKey = key.left(key.indexOf(rx));
702// 702//
703// QStringList mailDirFlags; 703// QStringList mailDirFlags;
704// Q_FOREACH (const Akonadi::Item::Flag &flag, flags) { 704// Q_FOREACH (const Sink::Item::Flag &flag, flags) {
705// if (flag == Akonadi::MessageFlags::Forwarded) 705// if (flag == Sink::MessageFlags::Forwarded)
706// mailDirFlags << QLatin1String("P"); 706// mailDirFlags << QLatin1String("P");
707// if (flag == Akonadi::MessageFlags::Replied) 707// if (flag == Sink::MessageFlags::Replied)
708// mailDirFlags << QLatin1String("R"); 708// mailDirFlags << QLatin1String("R");
709// if (flag == Akonadi::MessageFlags::Seen) 709// if (flag == Sink::MessageFlags::Seen)
710// mailDirFlags << QLatin1String("S"); 710// mailDirFlags << QLatin1String("S");
711// if (flag == Akonadi::MessageFlags::Deleted) 711// if (flag == Sink::MessageFlags::Deleted)
712// mailDirFlags << QLatin1String("T"); 712// mailDirFlags << QLatin1String("T");
713// if (flag == Akonadi::MessageFlags::Flagged) 713// if (flag == Sink::MessageFlags::Flagged)
714// mailDirFlags << QLatin1String("F"); 714// mailDirFlags << QLatin1String("F");
715// } 715// }
716// mailDirFlags.sort(); 716// mailDirFlags.sort();
@@ -726,7 +726,7 @@ bool Maildir::removeEntry(const QString& key)
726// finalKey.prepend(d->path + QString::fromLatin1("/cur/")); 726// finalKey.prepend(d->path + QString::fromLatin1("/cur/"));
727// 727//
728// if (realKey == finalKey) { 728// if (realKey == finalKey) {
729// // Somehow it already is named this way (e.g. migration bug -> wrong status in akonadi) 729// // Somehow it already is named this way (e.g. migration bug -> wrong status in sink)
730// return newUniqueKey; 730// return newUniqueKey;
731// } 731// }
732// 732//
diff --git a/examples/maildirresource/libmaildir/maildir.h b/examples/maildirresource/libmaildir/maildir.h
index fefd5a7..a89a832 100644
--- a/examples/maildirresource/libmaildir/maildir.h
+++ b/examples/maildirresource/libmaildir/maildir.h
@@ -211,7 +211,7 @@ public:
211 * Change the flags for an entry specified by @p key. Returns the new key of the entry (the key might change because 211 * Change the flags for an entry specified by @p key. Returns the new key of the entry (the key might change because
212 * flags are stored in the unique filename). 212 * flags are stored in the unique filename).
213 */ 213 */
214 // QString changeEntryFlags( const QString& key, const Akonadi::Item::Flags& flags ); 214 // QString changeEntryFlags( const QString& key, const Sink::Item::Flags& flags );
215 215
216 /** 216 /**
217 * Moves this maildir into @p destination. 217 * Moves this maildir into @p destination.
diff --git a/examples/maildirresource/maildirresource.cpp b/examples/maildirresource/maildirresource.cpp
index 9280bdc..33883a7 100644
--- a/examples/maildirresource/maildirresource.cpp
+++ b/examples/maildirresource/maildirresource.cpp
@@ -46,15 +46,15 @@
46#define ENTITY_TYPE_MAIL "mail" 46#define ENTITY_TYPE_MAIL "mail"
47#define ENTITY_TYPE_FOLDER "folder" 47#define ENTITY_TYPE_FOLDER "folder"
48 48
49MaildirResource::MaildirResource(const QByteArray &instanceIdentifier, const QSharedPointer<Akonadi2::Pipeline> &pipeline) 49MaildirResource::MaildirResource(const QByteArray &instanceIdentifier, const QSharedPointer<Sink::Pipeline> &pipeline)
50 : Akonadi2::GenericResource(instanceIdentifier, pipeline), 50 : Sink::GenericResource(instanceIdentifier, pipeline),
51 mMailAdaptorFactory(QSharedPointer<MaildirMailAdaptorFactory>::create()), 51 mMailAdaptorFactory(QSharedPointer<MaildirMailAdaptorFactory>::create()),
52 mFolderAdaptorFactory(QSharedPointer<MaildirFolderAdaptorFactory>::create()) 52 mFolderAdaptorFactory(QSharedPointer<MaildirFolderAdaptorFactory>::create())
53{ 53{
54 addType(ENTITY_TYPE_MAIL, mMailAdaptorFactory, 54 addType(ENTITY_TYPE_MAIL, mMailAdaptorFactory,
55 QVector<Akonadi2::Preprocessor*>() << new DefaultIndexUpdater<Akonadi2::ApplicationDomain::Mail>); 55 QVector<Sink::Preprocessor*>() << new DefaultIndexUpdater<Sink::ApplicationDomain::Mail>);
56 addType(ENTITY_TYPE_FOLDER, mFolderAdaptorFactory, 56 addType(ENTITY_TYPE_FOLDER, mFolderAdaptorFactory,
57 QVector<Akonadi2::Preprocessor*>() << new DefaultIndexUpdater<Akonadi2::ApplicationDomain::Folder>); 57 QVector<Sink::Preprocessor*>() << new DefaultIndexUpdater<Sink::ApplicationDomain::Folder>);
58 auto config = ResourceConfig::getConfiguration(instanceIdentifier); 58 auto config = ResourceConfig::getConfiguration(instanceIdentifier);
59 mMaildirPath = QDir::cleanPath(QDir::fromNativeSeparators(config.value("path").toString())); 59 mMaildirPath = QDir::cleanPath(QDir::fromNativeSeparators(config.value("path").toString()));
60 //Chop a trailing slash if necessary 60 //Chop a trailing slash if necessary
@@ -91,7 +91,7 @@ QStringList MaildirResource::listAvailableFolders()
91 return folderList; 91 return folderList;
92} 92}
93 93
94void MaildirResource::synchronizeFolders(Akonadi2::Storage::Transaction &transaction, Akonadi2::Storage::Transaction &synchronizationTransaction) 94void MaildirResource::synchronizeFolders(Sink::Storage::Transaction &transaction, Sink::Storage::Transaction &synchronizationTransaction)
95{ 95{
96 const QByteArray bufferType = ENTITY_TYPE_FOLDER; 96 const QByteArray bufferType = ENTITY_TYPE_FOLDER;
97 QStringList folderList = listAvailableFolders(); 97 QStringList folderList = listAvailableFolders();
@@ -102,7 +102,7 @@ void MaildirResource::synchronizeFolders(Akonadi2::Storage::Transaction &transac
102 //TODO Instead of iterating over all entries in the database, which can also pick up the same item multiple times, 102 //TODO Instead of iterating over all entries in the database, which can also pick up the same item multiple times,
103 //we should rather iterate over an index that contains every uid exactly once. The remoteId index would be such an index, 103 //we should rather iterate over an index that contains every uid exactly once. The remoteId index would be such an index,
104 //but we currently fail to iterate over all entries in an index it seems. 104 //but we currently fail to iterate over all entries in an index it seems.
105 // auto remoteIds = synchronizationTransaction.openDatabase("rid.mapping." + bufferType, std::function<void(const Akonadi2::Storage::Error &)>(), true); 105 // auto remoteIds = synchronizationTransaction.openDatabase("rid.mapping." + bufferType, std::function<void(const Sink::Storage::Error &)>(), true);
106 auto mainDatabase = transaction.openDatabase(bufferType + ".main"); 106 auto mainDatabase = transaction.openDatabase(bufferType + ".main");
107 mainDatabase.scan("", [&](const QByteArray &key, const QByteArray &) { 107 mainDatabase.scan("", [&](const QByteArray &key, const QByteArray &) {
108 callback(key); 108 callback(key);
@@ -119,7 +119,7 @@ void MaildirResource::synchronizeFolders(Akonadi2::Storage::Transaction &transac
119 Trace() << "Processing folder " << remoteId; 119 Trace() << "Processing folder " << remoteId;
120 KPIM::Maildir md(folderPath, folderPath == mMaildirPath); 120 KPIM::Maildir md(folderPath, folderPath == mMaildirPath);
121 121
122 Akonadi2::ApplicationDomain::Folder folder; 122 Sink::ApplicationDomain::Folder folder;
123 folder.setProperty("name", md.name()); 123 folder.setProperty("name", md.name());
124 folder.setProperty("icon", "folder"); 124 folder.setProperty("icon", "folder");
125 if (!md.isRoot()) { 125 if (!md.isRoot()) {
@@ -129,7 +129,7 @@ void MaildirResource::synchronizeFolders(Akonadi2::Storage::Transaction &transac
129 } 129 }
130} 130}
131 131
132void MaildirResource::synchronizeMails(Akonadi2::Storage::Transaction &transaction, Akonadi2::Storage::Transaction &synchronizationTransaction, const QString &path) 132void MaildirResource::synchronizeMails(Sink::Storage::Transaction &transaction, Sink::Storage::Transaction &synchronizationTransaction, const QString &path)
133{ 133{
134 Trace() << "Synchronizing mails" << path; 134 Trace() << "Synchronizing mails" << path;
135 const QByteArray bufferType = ENTITY_TYPE_MAIL; 135 const QByteArray bufferType = ENTITY_TYPE_MAIL;
@@ -150,8 +150,8 @@ void MaildirResource::synchronizeMails(Akonadi2::Storage::Transaction &transacti
150 scanForRemovals(transaction, synchronizationTransaction, bufferType, 150 scanForRemovals(transaction, synchronizationTransaction, bufferType,
151 [&](const std::function<void(const QByteArray &)> &callback) { 151 [&](const std::function<void(const QByteArray &)> &callback) {
152 Index index(bufferType + ".index." + property, transaction); 152 Index index(bufferType + ".index." + property, transaction);
153 index.lookup(folderLocalId, [&](const QByteArray &akonadiId) { 153 index.lookup(folderLocalId, [&](const QByteArray &sinkId) {
154 callback(akonadiId); 154 callback(sinkId);
155 }, 155 },
156 [&](const Index::Error &error) { 156 [&](const Index::Error &error) {
157 Warning() << "Error in index: " << error.message << property; 157 Warning() << "Error in index: " << error.message << property;
@@ -175,7 +175,7 @@ void MaildirResource::synchronizeMails(Akonadi2::Storage::Transaction &transacti
175 175
176 Trace() << "Found a mail " << filePath << " : " << fileName << msg->subject(true)->asUnicodeString(); 176 Trace() << "Found a mail " << filePath << " : " << fileName << msg->subject(true)->asUnicodeString();
177 177
178 Akonadi2::ApplicationDomain::Mail mail; 178 Sink::ApplicationDomain::Mail mail;
179 mail.setProperty("subject", msg->subject(true)->asUnicodeString()); 179 mail.setProperty("subject", msg->subject(true)->asUnicodeString());
180 mail.setProperty("sender", msg->from(true)->asUnicodeString()); 180 mail.setProperty("sender", msg->from(true)->asUnicodeString());
181 mail.setProperty("senderName", msg->from(true)->asUnicodeString()); 181 mail.setProperty("senderName", msg->from(true)->asUnicodeString());
@@ -189,19 +189,19 @@ void MaildirResource::synchronizeMails(Akonadi2::Storage::Transaction &transacti
189 } 189 }
190} 190}
191 191
192KAsync::Job<void> MaildirResource::synchronizeWithSource(Akonadi2::Storage &mainStore, Akonadi2::Storage &synchronizationStore) 192KAsync::Job<void> MaildirResource::synchronizeWithSource(Sink::Storage &mainStore, Sink::Storage &synchronizationStore)
193{ 193{
194 Log() << " Synchronizing"; 194 Log() << " Synchronizing";
195 return KAsync::start<void>([this, &mainStore, &synchronizationStore]() { 195 return KAsync::start<void>([this, &mainStore, &synchronizationStore]() {
196 auto transaction = mainStore.createTransaction(Akonadi2::Storage::ReadOnly); 196 auto transaction = mainStore.createTransaction(Sink::Storage::ReadOnly);
197 { 197 {
198 auto synchronizationTransaction = synchronizationStore.createTransaction(Akonadi2::Storage::ReadWrite); 198 auto synchronizationTransaction = synchronizationStore.createTransaction(Sink::Storage::ReadWrite);
199 synchronizeFolders(transaction, synchronizationTransaction); 199 synchronizeFolders(transaction, synchronizationTransaction);
200 //The next sync needs the folders available 200 //The next sync needs the folders available
201 synchronizationTransaction.commit(); 201 synchronizationTransaction.commit();
202 } 202 }
203 for (const auto &folder : listAvailableFolders()) { 203 for (const auto &folder : listAvailableFolders()) {
204 auto synchronizationTransaction = synchronizationStore.createTransaction(Akonadi2::Storage::ReadWrite); 204 auto synchronizationTransaction = synchronizationStore.createTransaction(Sink::Storage::ReadWrite);
205 synchronizeMails(transaction, synchronizationTransaction, folder); 205 synchronizeMails(transaction, synchronizationTransaction, folder);
206 //Don't let the transaction grow too much 206 //Don't let the transaction grow too much
207 synchronizationTransaction.commit(); 207 synchronizationTransaction.commit();
@@ -210,23 +210,23 @@ KAsync::Job<void> MaildirResource::synchronizeWithSource(Akonadi2::Storage &main
210 }); 210 });
211} 211}
212 212
213KAsync::Job<void> MaildirResource::replay(Akonadi2::Storage &synchronizationStore, const QByteArray &type, const QByteArray &key, const QByteArray &value) 213KAsync::Job<void> MaildirResource::replay(Sink::Storage &synchronizationStore, const QByteArray &type, const QByteArray &key, const QByteArray &value)
214{ 214{
215 auto synchronizationTransaction = synchronizationStore.createTransaction(Akonadi2::Storage::ReadWrite); 215 auto synchronizationTransaction = synchronizationStore.createTransaction(Sink::Storage::ReadWrite);
216 216
217 Trace() << "Replaying " << key << type; 217 Trace() << "Replaying " << key << type;
218 if (type == ENTITY_TYPE_FOLDER) { 218 if (type == ENTITY_TYPE_FOLDER) {
219 Akonadi2::EntityBuffer buffer(value.data(), value.size()); 219 Sink::EntityBuffer buffer(value.data(), value.size());
220 const Akonadi2::Entity &entity = buffer.entity(); 220 const Sink::Entity &entity = buffer.entity();
221 const auto metadataBuffer = Akonadi2::EntityBuffer::readBuffer<Akonadi2::Metadata>(entity.metadata()); 221 const auto metadataBuffer = Sink::EntityBuffer::readBuffer<Sink::Metadata>(entity.metadata());
222 if (metadataBuffer && !metadataBuffer->replayToSource()) { 222 if (metadataBuffer && !metadataBuffer->replayToSource()) {
223 Trace() << "Change is coming from the source"; 223 Trace() << "Change is coming from the source";
224 return KAsync::null<void>(); 224 return KAsync::null<void>();
225 } 225 }
226 const qint64 revision = metadataBuffer ? metadataBuffer->revision() : -1; 226 const qint64 revision = metadataBuffer ? metadataBuffer->revision() : -1;
227 const auto operation = metadataBuffer ? metadataBuffer->operation() : Akonadi2::Operation_Creation; 227 const auto operation = metadataBuffer ? metadataBuffer->operation() : Sink::Operation_Creation;
228 if (operation == Akonadi2::Operation_Creation) { 228 if (operation == Sink::Operation_Creation) {
229 const Akonadi2::ApplicationDomain::Folder folder(mResourceInstanceIdentifier, Akonadi2::Storage::uidFromKey(key), revision, mFolderAdaptorFactory->createAdaptor(entity)); 229 const Sink::ApplicationDomain::Folder folder(mResourceInstanceIdentifier, Sink::Storage::uidFromKey(key), revision, mFolderAdaptorFactory->createAdaptor(entity));
230 auto folderName = folder.getProperty("name").toString(); 230 auto folderName = folder.getProperty("name").toString();
231 //TODO handle non toplevel folders 231 //TODO handle non toplevel folders
232 auto path = mMaildirPath + "/" + folderName; 232 auto path = mMaildirPath + "/" + folderName;
@@ -234,31 +234,31 @@ KAsync::Job<void> MaildirResource::replay(Akonadi2::Storage &synchronizationStor
234 KPIM::Maildir maildir(path, false); 234 KPIM::Maildir maildir(path, false);
235 maildir.create(); 235 maildir.create();
236 recordRemoteId(ENTITY_TYPE_FOLDER, folder.identifier(), path.toUtf8(), synchronizationTransaction); 236 recordRemoteId(ENTITY_TYPE_FOLDER, folder.identifier(), path.toUtf8(), synchronizationTransaction);
237 } else if (operation == Akonadi2::Operation_Removal) { 237 } else if (operation == Sink::Operation_Removal) {
238 const auto uid = Akonadi2::Storage::uidFromKey(key); 238 const auto uid = Sink::Storage::uidFromKey(key);
239 const auto remoteId = resolveLocalId(ENTITY_TYPE_FOLDER, uid, synchronizationTransaction); 239 const auto remoteId = resolveLocalId(ENTITY_TYPE_FOLDER, uid, synchronizationTransaction);
240 const auto path = remoteId; 240 const auto path = remoteId;
241 Trace() << "Removing a folder: " << path; 241 Trace() << "Removing a folder: " << path;
242 KPIM::Maildir maildir(path, false); 242 KPIM::Maildir maildir(path, false);
243 maildir.remove(); 243 maildir.remove();
244 removeRemoteId(ENTITY_TYPE_FOLDER, uid, remoteId, synchronizationTransaction); 244 removeRemoteId(ENTITY_TYPE_FOLDER, uid, remoteId, synchronizationTransaction);
245 } else if (operation == Akonadi2::Operation_Modification) { 245 } else if (operation == Sink::Operation_Modification) {
246 Warning() << "Folder modifications are not implemented"; 246 Warning() << "Folder modifications are not implemented";
247 } else { 247 } else {
248 Warning() << "Unkown operation" << operation; 248 Warning() << "Unkown operation" << operation;
249 } 249 }
250 } else if (type == ENTITY_TYPE_MAIL) { 250 } else if (type == ENTITY_TYPE_MAIL) {
251 Akonadi2::EntityBuffer buffer(value.data(), value.size()); 251 Sink::EntityBuffer buffer(value.data(), value.size());
252 const Akonadi2::Entity &entity = buffer.entity(); 252 const Sink::Entity &entity = buffer.entity();
253 const auto metadataBuffer = Akonadi2::EntityBuffer::readBuffer<Akonadi2::Metadata>(entity.metadata()); 253 const auto metadataBuffer = Sink::EntityBuffer::readBuffer<Sink::Metadata>(entity.metadata());
254 if (metadataBuffer && !metadataBuffer->replayToSource()) { 254 if (metadataBuffer && !metadataBuffer->replayToSource()) {
255 Trace() << "Change is coming from the source"; 255 Trace() << "Change is coming from the source";
256 return KAsync::null<void>(); 256 return KAsync::null<void>();
257 } 257 }
258 const qint64 revision = metadataBuffer ? metadataBuffer->revision() : -1; 258 const qint64 revision = metadataBuffer ? metadataBuffer->revision() : -1;
259 const auto operation = metadataBuffer ? metadataBuffer->operation() : Akonadi2::Operation_Creation; 259 const auto operation = metadataBuffer ? metadataBuffer->operation() : Sink::Operation_Creation;
260 if (operation == Akonadi2::Operation_Creation) { 260 if (operation == Sink::Operation_Creation) {
261 const Akonadi2::ApplicationDomain::Mail mail(mResourceInstanceIdentifier, Akonadi2::Storage::uidFromKey(key), revision, mMailAdaptorFactory->createAdaptor(entity)); 261 const Sink::ApplicationDomain::Mail mail(mResourceInstanceIdentifier, Sink::Storage::uidFromKey(key), revision, mMailAdaptorFactory->createAdaptor(entity));
262 auto parentFolder = mail.getProperty("folder").toByteArray(); 262 auto parentFolder = mail.getProperty("folder").toByteArray();
263 QByteArray parentFolderRemoteId; 263 QByteArray parentFolderRemoteId;
264 if (!parentFolder.isEmpty()) { 264 if (!parentFolder.isEmpty()) {
@@ -272,13 +272,13 @@ KAsync::Job<void> MaildirResource::replay(Akonadi2::Storage &synchronizationStor
272 const auto id = maildir.addEntry("foobar"); 272 const auto id = maildir.addEntry("foobar");
273 Trace() << "Creating a new mail: " << id; 273 Trace() << "Creating a new mail: " << id;
274 recordRemoteId(ENTITY_TYPE_MAIL, mail.identifier(), id.toUtf8(), synchronizationTransaction); 274 recordRemoteId(ENTITY_TYPE_MAIL, mail.identifier(), id.toUtf8(), synchronizationTransaction);
275 } else if (operation == Akonadi2::Operation_Removal) { 275 } else if (operation == Sink::Operation_Removal) {
276 const auto uid = Akonadi2::Storage::uidFromKey(key); 276 const auto uid = Sink::Storage::uidFromKey(key);
277 const auto remoteId = resolveLocalId(ENTITY_TYPE_MAIL, uid, synchronizationTransaction); 277 const auto remoteId = resolveLocalId(ENTITY_TYPE_MAIL, uid, synchronizationTransaction);
278 Trace() << "Removing a mail: " << remoteId; 278 Trace() << "Removing a mail: " << remoteId;
279 QFile::remove(remoteId); 279 QFile::remove(remoteId);
280 removeRemoteId(ENTITY_TYPE_MAIL, uid, remoteId, synchronizationTransaction); 280 removeRemoteId(ENTITY_TYPE_MAIL, uid, remoteId, synchronizationTransaction);
281 } else if (operation == Akonadi2::Operation_Modification) { 281 } else if (operation == Sink::Operation_Modification) {
282 Warning() << "Mail modifications are not implemented"; 282 Warning() << "Mail modifications are not implemented";
283 } else { 283 } else {
284 Warning() << "Unkown operation" << operation; 284 Warning() << "Unkown operation" << operation;
@@ -290,16 +290,16 @@ KAsync::Job<void> MaildirResource::replay(Akonadi2::Storage &synchronizationStor
290void MaildirResource::removeFromDisk(const QByteArray &instanceIdentifier) 290void MaildirResource::removeFromDisk(const QByteArray &instanceIdentifier)
291{ 291{
292 GenericResource::removeFromDisk(instanceIdentifier); 292 GenericResource::removeFromDisk(instanceIdentifier);
293 Akonadi2::Storage(Akonadi2::storageLocation(), instanceIdentifier + ".synchronization", Akonadi2::Storage::ReadWrite).removeFromDisk(); 293 Sink::Storage(Sink::storageLocation(), instanceIdentifier + ".synchronization", Sink::Storage::ReadWrite).removeFromDisk();
294} 294}
295 295
296KAsync::Job<void> MaildirResource::inspect(int inspectionType, const QByteArray &inspectionId, const QByteArray &domainType, const QByteArray &entityId, const QByteArray &property, const QVariant &expectedValue) 296KAsync::Job<void> MaildirResource::inspect(int inspectionType, const QByteArray &inspectionId, const QByteArray &domainType, const QByteArray &entityId, const QByteArray &property, const QVariant &expectedValue)
297{ 297{
298 auto synchronizationStore = QSharedPointer<Akonadi2::Storage>::create(Akonadi2::storageLocation(), mResourceInstanceIdentifier + ".synchronization", Akonadi2::Storage::ReadOnly); 298 auto synchronizationStore = QSharedPointer<Sink::Storage>::create(Sink::storageLocation(), mResourceInstanceIdentifier + ".synchronization", Sink::Storage::ReadOnly);
299 auto synchronizationTransaction = synchronizationStore->createTransaction(Akonadi2::Storage::ReadOnly); 299 auto synchronizationTransaction = synchronizationStore->createTransaction(Sink::Storage::ReadOnly);
300 Trace() << "Inspecting " << inspectionType << domainType << entityId << property << expectedValue; 300 Trace() << "Inspecting " << inspectionType << domainType << entityId << property << expectedValue;
301 if (domainType == ENTITY_TYPE_MAIL) { 301 if (domainType == ENTITY_TYPE_MAIL) {
302 if (inspectionType == Akonadi2::Resources::Inspection::PropertyInspectionType) { 302 if (inspectionType == Sink::Resources::Inspection::PropertyInspectionType) {
303 if (property == "unread") { 303 if (property == "unread") {
304 const auto remoteId = resolveLocalId(ENTITY_TYPE_MAIL, entityId, synchronizationTransaction); 304 const auto remoteId = resolveLocalId(ENTITY_TYPE_MAIL, entityId, synchronizationTransaction);
305 const auto flags = KPIM::Maildir::readEntryFlags(remoteId.split('/').last()); 305 const auto flags = KPIM::Maildir::readEntryFlags(remoteId.split('/').last());
@@ -312,7 +312,7 @@ KAsync::Job<void> MaildirResource::inspect(int inspectionType, const QByteArray
312 return KAsync::null<void>(); 312 return KAsync::null<void>();
313 } 313 }
314 } 314 }
315 if (inspectionType == Akonadi2::Resources::Inspection::ExistenceInspectionType) { 315 if (inspectionType == Sink::Resources::Inspection::ExistenceInspectionType) {
316 const auto remoteId = resolveLocalId(ENTITY_TYPE_MAIL, entityId, synchronizationTransaction); 316 const auto remoteId = resolveLocalId(ENTITY_TYPE_MAIL, entityId, synchronizationTransaction);
317 if (QFileInfo(remoteId).exists() != expectedValue.toBool()) { 317 if (QFileInfo(remoteId).exists() != expectedValue.toBool()) {
318 return KAsync::error<void>(1, "Wrong file existence: " + remoteId); 318 return KAsync::error<void>(1, "Wrong file existence: " + remoteId);
@@ -323,19 +323,19 @@ KAsync::Job<void> MaildirResource::inspect(int inspectionType, const QByteArray
323} 323}
324 324
325MaildirResourceFactory::MaildirResourceFactory(QObject *parent) 325MaildirResourceFactory::MaildirResourceFactory(QObject *parent)
326 : Akonadi2::ResourceFactory(parent) 326 : Sink::ResourceFactory(parent)
327{ 327{
328 328
329} 329}
330 330
331Akonadi2::Resource *MaildirResourceFactory::createResource(const QByteArray &instanceIdentifier) 331Sink::Resource *MaildirResourceFactory::createResource(const QByteArray &instanceIdentifier)
332{ 332{
333 return new MaildirResource(instanceIdentifier); 333 return new MaildirResource(instanceIdentifier);
334} 334}
335 335
336void MaildirResourceFactory::registerFacades(Akonadi2::FacadeFactory &factory) 336void MaildirResourceFactory::registerFacades(Sink::FacadeFactory &factory)
337{ 337{
338 factory.registerFacade<Akonadi2::ApplicationDomain::Mail, MaildirResourceMailFacade>(PLUGIN_NAME); 338 factory.registerFacade<Sink::ApplicationDomain::Mail, MaildirResourceMailFacade>(PLUGIN_NAME);
339 factory.registerFacade<Akonadi2::ApplicationDomain::Folder, MaildirResourceFolderFacade>(PLUGIN_NAME); 339 factory.registerFacade<Sink::ApplicationDomain::Folder, MaildirResourceFolderFacade>(PLUGIN_NAME);
340} 340}
341 341
diff --git a/examples/maildirresource/maildirresource.h b/examples/maildirresource/maildirresource.h
index 5f7795b..9af2f39 100644
--- a/examples/maildirresource/maildirresource.h
+++ b/examples/maildirresource/maildirresource.h
@@ -39,34 +39,34 @@ class MaildirFolderAdaptorFactory;
39 * files: full file path 39 * files: full file path
40 * directories: full directory path 40 * directories: full directory path
41 */ 41 */
42class MaildirResource : public Akonadi2::GenericResource 42class MaildirResource : public Sink::GenericResource
43{ 43{
44public: 44public:
45 MaildirResource(const QByteArray &instanceIdentifier, const QSharedPointer<Akonadi2::Pipeline> &pipeline = QSharedPointer<Akonadi2::Pipeline>()); 45 MaildirResource(const QByteArray &instanceIdentifier, const QSharedPointer<Sink::Pipeline> &pipeline = QSharedPointer<Sink::Pipeline>());
46 KAsync::Job<void> synchronizeWithSource(Akonadi2::Storage &mainStore, Akonadi2::Storage &synchronizationStore) Q_DECL_OVERRIDE; 46 KAsync::Job<void> synchronizeWithSource(Sink::Storage &mainStore, Sink::Storage &synchronizationStore) Q_DECL_OVERRIDE;
47 KAsync::Job<void> inspect(int inspectionType, const QByteArray &inspectionId, const QByteArray &domainType, const QByteArray &entityId, const QByteArray &property, const QVariant &expectedValue) Q_DECL_OVERRIDE; 47 KAsync::Job<void> inspect(int inspectionType, const QByteArray &inspectionId, const QByteArray &domainType, const QByteArray &entityId, const QByteArray &property, const QVariant &expectedValue) Q_DECL_OVERRIDE;
48 static void removeFromDisk(const QByteArray &instanceIdentifier); 48 static void removeFromDisk(const QByteArray &instanceIdentifier);
49private: 49private:
50 KAsync::Job<void> replay(Akonadi2::Storage &synchronizationStore, const QByteArray &type, const QByteArray &key, const QByteArray &value) Q_DECL_OVERRIDE; 50 KAsync::Job<void> replay(Sink::Storage &synchronizationStore, const QByteArray &type, const QByteArray &key, const QByteArray &value) Q_DECL_OVERRIDE;
51 51
52 void synchronizeFolders(Akonadi2::Storage::Transaction &transaction, Akonadi2::Storage::Transaction &synchronizationTransaction); 52 void synchronizeFolders(Sink::Storage::Transaction &transaction, Sink::Storage::Transaction &synchronizationTransaction);
53 void synchronizeMails(Akonadi2::Storage::Transaction &transaction, Akonadi2::Storage::Transaction &synchronizationTransaction, const QString &folder); 53 void synchronizeMails(Sink::Storage::Transaction &transaction, Sink::Storage::Transaction &synchronizationTransaction, const QString &folder);
54 QStringList listAvailableFolders(); 54 QStringList listAvailableFolders();
55 QString mMaildirPath; 55 QString mMaildirPath;
56 QSharedPointer<MaildirMailAdaptorFactory> mMailAdaptorFactory; 56 QSharedPointer<MaildirMailAdaptorFactory> mMailAdaptorFactory;
57 QSharedPointer<MaildirFolderAdaptorFactory> mFolderAdaptorFactory; 57 QSharedPointer<MaildirFolderAdaptorFactory> mFolderAdaptorFactory;
58}; 58};
59 59
60class MaildirResourceFactory : public Akonadi2::ResourceFactory 60class MaildirResourceFactory : public Sink::ResourceFactory
61{ 61{
62 Q_OBJECT 62 Q_OBJECT
63 Q_PLUGIN_METADATA(IID "org.kde.maildir") 63 Q_PLUGIN_METADATA(IID "org.kde.maildir")
64 Q_INTERFACES(Akonadi2::ResourceFactory) 64 Q_INTERFACES(Sink::ResourceFactory)
65 65
66public: 66public:
67 MaildirResourceFactory(QObject *parent = 0); 67 MaildirResourceFactory(QObject *parent = 0);
68 68
69 Akonadi2::Resource *createResource(const QByteArray &instanceIdentifier) Q_DECL_OVERRIDE; 69 Sink::Resource *createResource(const QByteArray &instanceIdentifier) Q_DECL_OVERRIDE;
70 void registerFacades(Akonadi2::FacadeFactory &factory) Q_DECL_OVERRIDE; 70 void registerFacades(Sink::FacadeFactory &factory) Q_DECL_OVERRIDE;
71}; 71};
72 72