summaryrefslogtreecommitdiffstats
path: root/common/pipeline.h
diff options
context:
space:
mode:
Diffstat (limited to 'common/pipeline.h')
-rw-r--r--common/pipeline.h44
1 files changed, 22 insertions, 22 deletions
diff --git a/common/pipeline.h b/common/pipeline.h
index bf94017..0461507 100644
--- a/common/pipeline.h
+++ b/common/pipeline.h
@@ -31,7 +31,8 @@
31 31
32#include <Async/Async> 32#include <Async/Async>
33 33
34#include "domainadaptor.h" 34#include <bufferadaptor.h>
35#include <resourcecontext.h>
35 36
36namespace Sink { 37namespace Sink {
37 38
@@ -45,16 +46,14 @@ public:
45 Pipeline(const ResourceContext &context); 46 Pipeline(const ResourceContext &context);
46 ~Pipeline(); 47 ~Pipeline();
47 48
48 Storage::DataStore &storage() const;
49
50 void setPreprocessors(const QString &entityType, const QVector<Preprocessor *> &preprocessors); 49 void setPreprocessors(const QString &entityType, const QVector<Preprocessor *> &preprocessors);
51 void startTransaction(); 50 void startTransaction();
52 void commit(); 51 void commit();
53 Storage::DataStore::Transaction &transaction();
54 52
55 KAsync::Job<qint64> newEntity(void const *command, size_t size); 53 KAsync::Job<qint64> newEntity(void const *command, size_t size);
56 KAsync::Job<qint64> modifiedEntity(void const *command, size_t size); 54 KAsync::Job<qint64> modifiedEntity(void const *command, size_t size);
57 KAsync::Job<qint64> deletedEntity(void const *command, size_t size); 55 KAsync::Job<qint64> deletedEntity(void const *command, size_t size);
56
58 /* 57 /*
59 * Cleans up a single revision. 58 * Cleans up a single revision.
60 * 59 *
@@ -66,6 +65,7 @@ public:
66 * Returns the latest cleaned up revision. 65 * Returns the latest cleaned up revision.
67 */ 66 */
68 qint64 cleanedUpRevision(); 67 qint64 cleanedUpRevision();
68 qint64 revision();
69 69
70signals: 70signals:
71 void revisionUpdated(qint64); 71 void revisionUpdated(qint64);
@@ -82,11 +82,10 @@ public:
82 virtual ~Preprocessor(); 82 virtual ~Preprocessor();
83 83
84 virtual void startBatch(); 84 virtual void startBatch();
85 virtual void newEntity(const QByteArray &uid, qint64 revision, ApplicationDomain::BufferAdaptor &newEntity, Storage::DataStore::Transaction &transaction) {}; 85 virtual void newEntity(ApplicationDomain::ApplicationDomainType &newEntity) {};
86 virtual void modifiedEntity(const QByteArray &uid, qint64 revision, const ApplicationDomain::BufferAdaptor &oldEntity, 86 virtual void modifiedEntity(const ApplicationDomain::ApplicationDomainType &oldEntity, ApplicationDomain::ApplicationDomainType &newEntity) {};
87 ApplicationDomain::BufferAdaptor &newEntity, Storage::DataStore::Transaction &transaction) {}; 87 virtual void deletedEntity(const ApplicationDomain::ApplicationDomainType &oldEntity) {};
88 virtual void deletedEntity(const QByteArray &uid, qint64 revision, const ApplicationDomain::BufferAdaptor &oldEntity, Storage::DataStore::Transaction &transaction) {}; 88 virtual void finalizeBatch();
89 virtual void finalize();
90 89
91 void setup(const QByteArray &resourceType, const QByteArray &resourceInstanceIdentifier, Pipeline *); 90 void setup(const QByteArray &resourceType, const QByteArray &resourceInstanceIdentifier, Pipeline *);
92 91
@@ -110,27 +109,28 @@ template<typename DomainType>
110class SINK_EXPORT EntityPreprocessor: public Preprocessor 109class SINK_EXPORT EntityPreprocessor: public Preprocessor
111{ 110{
112public: 111public:
113 virtual void newEntity(DomainType &, Storage::DataStore::Transaction &transaction) {}; 112 virtual void newEntity(DomainType &) {};
114 virtual void modifiedEntity(const DomainType &oldEntity, DomainType &newEntity, Storage::DataStore::Transaction &transaction) {}; 113 virtual void modifiedEntity(const DomainType &oldEntity, DomainType &newEntity) {};
115 virtual void deletedEntity(const DomainType &oldEntity, Storage::DataStore::Transaction &transaction) {}; 114 virtual void deletedEntity(const DomainType &oldEntity) {};
116 115
117private: 116private:
118 static void nullDeleter(ApplicationDomain::BufferAdaptor *) {} 117 virtual void newEntity(ApplicationDomain::ApplicationDomainType &newEntity_) Q_DECL_OVERRIDE
119 virtual void newEntity(const QByteArray &uid, qint64 revision, ApplicationDomain::BufferAdaptor &bufferAdaptor, Storage::DataStore::Transaction &transaction) Q_DECL_OVERRIDE
120 { 118 {
121 auto o = DomainType("", uid, revision, QSharedPointer<ApplicationDomain::BufferAdaptor>(&bufferAdaptor, nullDeleter)); 119 //Modifications still work due to the underlying shared adaptor
122 newEntity(o, transaction); 120 auto newEntityCopy = DomainType(newEntity_);
121 newEntity(newEntityCopy);
123 } 122 }
124 123
125 virtual void modifiedEntity(const QByteArray &uid, qint64 revision, const ApplicationDomain::BufferAdaptor &oldEntity, 124 virtual void modifiedEntity(const ApplicationDomain::ApplicationDomainType &oldEntity, ApplicationDomain::ApplicationDomainType &newEntity_) Q_DECL_OVERRIDE
126 ApplicationDomain::BufferAdaptor &bufferAdaptor, Storage::DataStore::Transaction &transaction) Q_DECL_OVERRIDE
127 { 125 {
128 auto o = DomainType("", uid, revision, QSharedPointer<ApplicationDomain::BufferAdaptor>(&bufferAdaptor, nullDeleter)); 126 //Modifications still work due to the underlying shared adaptor
129 modifiedEntity(DomainType("", uid, 0, QSharedPointer<ApplicationDomain::BufferAdaptor>(const_cast<ApplicationDomain::BufferAdaptor*>(&oldEntity), nullDeleter)), o, transaction); 127 auto newEntityCopy = DomainType(newEntity_);
128 modifiedEntity(DomainType(oldEntity), newEntityCopy);
130 } 129 }
131 virtual void deletedEntity(const QByteArray &uid, qint64 revision, const ApplicationDomain::BufferAdaptor &bufferAdaptor, Storage::DataStore::Transaction &transaction) Q_DECL_OVERRIDE 130
131 virtual void deletedEntity(const ApplicationDomain::ApplicationDomainType &oldEntity) Q_DECL_OVERRIDE
132 { 132 {
133 deletedEntity(DomainType("", uid, revision, QSharedPointer<ApplicationDomain::BufferAdaptor>(const_cast<ApplicationDomain::BufferAdaptor*>(&bufferAdaptor), nullDeleter)), transaction); 133 deletedEntity(DomainType(oldEntity));
134 } 134 }
135}; 135};
136 136