summaryrefslogtreecommitdiffstats
path: root/examples/imapresource
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2016-06-11 11:13:24 +0200
committerChristian Mollekopf <chrigi_1@fastmail.fm>2016-06-11 11:13:24 +0200
commit8acf25062da0b3f97fb213d804555532ee224b18 (patch)
treee08c04a93d17dbfbe865899e4810b35dcb686fdd /examples/imapresource
parentb50832042416fb4a37a7d31f3b133f73a3b15ebb (diff)
downloadsink-8acf25062da0b3f97fb213d804555532ee224b18.tar.gz
sink-8acf25062da0b3f97fb213d804555532ee224b18.zip
Use the new api for the property extractor
Diffstat (limited to 'examples/imapresource')
-rw-r--r--examples/imapresource/imapresource.cpp25
1 files changed, 12 insertions, 13 deletions
diff --git a/examples/imapresource/imapresource.cpp b/examples/imapresource/imapresource.cpp
index 2e1dbec..1bcbd24 100644
--- a/examples/imapresource/imapresource.cpp
+++ b/examples/imapresource/imapresource.cpp
@@ -129,14 +129,13 @@ public:
129 QByteArray mResourceType; 129 QByteArray mResourceType;
130}; 130};
131 131
132class MailPropertyExtractor : public Sink::Preprocessor 132class MailPropertyExtractor : public Sink::EntityPreprocessor<ApplicationDomain::Mail>
133{ 133{
134public: 134public:
135 MailPropertyExtractor() {}
136 135
137 void updatedIndexedProperties(Sink::ApplicationDomain::BufferAdaptor &newEntity) 136 void updatedIndexedProperties(Sink::ApplicationDomain::Mail &mail)
138 { 137 {
139 const auto mimeMessagePath = newEntity.getProperty("mimeMessage").toString(); 138 const auto mimeMessagePath = mail.getMimeMessagePath();
140 Trace() << "Updating indexed properties " << mimeMessagePath; 139 Trace() << "Updating indexed properties " << mimeMessagePath;
141 QFile f(mimeMessagePath); 140 QFile f(mimeMessagePath);
142 if (!f.open(QIODevice::ReadOnly)) { 141 if (!f.open(QIODevice::ReadOnly)) {
@@ -153,22 +152,22 @@ public:
153 msg->setHead(KMime::CRLFtoLF(QByteArray::fromRawData(reinterpret_cast<const char*>(mapped), f.size()))); 152 msg->setHead(KMime::CRLFtoLF(QByteArray::fromRawData(reinterpret_cast<const char*>(mapped), f.size())));
154 msg->parse(); 153 msg->parse();
155 154
156 newEntity.setProperty("subject", msg->subject(true)->asUnicodeString()); 155 mail.setExtractedSubject(msg->subject(true)->asUnicodeString());
157 newEntity.setProperty("sender", msg->from(true)->asUnicodeString()); 156 mail.setExtractedSender(msg->from(true)->asUnicodeString());
158 newEntity.setProperty("senderName", msg->from(true)->asUnicodeString()); 157 mail.setExtractedSenderName(msg->from(true)->asUnicodeString());
159 newEntity.setProperty("date", msg->date(true)->dateTime()); 158 mail.setExtractedDate(msg->date(true)->dateTime());
160 } 159 }
161 160
162 void newEntity(const QByteArray &uid, qint64 revision, Sink::ApplicationDomain::BufferAdaptor &newEntity, Sink::Storage::Transaction &transaction) Q_DECL_OVERRIDE 161 void newEntity(Sink::ApplicationDomain::Mail &mail, Sink::Storage::Transaction &transaction) Q_DECL_OVERRIDE
163 { 162 {
164 updatedIndexedProperties(newEntity); 163 updatedIndexedProperties(mail);
165 } 164 }
166 165
167 void modifiedEntity(const QByteArray &uid, qint64 revision, const Sink::ApplicationDomain::BufferAdaptor &oldEntity, Sink::ApplicationDomain::BufferAdaptor &newEntity, 166 void modifiedEntity(const Sink::ApplicationDomain::Mail &oldMail, Sink::ApplicationDomain::Mail &newMail,Sink::Storage::Transaction &transaction) Q_DECL_OVERRIDE
168 Sink::Storage::Transaction &transaction) Q_DECL_OVERRIDE
169 { 167 {
170 updatedIndexedProperties(newEntity); 168 updatedIndexedProperties(newMail);
171 } 169 }
170};
172 171
173}; 172};
174 173