From 237b9ae4113e7a9f489632296941becb71afdb45 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Sun, 16 Oct 2016 14:55:20 +0200 Subject: Refactor how the storage is used. This is the initial refactoring to improve how we deal with the storage. It does a couple of things: * Rename Sink::Storage to Sink::Storage::DataStore to free up the Sink::Storage namespace * Introduce a Sink::ResourceContext to have a single object that can be passed around containing everything that is necessary to operate on a resource. This is a lot better than the multiple separate parameters that we used to pass around all over the place, while still allowing for dependency injection for tests. * Tie storage access together using the new EntityStore that directly works with ApplicationDomainTypes. This gives us a central place where main storage, indexes and buffer adaptors are tied together, which will also give us a place to implement external indexes, such as a fulltextindex using xapian. * Use ApplicationDomainTypes as the default way to pass around entities. Instead of using various ways to pass around entities (buffers, buffer adaptors, ApplicationDomainTypes), only use a single way. The old approach was confusing, and was only done as: * optimization; really shouldn't be necessary and otherwise I'm sure we can find better ways to optimize ApplicationDomainType itself. * a way to account for entities that have multiple buffers, a concept that I no longer deem relevant. While this commit does the bulk of the work to get there, the following commits will refactor more stuff to get things back to normal. --- examples/dummyresource/facade.cpp | 12 ++++++------ examples/dummyresource/facade.h | 6 +++--- examples/dummyresource/resourcefactory.cpp | 16 ++++++++-------- examples/dummyresource/resourcefactory.h | 4 ++-- 4 files changed, 19 insertions(+), 19 deletions(-) (limited to 'examples/dummyresource') diff --git a/examples/dummyresource/facade.cpp b/examples/dummyresource/facade.cpp index 120498a..4343eba 100644 --- a/examples/dummyresource/facade.cpp +++ b/examples/dummyresource/facade.cpp @@ -21,8 +21,8 @@ #include "domainadaptor.h" -DummyResourceFacade::DummyResourceFacade(const QByteArray &instanceIdentifier) - : Sink::GenericFacade(instanceIdentifier, QSharedPointer::create()) +DummyResourceFacade::DummyResourceFacade(const Sink::ResourceContext &context) + : Sink::GenericFacade(context) { } @@ -31,8 +31,8 @@ DummyResourceFacade::~DummyResourceFacade() } -DummyResourceMailFacade::DummyResourceMailFacade(const QByteArray &instanceIdentifier) - : Sink::GenericFacade(instanceIdentifier, QSharedPointer::create()) +DummyResourceMailFacade::DummyResourceMailFacade(const Sink::ResourceContext &context) + : Sink::GenericFacade(context) { } @@ -41,8 +41,8 @@ DummyResourceMailFacade::~DummyResourceMailFacade() } -DummyResourceFolderFacade::DummyResourceFolderFacade(const QByteArray &instanceIdentifier) - : Sink::GenericFacade(instanceIdentifier, QSharedPointer::create()) +DummyResourceFolderFacade::DummyResourceFolderFacade(const Sink::ResourceContext &context) + : Sink::GenericFacade(context) { } diff --git a/examples/dummyresource/facade.h b/examples/dummyresource/facade.h index 5e0096d..1bb45fd 100644 --- a/examples/dummyresource/facade.h +++ b/examples/dummyresource/facade.h @@ -25,20 +25,20 @@ class DummyResourceFacade : public Sink::GenericFacade { public: - DummyResourceFacade(const QByteArray &instanceIdentifier); + DummyResourceFacade(const Sink::ResourceContext &context); virtual ~DummyResourceFacade(); }; class DummyResourceMailFacade : public Sink::GenericFacade { public: - DummyResourceMailFacade(const QByteArray &instanceIdentifier); + DummyResourceMailFacade(const Sink::ResourceContext &context); virtual ~DummyResourceMailFacade(); }; class DummyResourceFolderFacade : public Sink::GenericFacade { public: - DummyResourceFolderFacade(const QByteArray &instanceIdentifier); + DummyResourceFolderFacade(const Sink::ResourceContext &context); virtual ~DummyResourceFolderFacade(); }; diff --git a/examples/dummyresource/resourcefactory.cpp b/examples/dummyresource/resourcefactory.cpp index 6d14721..e288be2 100644 --- a/examples/dummyresource/resourcefactory.cpp +++ b/examples/dummyresource/resourcefactory.cpp @@ -53,8 +53,8 @@ SINK_DEBUG_AREA("dummyresource") class DummySynchronizer : public Sink::Synchronizer { public: - DummySynchronizer(const QByteArray &resourceType, const QByteArray &resourceInstanceIdentifier) - : Sink::Synchronizer(resourceType, resourceInstanceIdentifier) + DummySynchronizer(const Sink::ResourceContext &context) + : Sink::Synchronizer(context) { } @@ -129,11 +129,11 @@ class DummySynchronizer : public Sink::Synchronizer { }; -DummyResource::DummyResource(const QByteArray &instanceIdentifier, const QSharedPointer &pipeline) - : Sink::GenericResource(PLUGIN_NAME, instanceIdentifier, pipeline) +DummyResource::DummyResource(const Sink::ResourceContext &resourceContext, const QSharedPointer &pipeline) + : Sink::GenericResource(resourceContext, pipeline) { - setupSynchronizer(QSharedPointer::create(PLUGIN_NAME, instanceIdentifier)); - setupChangereplay(QSharedPointer::create(instanceIdentifier)); + setupSynchronizer(QSharedPointer::create(resourceContext)); + setupChangereplay(QSharedPointer::create(resourceContext)); setupPreprocessors(ENTITY_TYPE_MAIL, QVector() << new MailPropertyExtractor << new DefaultIndexUpdater); setupPreprocessors(ENTITY_TYPE_FOLDER, @@ -182,9 +182,9 @@ DummyResourceFactory::DummyResourceFactory(QObject *parent) } -Sink::Resource *DummyResourceFactory::createResource(const QByteArray &instanceIdentifier) +Sink::Resource *DummyResourceFactory::createResource(const Sink::ResourceContext &resourceContext) { - return new DummyResource(instanceIdentifier); + return new DummyResource(resourceContext); } void DummyResourceFactory::registerFacades(Sink::FacadeFactory &factory) diff --git a/examples/dummyresource/resourcefactory.h b/examples/dummyresource/resourcefactory.h index 0a29d53..3dd82ff 100644 --- a/examples/dummyresource/resourcefactory.h +++ b/examples/dummyresource/resourcefactory.h @@ -32,7 +32,7 @@ class DummyResource : public Sink::GenericResource { public: - DummyResource(const QByteArray &instanceIdentifier, const QSharedPointer &pipeline = QSharedPointer()); + DummyResource(const Sink::ResourceContext &resourceContext, const QSharedPointer &pipeline = QSharedPointer()); virtual ~DummyResource(); KAsync::Job synchronizeWithSource() Q_DECL_OVERRIDE; @@ -48,7 +48,7 @@ class DummyResourceFactory : public Sink::ResourceFactory public: DummyResourceFactory(QObject *parent = 0); - Sink::Resource *createResource(const QByteArray &instanceIdentifier) Q_DECL_OVERRIDE; + Sink::Resource *createResource(const Sink::ResourceContext &resourceContext) Q_DECL_OVERRIDE; void registerFacades(Sink::FacadeFactory &factory) Q_DECL_OVERRIDE; void registerAdaptorFactories(Sink::AdaptorFactoryRegistry ®istry) Q_DECL_OVERRIDE; void removeDataFromDisk(const QByteArray &instanceIdentifier) Q_DECL_OVERRIDE; -- cgit v1.2.3