diff options
Diffstat (limited to 'common/pipeline.h')
-rw-r--r-- | common/pipeline.h | 44 |
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 | ||
36 | namespace Sink { | 37 | namespace 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 | ||
70 | signals: | 70 | signals: |
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> | |||
110 | class SINK_EXPORT EntityPreprocessor: public Preprocessor | 109 | class SINK_EXPORT EntityPreprocessor: public Preprocessor |
111 | { | 110 | { |
112 | public: | 111 | public: |
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 | ||
117 | private: | 116 | private: |
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 | ||