diff options
-rw-r--r-- | common/domain/folder.cpp | 9 | ||||
-rw-r--r-- | common/domain/folder.fbs | 1 | ||||
-rw-r--r-- | common/propertymapper.cpp | 20 | ||||
-rw-r--r-- | examples/dummyresource/dummystore.cpp | 91 | ||||
-rw-r--r-- | examples/dummyresource/dummystore.h | 17 | ||||
-rw-r--r-- | examples/dummyresource/resourcefactory.cpp | 36 | ||||
-rw-r--r-- | examples/dummyresource/resourcefactory.h | 2 |
7 files changed, 120 insertions, 56 deletions
diff --git a/common/domain/folder.cpp b/common/domain/folder.cpp index 989d2c4..5558060 100644 --- a/common/domain/folder.cpp +++ b/common/domain/folder.cpp | |||
@@ -80,8 +80,9 @@ void TypeImplementation<Folder>::removeIndex(const QByteArray &identifier, const | |||
80 | QSharedPointer<ReadPropertyMapper<TypeImplementation<Folder>::Buffer> > TypeImplementation<Folder>::initializeReadPropertyMapper() | 80 | QSharedPointer<ReadPropertyMapper<TypeImplementation<Folder>::Buffer> > TypeImplementation<Folder>::initializeReadPropertyMapper() |
81 | { | 81 | { |
82 | auto propertyMapper = QSharedPointer<ReadPropertyMapper<Buffer> >::create(); | 82 | auto propertyMapper = QSharedPointer<ReadPropertyMapper<Buffer> >::create(); |
83 | propertyMapper->addMapping<QString, Buffer>("parent", &Buffer::parent); | 83 | propertyMapper->addMapping<QByteArray, Buffer>("parent", &Buffer::parent); |
84 | propertyMapper->addMapping<QString, Buffer>("name", &Buffer::name); | 84 | propertyMapper->addMapping<QString, Buffer>("name", &Buffer::name); |
85 | propertyMapper->addMapping<QByteArray, Buffer>("icon", &Buffer::icon); | ||
85 | return propertyMapper; | 86 | return propertyMapper; |
86 | } | 87 | } |
87 | 88 | ||
@@ -89,12 +90,16 @@ QSharedPointer<WritePropertyMapper<TypeImplementation<Folder>::BufferBuilder> > | |||
89 | { | 90 | { |
90 | auto propertyMapper = QSharedPointer<WritePropertyMapper<BufferBuilder> >::create(); | 91 | auto propertyMapper = QSharedPointer<WritePropertyMapper<BufferBuilder> >::create(); |
91 | propertyMapper->addMapping("parent", [](const QVariant &value, flatbuffers::FlatBufferBuilder &fbb) -> std::function<void(BufferBuilder &)> { | 92 | propertyMapper->addMapping("parent", [](const QVariant &value, flatbuffers::FlatBufferBuilder &fbb) -> std::function<void(BufferBuilder &)> { |
92 | auto offset = variantToProperty<QString>(value, fbb); | 93 | auto offset = variantToProperty<QByteArray>(value, fbb); |
93 | return [offset](BufferBuilder &builder) { builder.add_parent(offset); }; | 94 | return [offset](BufferBuilder &builder) { builder.add_parent(offset); }; |
94 | }); | 95 | }); |
95 | propertyMapper->addMapping("name", [](const QVariant &value, flatbuffers::FlatBufferBuilder &fbb) -> std::function<void(BufferBuilder &)> { | 96 | propertyMapper->addMapping("name", [](const QVariant &value, flatbuffers::FlatBufferBuilder &fbb) -> std::function<void(BufferBuilder &)> { |
96 | auto offset = variantToProperty<QString>(value, fbb); | 97 | auto offset = variantToProperty<QString>(value, fbb); |
97 | return [offset](BufferBuilder &builder) { builder.add_name(offset); }; | 98 | return [offset](BufferBuilder &builder) { builder.add_name(offset); }; |
98 | }); | 99 | }); |
100 | propertyMapper->addMapping("icon", [](const QVariant &value, flatbuffers::FlatBufferBuilder &fbb) -> std::function<void(BufferBuilder &)> { | ||
101 | auto offset = variantToProperty<QByteArray>(value, fbb); | ||
102 | return [offset](BufferBuilder &builder) { builder.add_icon(offset); }; | ||
103 | }); | ||
99 | return propertyMapper; | 104 | return propertyMapper; |
100 | } | 105 | } |
diff --git a/common/domain/folder.fbs b/common/domain/folder.fbs index 3476d58..31dc32a 100644 --- a/common/domain/folder.fbs +++ b/common/domain/folder.fbs | |||
@@ -3,6 +3,7 @@ namespace Akonadi2.ApplicationDomain.Buffer; | |||
3 | table Folder { | 3 | table Folder { |
4 | name:string; | 4 | name:string; |
5 | parent:string; | 5 | parent:string; |
6 | icon:string; | ||
6 | } | 7 | } |
7 | 8 | ||
8 | root_type Folder; | 9 | root_type Folder; |
diff --git a/common/propertymapper.cpp b/common/propertymapper.cpp index 7ff072a..60f7dd5 100644 --- a/common/propertymapper.cpp +++ b/common/propertymapper.cpp | |||
@@ -29,6 +29,15 @@ flatbuffers::uoffset_t variantToProperty<QString>(const QVariant &property, flat | |||
29 | } | 29 | } |
30 | 30 | ||
31 | template <> | 31 | template <> |
32 | flatbuffers::uoffset_t variantToProperty<QByteArray>(const QVariant &property, flatbuffers::FlatBufferBuilder &fbb) | ||
33 | { | ||
34 | if (property.isValid()) { | ||
35 | return fbb.CreateString(property.toByteArray().toStdString()).o; | ||
36 | } | ||
37 | return 0; | ||
38 | } | ||
39 | |||
40 | template <> | ||
32 | QVariant propertyToVariant<QString>(const flatbuffers::String *property) | 41 | QVariant propertyToVariant<QString>(const flatbuffers::String *property) |
33 | { | 42 | { |
34 | if (property) { | 43 | if (property) { |
@@ -39,8 +48,17 @@ QVariant propertyToVariant<QString>(const flatbuffers::String *property) | |||
39 | } | 48 | } |
40 | 49 | ||
41 | template <> | 50 | template <> |
51 | QVariant propertyToVariant<QByteArray>(const flatbuffers::String *property) | ||
52 | { | ||
53 | if (property) { | ||
54 | //We have to copy the memory, otherwise it would become eventually invalid | ||
55 | return QString::fromStdString(property->c_str()).toUtf8(); | ||
56 | } | ||
57 | return QVariant(); | ||
58 | } | ||
59 | |||
60 | template <> | ||
42 | QVariant propertyToVariant<bool>(uint8_t property) | 61 | QVariant propertyToVariant<bool>(uint8_t property) |
43 | { | 62 | { |
44 | return static_cast<bool>(property); | 63 | return static_cast<bool>(property); |
45 | } | 64 | } |
46 | |||
diff --git a/examples/dummyresource/dummystore.cpp b/examples/dummyresource/dummystore.cpp index 8592a30..e948475 100644 --- a/examples/dummyresource/dummystore.cpp +++ b/examples/dummyresource/dummystore.cpp | |||
@@ -19,6 +19,7 @@ | |||
19 | #include "dummystore.h" | 19 | #include "dummystore.h" |
20 | 20 | ||
21 | #include <QString> | 21 | #include <QString> |
22 | #include <QDateTime> | ||
22 | 23 | ||
23 | static QMap<QString, QVariant> createEvent(int i) | 24 | static QMap<QString, QVariant> createEvent(int i) |
24 | { | 25 | { |
@@ -29,67 +30,91 @@ static QMap<QString, QVariant> createEvent(int i) | |||
29 | return event; | 30 | return event; |
30 | } | 31 | } |
31 | 32 | ||
32 | static QMap<QString, QVariant> createMail(int i) | 33 | QMap<QString, QMap<QString, QVariant> > DummyStore::populateEvents() |
33 | { | 34 | { |
34 | QMap<QString, QVariant> mail; | 35 | QMap<QString, QMap<QString, QVariant>> content; |
35 | mail.insert("subject", QString("subject%1").arg(i)); | 36 | for (int i = 0; i < 2; i++) { |
36 | return mail; | 37 | content.insert(QString("key%1").arg(i), createEvent(i)); |
38 | } | ||
39 | return content; | ||
37 | } | 40 | } |
38 | 41 | ||
39 | static QMap<QString, QVariant> createFolder(int i) | 42 | static QByteArray addMail(QMap <QString, QMap<QString, QVariant> > &content, const QString &subject, const QDateTime &date, const QString &senderName, const QString &senderEmail, bool isUnread, bool isImportant, const QByteArray &parentFolder) |
40 | { | 43 | { |
41 | QMap<QString, QVariant> folder; | 44 | static int id = 0; |
42 | folder.insert("name", QString("folder%1").arg(i)); | 45 | id++; |
43 | return folder; | 46 | const auto uid = QString("key%1").arg(id); |
47 | QMap<QString, QVariant> mail; | ||
48 | mail.insert("subject", subject); | ||
49 | mail.insert("date", date); | ||
50 | mail.insert("senderName", senderName); | ||
51 | mail.insert("senderEmail", senderEmail); | ||
52 | mail.insert("unread", isUnread); | ||
53 | mail.insert("important", isImportant); | ||
54 | mail.insert("parentFolder", parentFolder); | ||
55 | content.insert(uid, mail); | ||
56 | return uid.toUtf8(); | ||
44 | } | 57 | } |
45 | 58 | ||
46 | QMap<QString, QMap<QString, QVariant> > populateEvents() | 59 | QMap<QString, QMap<QString, QVariant> > DummyStore::populateMails() |
47 | { | 60 | { |
48 | QMap<QString, QMap<QString, QVariant>> content; | 61 | QMap<QString, QMap<QString, QVariant>> content; |
49 | for (int i = 0; i < 2; i++) { | 62 | for (const auto &parentFolder : mFolders.keys()) { |
50 | content.insert(QString("key%1").arg(i), createEvent(i)); | 63 | addMail(content, "Hello World!", QDateTime::currentDateTimeUtc(), "John Doe", "doe@example.com", true, false, parentFolder.toUtf8()); |
51 | } | 64 | } |
52 | return content; | 65 | return content; |
53 | } | 66 | } |
54 | 67 | ||
55 | QMap<QString, QMap<QString, QVariant> > populateMails() | 68 | static QByteArray addFolder(QMap <QString, QMap<QString, QVariant> > &content, const QString &name, const QByteArray &icon, const QByteArray &parent = QByteArray()) |
56 | { | 69 | { |
57 | QMap<QString, QMap<QString, QVariant>> content; | 70 | static int id = 0; |
58 | for (int i = 0; i < 2; i++) { | 71 | id++; |
59 | content.insert(QString("key%1").arg(i), createMail(i)); | 72 | const auto uid = QString("key%1").arg(id); |
73 | QMap<QString, QVariant> folder; | ||
74 | folder.insert("name", name); | ||
75 | if (!parent.isEmpty()) { | ||
76 | folder.insert("parent", parent); | ||
60 | } | 77 | } |
61 | return content; | 78 | folder.insert("icon", icon); |
79 | content.insert(uid, folder); | ||
80 | return uid.toUtf8(); | ||
62 | } | 81 | } |
63 | 82 | ||
64 | QMap<QString, QMap<QString, QVariant> > populateFolders() | 83 | QMap<QString, QMap<QString, QVariant> > DummyStore::populateFolders() |
65 | { | 84 | { |
66 | QMap<QString, QMap<QString, QVariant>> content; | 85 | QMap<QString, QMap<QString, QVariant>> content; |
67 | int i = 0; | 86 | addFolder(content, "Inbox", "mail-folder-inbox"); |
68 | for (i = 0; i < 5; i++) { | 87 | auto data = addFolder(content, "Data", "folder"); |
69 | content.insert(QString("key%1").arg(i), createFolder(i)); | 88 | addFolder(content, "Sent", "mail-folder-sent"); |
89 | addFolder(content, "Trash", "user-trash"); | ||
90 | addFolder(content, "Drafts", "document-edit"); | ||
91 | addFolder(content, "Stuff", "folder", data); | ||
92 | auto bulk = addFolder(content, "Bulk", "folder", data); | ||
93 | for (int i = 0; i < 5; i++) { | ||
94 | addFolder(content, QString("Folder %1").arg(i), "folder", bulk); | ||
70 | } | 95 | } |
71 | i++; | ||
72 | auto folder = createFolder(i); | ||
73 | folder.insert("parent", "key0"); | ||
74 | content.insert(QString("key%1").arg(i), folder); | ||
75 | return content; | 96 | return content; |
76 | } | 97 | } |
77 | 98 | ||
78 | static QMap<QString, QMap<QString, QVariant> > s_eventSource = populateEvents(); | 99 | DummyStore::DummyStore() |
79 | static QMap<QString, QMap<QString, QVariant> > s_mailSource = populateMails(); | 100 | { |
80 | static QMap<QString, QMap<QString, QVariant> > s_folderSource = populateFolders(); | 101 | mFolders = populateFolders(); |
102 | mMails = populateMails(); | ||
103 | mEvents = populateEvents(); | ||
104 | |||
105 | } | ||
81 | 106 | ||
82 | QMap<QString, QMap<QString, QVariant> > DummyStore::events() const | 107 | QMap<QString, QMap<QString, QVariant> > &DummyStore::events() |
83 | { | 108 | { |
84 | return s_eventSource; | 109 | return mEvents; |
85 | } | 110 | } |
86 | 111 | ||
87 | QMap<QString, QMap<QString, QVariant> > DummyStore::mails() const | 112 | QMap<QString, QMap<QString, QVariant> > &DummyStore::mails() |
88 | { | 113 | { |
89 | return s_mailSource; | 114 | return mMails; |
90 | } | 115 | } |
91 | 116 | ||
92 | QMap<QString, QMap<QString, QVariant> > DummyStore::folders() const | 117 | QMap<QString, QMap<QString, QVariant> > &DummyStore::folders() |
93 | { | 118 | { |
94 | return s_folderSource; | 119 | return mFolders; |
95 | } | 120 | } |
diff --git a/examples/dummyresource/dummystore.h b/examples/dummyresource/dummystore.h index c730118..a29ce38 100644 --- a/examples/dummyresource/dummystore.h +++ b/examples/dummyresource/dummystore.h | |||
@@ -29,7 +29,18 @@ public: | |||
29 | return instance; | 29 | return instance; |
30 | } | 30 | } |
31 | 31 | ||
32 | QMap<QString, QMap<QString, QVariant> > events() const; | 32 | QMap<QString, QMap<QString, QVariant> > &events(); |
33 | QMap<QString, QMap<QString, QVariant> > mails() const; | 33 | QMap<QString, QMap<QString, QVariant> > &mails(); |
34 | QMap<QString, QMap<QString, QVariant> > folders() const; | 34 | QMap<QString, QMap<QString, QVariant> > &folders(); |
35 | |||
36 | private: | ||
37 | DummyStore(); | ||
38 | |||
39 | QMap<QString, QMap<QString, QVariant> > populateEvents(); | ||
40 | QMap<QString, QMap<QString, QVariant> > populateMails(); | ||
41 | QMap<QString, QMap<QString, QVariant> > populateFolders(); | ||
42 | |||
43 | QMap<QString, QMap<QString, QVariant> > mEvents; | ||
44 | QMap<QString, QMap<QString, QVariant> > mMails; | ||
45 | QMap<QString, QMap<QString, QVariant> > mFolders; | ||
35 | }; | 46 | }; |
diff --git a/examples/dummyresource/resourcefactory.cpp b/examples/dummyresource/resourcefactory.cpp index 9a577a0..a084c19 100644 --- a/examples/dummyresource/resourcefactory.cpp +++ b/examples/dummyresource/resourcefactory.cpp | |||
@@ -160,14 +160,27 @@ void DummyResource::createEvent(const QByteArray &ridBuffer, const QMap<QString, | |||
160 | Akonadi2::EntityBuffer::assembleEntityBuffer(entityFbb, 0, 0, m_fbb.GetBufferPointer(), m_fbb.GetSize(), 0, 0); | 160 | Akonadi2::EntityBuffer::assembleEntityBuffer(entityFbb, 0, 0, m_fbb.GetBufferPointer(), m_fbb.GetSize(), 0, 0); |
161 | } | 161 | } |
162 | 162 | ||
163 | QString DummyResource::resolveRemoteId(const QByteArray &bufferType, const QString &remoteId, Akonadi2::Storage::Transaction &transaction) | ||
164 | { | ||
165 | //Lookup local id for remote id, or insert a new pair otherwise | ||
166 | auto remoteIdWithType = bufferType + remoteId.toUtf8(); | ||
167 | QByteArray akonadiId = Index("rid.mapping", transaction).lookup(remoteIdWithType); | ||
168 | if (akonadiId.isEmpty()) { | ||
169 | akonadiId = QUuid::createUuid().toString().toUtf8(); | ||
170 | Index("rid.mapping", transaction).add(remoteIdWithType, akonadiId); | ||
171 | } | ||
172 | return akonadiId; | ||
173 | } | ||
174 | |||
175 | |||
163 | void DummyResource::createMail(const QByteArray &ridBuffer, const QMap<QString, QVariant> &data, flatbuffers::FlatBufferBuilder &entityFbb, Akonadi2::Storage::Transaction &transaction) | 176 | void DummyResource::createMail(const QByteArray &ridBuffer, const QMap<QString, QVariant> &data, flatbuffers::FlatBufferBuilder &entityFbb, Akonadi2::Storage::Transaction &transaction) |
164 | { | 177 | { |
165 | //Map the source format to the buffer format (which happens to be an exact copy here) | 178 | //Map the source format to the buffer format (which happens to be an almost exact copy here) |
166 | auto subject = m_fbb.CreateString(data.value("subject").toString().toStdString()); | 179 | auto subject = m_fbb.CreateString(data.value("subject").toString().toStdString()); |
167 | auto sender = m_fbb.CreateString(data.value("sender").toString().toStdString()); | 180 | auto sender = m_fbb.CreateString(data.value("senderEmail").toString().toStdString()); |
168 | auto senderName = m_fbb.CreateString(data.value("senderName").toString().toStdString()); | 181 | auto senderName = m_fbb.CreateString(data.value("senderName").toString().toStdString()); |
169 | auto date = m_fbb.CreateString(data.value("date").toDate().toString().toStdString()); | 182 | auto date = m_fbb.CreateString(data.value("date").toDate().toString().toStdString()); |
170 | auto folder = m_fbb.CreateString(std::string("inbox")); | 183 | auto folder = m_fbb.CreateString(resolveRemoteId(ENTITY_TYPE_MAIL, data.value("parentFolder").toString(), transaction).toStdString()); |
171 | 184 | ||
172 | auto builder = Akonadi2::ApplicationDomain::Buffer::MailBuilder(m_fbb); | 185 | auto builder = Akonadi2::ApplicationDomain::Buffer::MailBuilder(m_fbb); |
173 | builder.add_subject(subject); | 186 | builder.add_subject(subject); |
@@ -182,26 +195,16 @@ void DummyResource::createMail(const QByteArray &ridBuffer, const QMap<QString, | |||
182 | Akonadi2::EntityBuffer::assembleEntityBuffer(entityFbb, 0, 0, 0, 0, m_fbb.GetBufferPointer(), m_fbb.GetSize()); | 195 | Akonadi2::EntityBuffer::assembleEntityBuffer(entityFbb, 0, 0, 0, 0, m_fbb.GetBufferPointer(), m_fbb.GetSize()); |
183 | } | 196 | } |
184 | 197 | ||
185 | QString DummyResource::resolveRemoteId(const QString &remoteId, Akonadi2::Storage::Transaction &transaction) | ||
186 | { | ||
187 | //Lookup local id for remote id, or insert a new pair otherwise | ||
188 | QByteArray akonadiId = Index("rid.mapping", transaction).lookup(remoteId.toLatin1()); | ||
189 | if (akonadiId.isEmpty()) { | ||
190 | akonadiId = QUuid::createUuid().toString().toUtf8(); | ||
191 | Index("rid.mapping", transaction).add(remoteId.toLatin1(), akonadiId); | ||
192 | } | ||
193 | return akonadiId; | ||
194 | } | ||
195 | |||
196 | void DummyResource::createFolder(const QByteArray &ridBuffer, const QMap<QString, QVariant> &data, flatbuffers::FlatBufferBuilder &entityFbb, Akonadi2::Storage::Transaction &transaction) | 198 | void DummyResource::createFolder(const QByteArray &ridBuffer, const QMap<QString, QVariant> &data, flatbuffers::FlatBufferBuilder &entityFbb, Akonadi2::Storage::Transaction &transaction) |
197 | { | 199 | { |
198 | //Map the source format to the buffer format (which happens to be an exact copy here) | 200 | //Map the source format to the buffer format (which happens to be an exact copy here) |
199 | auto name = m_fbb.CreateString(data.value("name").toString().toStdString()); | 201 | auto name = m_fbb.CreateString(data.value("name").toString().toStdString()); |
202 | auto icon = m_fbb.CreateString(data.value("icon").toString().toStdString()); | ||
200 | flatbuffers::Offset<flatbuffers::String> parent; | 203 | flatbuffers::Offset<flatbuffers::String> parent; |
201 | bool hasParent = false; | 204 | bool hasParent = false; |
202 | if (!data.value("parent").toString().isEmpty()) { | 205 | if (!data.value("parent").toString().isEmpty()) { |
203 | hasParent = true; | 206 | hasParent = true; |
204 | auto akonadiId = resolveRemoteId(data.value("parent").toString(), transaction); | 207 | auto akonadiId = resolveRemoteId(ENTITY_TYPE_FOLDER, data.value("parent").toString(), transaction); |
205 | parent = m_fbb.CreateString(akonadiId.toStdString()); | 208 | parent = m_fbb.CreateString(akonadiId.toStdString()); |
206 | } | 209 | } |
207 | 210 | ||
@@ -210,6 +213,7 @@ void DummyResource::createFolder(const QByteArray &ridBuffer, const QMap<QString | |||
210 | if (hasParent) { | 213 | if (hasParent) { |
211 | builder.add_parent(parent); | 214 | builder.add_parent(parent); |
212 | } | 215 | } |
216 | builder.add_icon(icon); | ||
213 | auto buffer = builder.Finish(); | 217 | auto buffer = builder.Finish(); |
214 | Akonadi2::ApplicationDomain::Buffer::FinishFolderBuffer(m_fbb, buffer); | 218 | Akonadi2::ApplicationDomain::Buffer::FinishFolderBuffer(m_fbb, buffer); |
215 | Akonadi2::EntityBuffer::assembleEntityBuffer(entityFbb, 0, 0, 0, 0, m_fbb.GetBufferPointer(), m_fbb.GetSize()); | 219 | Akonadi2::EntityBuffer::assembleEntityBuffer(entityFbb, 0, 0, 0, 0, m_fbb.GetBufferPointer(), m_fbb.GetSize()); |
@@ -222,7 +226,7 @@ void DummyResource::synchronize(const QString &bufferType, const QMap<QString, Q | |||
222 | Index ridMapping("rid.mapping", synchronizationTransaction); | 226 | Index ridMapping("rid.mapping", synchronizationTransaction); |
223 | for (auto it = data.constBegin(); it != data.constEnd(); it++) { | 227 | for (auto it = data.constBegin(); it != data.constEnd(); it++) { |
224 | const auto remoteId = it.key().toUtf8(); | 228 | const auto remoteId = it.key().toUtf8(); |
225 | auto akonadiId = resolveRemoteId(remoteId, synchronizationTransaction); | 229 | auto akonadiId = resolveRemoteId(bufferType.toUtf8(), remoteId, synchronizationTransaction); |
226 | 230 | ||
227 | bool found = false; | 231 | bool found = false; |
228 | transaction.openDatabase(bufferType.toUtf8() + ".main").scan(akonadiId.toUtf8(), [&found](const QByteArray &, const QByteArray &) -> bool { | 232 | transaction.openDatabase(bufferType.toUtf8() + ".main").scan(akonadiId.toUtf8(), [&found](const QByteArray &, const QByteArray &) -> bool { |
diff --git a/examples/dummyresource/resourcefactory.h b/examples/dummyresource/resourcefactory.h index 5706c16..4144985 100644 --- a/examples/dummyresource/resourcefactory.h +++ b/examples/dummyresource/resourcefactory.h | |||
@@ -36,7 +36,7 @@ public: | |||
36 | KAsync::Job<void> synchronizeWithSource() Q_DECL_OVERRIDE; | 36 | KAsync::Job<void> synchronizeWithSource() Q_DECL_OVERRIDE; |
37 | static void removeFromDisk(const QByteArray &instanceIdentifier); | 37 | static void removeFromDisk(const QByteArray &instanceIdentifier); |
38 | private: | 38 | private: |
39 | QString resolveRemoteId(const QString &remoteId, Akonadi2::Storage::Transaction &transaction); | 39 | QString resolveRemoteId(const QByteArray &type, const QString &remoteId, Akonadi2::Storage::Transaction &transaction); |
40 | void createEvent(const QByteArray &rid, const QMap<QString, QVariant> &data, flatbuffers::FlatBufferBuilder &entityFbb, Akonadi2::Storage::Transaction &); | 40 | void createEvent(const QByteArray &rid, const QMap<QString, QVariant> &data, flatbuffers::FlatBufferBuilder &entityFbb, Akonadi2::Storage::Transaction &); |
41 | void createMail(const QByteArray &rid, const QMap<QString, QVariant> &data, flatbuffers::FlatBufferBuilder &entityFbb, Akonadi2::Storage::Transaction &); | 41 | void createMail(const QByteArray &rid, const QMap<QString, QVariant> &data, flatbuffers::FlatBufferBuilder &entityFbb, Akonadi2::Storage::Transaction &); |
42 | void createFolder(const QByteArray &rid, const QMap<QString, QVariant> &data, flatbuffers::FlatBufferBuilder &entityFbb, Akonadi2::Storage::Transaction &); | 42 | void createFolder(const QByteArray &rid, const QMap<QString, QVariant> &data, flatbuffers::FlatBufferBuilder &entityFbb, Akonadi2::Storage::Transaction &); |