diff options
Diffstat (limited to 'common/domain/mail.cpp')
-rw-r--r-- | common/domain/mail.cpp | 94 |
1 files changed, 33 insertions, 61 deletions
diff --git a/common/domain/mail.cpp b/common/domain/mail.cpp index 4b33f06..8abe259 100644 --- a/common/domain/mail.cpp +++ b/common/domain/mail.cpp | |||
@@ -21,32 +21,19 @@ | |||
21 | #include <QVector> | 21 | #include <QVector> |
22 | #include <QByteArray> | 22 | #include <QByteArray> |
23 | #include <QString> | 23 | #include <QString> |
24 | #include <QMutex> | ||
25 | #include <QMutexLocker> | ||
26 | 24 | ||
27 | #include "../resultset.h" | ||
28 | #include "../index.h" | ||
29 | #include "../storage.h" | ||
30 | #include "../log.h" | ||
31 | #include "../propertymapper.h" | 25 | #include "../propertymapper.h" |
32 | #include "../query.h" | ||
33 | #include "../definitions.h" | ||
34 | #include "../typeindex.h" | 26 | #include "../typeindex.h" |
35 | #include "entitybuffer.h" | 27 | #include "entitybuffer.h" |
36 | #include "datastorequery.h" | ||
37 | #include "entity_generated.h" | 28 | #include "entity_generated.h" |
38 | #include "mail/threadindexer.h" | 29 | #include "mail/threadindexer.h" |
39 | 30 | ||
40 | #include "mail_generated.h" | 31 | #include "mail_generated.h" |
41 | 32 | ||
42 | SINK_DEBUG_AREA("mail"); | ||
43 | |||
44 | static QMutex sMutex; | ||
45 | |||
46 | using namespace Sink; | 33 | using namespace Sink; |
47 | using namespace Sink::ApplicationDomain; | 34 | using namespace Sink::ApplicationDomain; |
48 | 35 | ||
49 | void TypeImplementation<Mail>::configureIndex(TypeIndex &index) | 36 | void TypeImplementation<Mail>::configure(TypeIndex &index) |
50 | { | 37 | { |
51 | index.addProperty<QByteArray>(Mail::Uid::name); | 38 | index.addProperty<QByteArray>(Mail::Uid::name); |
52 | index.addProperty<QByteArray>(Mail::Sender::name); | 39 | index.addProperty<QByteArray>(Mail::Sender::name); |
@@ -66,56 +53,41 @@ void TypeImplementation<Mail>::configureIndex(TypeIndex &index) | |||
66 | index.addSecondaryProperty<Mail::ThreadId, Mail::MessageId>(); | 53 | index.addSecondaryProperty<Mail::ThreadId, Mail::MessageId>(); |
67 | } | 54 | } |
68 | 55 | ||
69 | static TypeIndex &getIndex() | ||
70 | { | ||
71 | QMutexLocker locker(&sMutex); | ||
72 | static TypeIndex *index = 0; | ||
73 | if (!index) { | ||
74 | index = new TypeIndex("mail"); | ||
75 | TypeImplementation<Mail>::configureIndex(*index); | ||
76 | } | ||
77 | return *index; | ||
78 | } | ||
79 | 56 | ||
80 | QSharedPointer<ReadPropertyMapper<TypeImplementation<Mail>::Buffer> > TypeImplementation<Mail>::initializeReadPropertyMapper() | 57 | void TypeImplementation<Mail>::configure(ReadPropertyMapper<Buffer> &propertyMapper) |
81 | { | 58 | { |
82 | auto propertyMapper = QSharedPointer<ReadPropertyMapper<Buffer> >::create(); | ||
83 | propertyMapper->addMapping<Mail::Uid, Buffer>(&Buffer::uid); | ||
84 | propertyMapper->addMapping<Mail::Sender, Buffer>(&Buffer::sender); | ||
85 | propertyMapper->addMapping<Mail::SenderName, Buffer>(&Buffer::senderName); | ||
86 | propertyMapper->addMapping<Mail::Subject, Buffer>(&Buffer::subject); | ||
87 | propertyMapper->addMapping<Mail::Date, Buffer>(&Buffer::date); | ||
88 | propertyMapper->addMapping<Mail::Unread, Buffer>(&Buffer::unread); | ||
89 | propertyMapper->addMapping<Mail::Important, Buffer>(&Buffer::important); | ||
90 | propertyMapper->addMapping<Mail::Folder, Buffer>(&Buffer::folder); | ||
91 | propertyMapper->addMapping<Mail::MimeMessage, Buffer>(&Buffer::mimeMessage); | ||
92 | propertyMapper->addMapping<Mail::Draft, Buffer>(&Buffer::draft); | ||
93 | propertyMapper->addMapping<Mail::Trash, Buffer>(&Buffer::trash); | ||
94 | propertyMapper->addMapping<Mail::Sent, Buffer>(&Buffer::sent); | ||
95 | propertyMapper->addMapping<Mail::MessageId, Buffer>(&Buffer::messageId); | ||
96 | propertyMapper->addMapping<Mail::ParentMessageId, Buffer>(&Buffer::parentMessageId); | ||
97 | return propertyMapper; | ||
98 | } | ||
99 | 59 | ||
100 | QSharedPointer<WritePropertyMapper<TypeImplementation<Mail>::BufferBuilder> > TypeImplementation<Mail>::initializeWritePropertyMapper() | ||
101 | { | ||
102 | auto propertyMapper = QSharedPointer<WritePropertyMapper<BufferBuilder> >::create(); | ||
103 | 60 | ||
104 | propertyMapper->addMapping<Mail::Uid>(&BufferBuilder::add_uid); | 61 | propertyMapper.addMapping<Mail::Uid, Buffer>(&Buffer::uid); |
105 | propertyMapper->addMapping<Mail::Sender>(&BufferBuilder::add_sender); | 62 | propertyMapper.addMapping<Mail::Sender, Buffer>(&Buffer::sender); |
106 | propertyMapper->addMapping<Mail::SenderName>(&BufferBuilder::add_senderName); | 63 | propertyMapper.addMapping<Mail::SenderName, Buffer>(&Buffer::senderName); |
107 | propertyMapper->addMapping<Mail::Subject>(&BufferBuilder::add_subject); | 64 | propertyMapper.addMapping<Mail::Subject, Buffer>(&Buffer::subject); |
108 | propertyMapper->addMapping<Mail::Date>(&BufferBuilder::add_date); | 65 | propertyMapper.addMapping<Mail::Date, Buffer>(&Buffer::date); |
109 | propertyMapper->addMapping<Mail::Unread>(&BufferBuilder::add_unread); | 66 | propertyMapper.addMapping<Mail::Unread, Buffer>(&Buffer::unread); |
110 | propertyMapper->addMapping<Mail::Important>(&BufferBuilder::add_important); | 67 | propertyMapper.addMapping<Mail::Important, Buffer>(&Buffer::important); |
111 | propertyMapper->addMapping<Mail::Folder>(&BufferBuilder::add_folder); | 68 | propertyMapper.addMapping<Mail::Folder, Buffer>(&Buffer::folder); |
112 | propertyMapper->addMapping<Mail::MimeMessage>(&BufferBuilder::add_mimeMessage); | 69 | propertyMapper.addMapping<Mail::MimeMessage, Buffer>(&Buffer::mimeMessage); |
113 | propertyMapper->addMapping<Mail::Draft>(&BufferBuilder::add_draft); | 70 | propertyMapper.addMapping<Mail::Draft, Buffer>(&Buffer::draft); |
114 | propertyMapper->addMapping<Mail::Trash>(&BufferBuilder::add_trash); | 71 | propertyMapper.addMapping<Mail::Trash, Buffer>(&Buffer::trash); |
115 | propertyMapper->addMapping<Mail::Sent>(&BufferBuilder::add_sent); | 72 | propertyMapper.addMapping<Mail::Sent, Buffer>(&Buffer::sent); |
116 | propertyMapper->addMapping<Mail::MessageId>(&BufferBuilder::add_messageId); | 73 | propertyMapper.addMapping<Mail::MessageId, Buffer>(&Buffer::messageId); |
117 | propertyMapper->addMapping<Mail::ParentMessageId>(&BufferBuilder::add_parentMessageId); | 74 | propertyMapper.addMapping<Mail::ParentMessageId, Buffer>(&Buffer::parentMessageId); |
118 | return propertyMapper; | ||
119 | } | 75 | } |
120 | 76 | ||
121 | 77 | void TypeImplementation<Mail>::configure(WritePropertyMapper<BufferBuilder> &propertyMapper) | |
78 | { | ||
79 | propertyMapper.addMapping<Mail::Uid>(&BufferBuilder::add_uid); | ||
80 | propertyMapper.addMapping<Mail::Sender>(&BufferBuilder::add_sender); | ||
81 | propertyMapper.addMapping<Mail::SenderName>(&BufferBuilder::add_senderName); | ||
82 | propertyMapper.addMapping<Mail::Subject>(&BufferBuilder::add_subject); | ||
83 | propertyMapper.addMapping<Mail::Date>(&BufferBuilder::add_date); | ||
84 | propertyMapper.addMapping<Mail::Unread>(&BufferBuilder::add_unread); | ||
85 | propertyMapper.addMapping<Mail::Important>(&BufferBuilder::add_important); | ||
86 | propertyMapper.addMapping<Mail::Folder>(&BufferBuilder::add_folder); | ||
87 | propertyMapper.addMapping<Mail::MimeMessage>(&BufferBuilder::add_mimeMessage); | ||
88 | propertyMapper.addMapping<Mail::Draft>(&BufferBuilder::add_draft); | ||
89 | propertyMapper.addMapping<Mail::Trash>(&BufferBuilder::add_trash); | ||
90 | propertyMapper.addMapping<Mail::Sent>(&BufferBuilder::add_sent); | ||
91 | propertyMapper.addMapping<Mail::MessageId>(&BufferBuilder::add_messageId); | ||
92 | propertyMapper.addMapping<Mail::ParentMessageId>(&BufferBuilder::add_parentMessageId); | ||
93 | } | ||