summaryrefslogtreecommitdiffstats
path: root/examples/dummyresource/dummystore.cpp
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2015-09-08 23:03:29 +0200
committerChristian Mollekopf <chrigi_1@fastmail.fm>2015-09-08 23:03:29 +0200
commit47567ba91907c2fe35c73a7d28915aee497e39fd (patch)
tree0421bacb3a43253d37df3c378e4276270fd052d1 /examples/dummyresource/dummystore.cpp
parent88ecf5ab4e283d246499cf5f869800a99f58e48b (diff)
downloadsink-47567ba91907c2fe35c73a7d28915aee497e39fd.tar.gz
sink-47567ba91907c2fe35c73a7d28915aee497e39fd.zip
DummyStore that is not overly complicated by using flatbuffers.
Diffstat (limited to 'examples/dummyresource/dummystore.cpp')
-rw-r--r--examples/dummyresource/dummystore.cpp63
1 files changed, 20 insertions, 43 deletions
diff --git a/examples/dummyresource/dummystore.cpp b/examples/dummyresource/dummystore.cpp
index 41b48ed..0356ec0 100644
--- a/examples/dummyresource/dummystore.cpp
+++ b/examples/dummyresource/dummystore.cpp
@@ -20,72 +20,49 @@
20 20
21#include <QString> 21#include <QString>
22 22
23#include "dummycalendar_generated.h" 23static QMap<QString, QVariant> createEvent(int i)
24#include "mail_generated.h"
25
26static std::string createEvent(int i)
27{ 24{
25 QMap<QString, QVariant> event;
26 event.insert("summary", QString("summary%1").arg(i));
28 static const size_t attachmentSize = 1024*2; // 2KB 27 static const size_t attachmentSize = 1024*2; // 2KB
29 static uint8_t rawData[attachmentSize]; 28 event.insert("attachment", QByteArray(attachmentSize, 'c'));
30 static flatbuffers::FlatBufferBuilder fbb; 29 return event;
31 fbb.Clear();
32 {
33 uint8_t *rawDataPtr = nullptr;
34 auto summary = fbb.CreateString("summary" + std::to_string(i));
35 auto data = fbb.CreateUninitializedVector<uint8_t>(attachmentSize, &rawDataPtr);
36 DummyCalendar::DummyEventBuilder eventBuilder(fbb);
37 eventBuilder.add_summary(summary);
38 eventBuilder.add_attachment(data);
39 auto eventLocation = eventBuilder.Finish();
40 DummyCalendar::FinishDummyEventBuffer(fbb, eventLocation);
41 memcpy((void*)rawDataPtr, rawData, attachmentSize);
42 }
43
44 return std::string(reinterpret_cast<const char *>(fbb.GetBufferPointer()), fbb.GetSize());
45} 30}
46 31
47static std::string createMail(int i) 32static QMap<QString, QVariant> createMail(int i)
48{ 33{
49 static flatbuffers::FlatBufferBuilder fbb; 34 QMap<QString, QVariant> mail;
50 fbb.Clear(); 35 mail.insert("subject", QString("subject%1").arg(i));
51 { 36 return mail;
52 auto subject = fbb.CreateString("summary" + std::to_string(i));
53 Akonadi2::ApplicationDomain::Buffer::MailBuilder mailBuilder(fbb);
54 mailBuilder.add_subject(subject);
55 Akonadi2::ApplicationDomain::Buffer::FinishMailBuffer(fbb, mailBuilder.Finish());
56 }
57
58 return std::string(reinterpret_cast<const char *>(fbb.GetBufferPointer()), fbb.GetSize());
59} 37}
60 38
61QMap<QString, QString> populate() 39QMap<QString, QMap<QString, QVariant> > populateEvents()
62{ 40{
63 QMap<QString, QString> content; 41 QMap<QString, QMap<QString, QVariant>> content;
64 for (int i = 0; i < 2; i++) { 42 for (int i = 0; i < 2; i++) {
65 auto event = createEvent(i); 43 content.insert(QString("key%1").arg(i), createEvent(i));
66 content.insert(QString("key%1").arg(i), QString::fromStdString(event));
67 } 44 }
68 return content; 45 return content;
69} 46}
70 47
71QMap<QString, QString> populateMails() 48QMap<QString, QMap<QString, QVariant> > populateMails()
72{ 49{
73 QMap<QString, QString> content; 50 QMap<QString, QMap<QString, QVariant>> content;
74 for (int i = 0; i < 2; i++) { 51 for (int i = 0; i < 2; i++) {
75 content.insert(QString("key%1").arg(i), QString::fromStdString(createMail(i))); 52 content.insert(QString("key%1").arg(i), createMail(i));
76 } 53 }
77 return content; 54 return content;
78} 55}
79 56
80static QMap<QString, QString> s_dataSource = populate(); 57static QMap<QString, QMap<QString, QVariant> > s_eventSource = populateEvents();
81static QMap<QString, QString> s_mailSource = populateMails(); 58static QMap<QString, QMap<QString, QVariant> > s_mailSource = populateMails();
82 59
83QMap<QString, QString> DummyStore::events() const 60QMap<QString, QMap<QString, QVariant> > DummyStore::events() const
84{ 61{
85 return s_dataSource; 62 return s_eventSource;
86} 63}
87 64
88QMap<QString, QString> DummyStore::mails() const 65QMap<QString, QMap<QString, QVariant> > DummyStore::mails() const
89{ 66{
90 return s_mailSource; 67 return s_mailSource;
91} 68}