From 40bc3c0607757159e274a72c4dca6f2445196ef0 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Fri, 21 Oct 2016 14:36:05 +0200 Subject: Specify the resource name in one place --- common/facadefactory.cpp | 2 +- common/resource.cpp | 7 ++++--- common/resource.h | 6 +++--- 3 files changed, 8 insertions(+), 7 deletions(-) (limited to 'common') diff --git a/common/facadefactory.cpp b/common/facadefactory.cpp index 107d575..9342831 100644 --- a/common/facadefactory.cpp +++ b/common/facadefactory.cpp @@ -68,7 +68,7 @@ std::shared_ptr FacadeFactory::getFacade(const QByteArray &resource, const if (!mFacadeRegistry.contains(k)) { locker.unlock(); // This will call FacadeFactory::instace() internally - Sink::ResourceFactory::load(QString::fromLatin1(resource)); + Sink::ResourceFactory::load(resource); locker.relock(); } diff --git a/common/resource.cpp b/common/resource.cpp index f4c2ad4..db64d33 100644 --- a/common/resource.cpp +++ b/common/resource.cpp @@ -80,7 +80,7 @@ ResourceFactory::~ResourceFactory() // delete d; } -ResourceFactory *ResourceFactory::load(const QString &resourceName) +ResourceFactory *ResourceFactory::load(const QByteArray &resourceName) { ResourceFactory *factory = Private::s_loadedFactories.value(resourceName); if (factory) { @@ -106,8 +106,9 @@ ResourceFactory *ResourceFactory::load(const QString &resourceName) factory = qobject_cast(object); if (factory) { Private::s_loadedFactories.insert(resourceName, factory); - factory->registerFacades(FacadeFactory::instance()); - factory->registerAdaptorFactories(AdaptorFactoryRegistry::instance()); + //TODO: Instead of always loading both facades and adaptorfactories into the respective singletons, we could also leave this up to the caller. (ResourceFactory::loadFacades(...)) + factory->registerFacades(resourceName, FacadeFactory::instance()); + factory->registerAdaptorFactories(resourceName, AdaptorFactoryRegistry::instance()); // TODO: if we need more data on it const QJsonObject json = loader.metaData()[QStringLiteral("MetaData")].toObject(); return factory; } else { diff --git a/common/resource.h b/common/resource.h index 426585d..1dbc365 100644 --- a/common/resource.h +++ b/common/resource.h @@ -71,14 +71,14 @@ private: class SINK_EXPORT ResourceFactory : public QObject { public: - static ResourceFactory *load(const QString &resourceName); + static ResourceFactory *load(const QByteArray &resourceName); ResourceFactory(QObject *parent); virtual ~ResourceFactory(); virtual Resource *createResource(const ResourceContext &context) = 0; - virtual void registerFacades(FacadeFactory &factory) = 0; - virtual void registerAdaptorFactories(AdaptorFactoryRegistry ®istry) {}; + virtual void registerFacades(const QByteArray &resourceName, FacadeFactory &factory) = 0; + virtual void registerAdaptorFactories(const QByteArray &resourceName, AdaptorFactoryRegistry ®istry) {}; virtual void removeDataFromDisk(const QByteArray &instanceIdentifier) = 0; private: -- cgit v1.2.3