diff options
Diffstat (limited to 'examples/maildirresource')
-rw-r--r-- | examples/maildirresource/CMakeLists.txt | 6 | ||||
-rw-r--r-- | examples/maildirresource/domainadaptor.h | 4 | ||||
-rw-r--r-- | examples/maildirresource/facade.cpp | 4 | ||||
-rw-r--r-- | examples/maildirresource/facade.h | 4 | ||||
-rw-r--r-- | examples/maildirresource/libmaildir/maildir.cpp | 16 | ||||
-rw-r--r-- | examples/maildirresource/libmaildir/maildir.h | 2 | ||||
-rw-r--r-- | examples/maildirresource/maildirresource.cpp | 90 | ||||
-rw-r--r-- | examples/maildirresource/maildirresource.h | 20 |
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 @@ | |||
1 | project(akonadi2_resource_maildir) | 1 | project(sink_resource_maildir) |
2 | 2 | ||
3 | add_definitions(-DQT_PLUGIN) | 3 | add_definitions(-DQT_PLUGIN) |
4 | include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) | 4 | include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) |
@@ -8,8 +8,8 @@ find_package(KF5 COMPONENTS REQUIRED Mime) | |||
8 | add_library(${PROJECT_NAME} SHARED facade.cpp maildirresource.cpp domainadaptor.cpp) | 8 | add_library(${PROJECT_NAME} SHARED facade.cpp maildirresource.cpp domainadaptor.cpp) |
9 | # generate_flatbuffers(${PROJECT_NAME} dummycalendar) | 9 | # generate_flatbuffers(${PROJECT_NAME} dummycalendar) |
10 | qt5_use_modules(${PROJECT_NAME} Core Network) | 10 | qt5_use_modules(${PROJECT_NAME} Core Network) |
11 | target_link_libraries(${PROJECT_NAME} akonadi2common maildir KF5::Mime) | 11 | target_link_libraries(${PROJECT_NAME} sinkcommon maildir KF5::Mime) |
12 | 12 | ||
13 | install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION ${AKONADI2_RESOURCE_PLUGINS_PATH}) | 13 | install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION ${SINK_RESOURCE_PLUGINS_PATH}) |
14 | 14 | ||
15 | add_subdirectory(libmaildir) | 15 | add_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 | ||
26 | class MaildirMailAdaptorFactory : public DomainTypeAdaptorFactory<Akonadi2::ApplicationDomain::Mail, Akonadi2::ApplicationDomain::Buffer::Dummy, Akonadi2::ApplicationDomain::Buffer::DummyBuilder> | 26 | class MaildirMailAdaptorFactory : public DomainTypeAdaptorFactory<Sink::ApplicationDomain::Mail, Sink::ApplicationDomain::Buffer::Dummy, Sink::ApplicationDomain::Buffer::DummyBuilder> |
27 | { | 27 | { |
28 | public: | 28 | public: |
29 | MaildirMailAdaptorFactory(); | 29 | MaildirMailAdaptorFactory(); |
30 | virtual ~MaildirMailAdaptorFactory() {}; | 30 | virtual ~MaildirMailAdaptorFactory() {}; |
31 | }; | 31 | }; |
32 | 32 | ||
33 | class MaildirFolderAdaptorFactory : public DomainTypeAdaptorFactory<Akonadi2::ApplicationDomain::Folder, Akonadi2::ApplicationDomain::Buffer::Dummy, Akonadi2::ApplicationDomain::Buffer::DummyBuilder> | 33 | class MaildirFolderAdaptorFactory : public DomainTypeAdaptorFactory<Sink::ApplicationDomain::Folder, Sink::ApplicationDomain::Buffer::Dummy, Sink::ApplicationDomain::Buffer::DummyBuilder> |
34 | { | 34 | { |
35 | public: | 35 | public: |
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 | ||
24 | MaildirResourceMailFacade::MaildirResourceMailFacade(const QByteArray &instanceIdentifier) | 24 | MaildirResourceMailFacade::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 | ||
34 | MaildirResourceFolderFacade::MaildirResourceFolderFacade(const QByteArray &instanceIdentifier) | 34 | MaildirResourceFolderFacade::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 | ||
24 | class MaildirResourceMailFacade : public Akonadi2::GenericFacade<Akonadi2::ApplicationDomain::Mail> | 24 | class MaildirResourceMailFacade : public Sink::GenericFacade<Sink::ApplicationDomain::Mail> |
25 | { | 25 | { |
26 | public: | 26 | public: |
27 | MaildirResourceMailFacade(const QByteArray &instanceIdentifier); | 27 | MaildirResourceMailFacade(const QByteArray &instanceIdentifier); |
28 | virtual ~MaildirResourceMailFacade(); | 28 | virtual ~MaildirResourceMailFacade(); |
29 | }; | 29 | }; |
30 | 30 | ||
31 | class MaildirResourceFolderFacade : public Akonadi2::GenericFacade<Akonadi2::ApplicationDomain::Folder> | 31 | class MaildirResourceFolderFacade : public Sink::GenericFacade<Sink::ApplicationDomain::Folder> |
32 | { | 32 | { |
33 | public: | 33 | public: |
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 | ||
49 | MaildirResource::MaildirResource(const QByteArray &instanceIdentifier, const QSharedPointer<Akonadi2::Pipeline> &pipeline) | 49 | MaildirResource::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 | ||
94 | void MaildirResource::synchronizeFolders(Akonadi2::Storage::Transaction &transaction, Akonadi2::Storage::Transaction &synchronizationTransaction) | 94 | void 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 | ||
132 | void MaildirResource::synchronizeMails(Akonadi2::Storage::Transaction &transaction, Akonadi2::Storage::Transaction &synchronizationTransaction, const QString &path) | 132 | void 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 | ||
192 | KAsync::Job<void> MaildirResource::synchronizeWithSource(Akonadi2::Storage &mainStore, Akonadi2::Storage &synchronizationStore) | 192 | KAsync::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 | ||
213 | KAsync::Job<void> MaildirResource::replay(Akonadi2::Storage &synchronizationStore, const QByteArray &type, const QByteArray &key, const QByteArray &value) | 213 | KAsync::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 | |||
290 | void MaildirResource::removeFromDisk(const QByteArray &instanceIdentifier) | 290 | void 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 | ||
296 | KAsync::Job<void> MaildirResource::inspect(int inspectionType, const QByteArray &inspectionId, const QByteArray &domainType, const QByteArray &entityId, const QByteArray &property, const QVariant &expectedValue) | 296 | KAsync::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 | ||
325 | MaildirResourceFactory::MaildirResourceFactory(QObject *parent) | 325 | MaildirResourceFactory::MaildirResourceFactory(QObject *parent) |
326 | : Akonadi2::ResourceFactory(parent) | 326 | : Sink::ResourceFactory(parent) |
327 | { | 327 | { |
328 | 328 | ||
329 | } | 329 | } |
330 | 330 | ||
331 | Akonadi2::Resource *MaildirResourceFactory::createResource(const QByteArray &instanceIdentifier) | 331 | Sink::Resource *MaildirResourceFactory::createResource(const QByteArray &instanceIdentifier) |
332 | { | 332 | { |
333 | return new MaildirResource(instanceIdentifier); | 333 | return new MaildirResource(instanceIdentifier); |
334 | } | 334 | } |
335 | 335 | ||
336 | void MaildirResourceFactory::registerFacades(Akonadi2::FacadeFactory &factory) | 336 | void 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 | */ |
42 | class MaildirResource : public Akonadi2::GenericResource | 42 | class MaildirResource : public Sink::GenericResource |
43 | { | 43 | { |
44 | public: | 44 | public: |
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); |
49 | private: | 49 | private: |
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 | ||
60 | class MaildirResourceFactory : public Akonadi2::ResourceFactory | 60 | class 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 | ||
66 | public: | 66 | public: |
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 | ||