diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-10-21 14:36:05 +0200 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-10-21 14:36:05 +0200 |
commit | 40bc3c0607757159e274a72c4dca6f2445196ef0 (patch) | |
tree | 58af345ea9f9455480adce1b34b1782ae8a12893 | |
parent | a3a694db437cf88d11f141150702d5ca80774b3d (diff) | |
download | sink-40bc3c0607757159e274a72c4dca6f2445196ef0.tar.gz sink-40bc3c0607757159e274a72c4dca6f2445196ef0.zip |
Specify the resource name in one place
-rw-r--r-- | common/facadefactory.cpp | 2 | ||||
-rw-r--r-- | common/resource.cpp | 7 | ||||
-rw-r--r-- | common/resource.h | 6 | ||||
-rw-r--r-- | examples/dummyresource/resourcefactory.cpp | 16 | ||||
-rw-r--r-- | examples/dummyresource/resourcefactory.h | 7 | ||||
-rw-r--r-- | examples/imapresource/imapresource.cpp | 12 | ||||
-rw-r--r-- | examples/imapresource/imapresource.h | 7 | ||||
-rw-r--r-- | examples/maildirresource/maildirresource.cpp | 12 | ||||
-rw-r--r-- | examples/maildirresource/maildirresource.h | 7 | ||||
-rw-r--r-- | examples/mailtransportresource/mailtransportresource.cpp | 8 | ||||
-rw-r--r-- | examples/mailtransportresource/mailtransportresource.h | 7 |
11 files changed, 40 insertions, 51 deletions
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<void> FacadeFactory::getFacade(const QByteArray &resource, const | |||
68 | if (!mFacadeRegistry.contains(k)) { | 68 | if (!mFacadeRegistry.contains(k)) { |
69 | locker.unlock(); | 69 | locker.unlock(); |
70 | // This will call FacadeFactory::instace() internally | 70 | // This will call FacadeFactory::instace() internally |
71 | Sink::ResourceFactory::load(QString::fromLatin1(resource)); | 71 | Sink::ResourceFactory::load(resource); |
72 | locker.relock(); | 72 | locker.relock(); |
73 | } | 73 | } |
74 | 74 | ||
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() | |||
80 | // delete d; | 80 | // delete d; |
81 | } | 81 | } |
82 | 82 | ||
83 | ResourceFactory *ResourceFactory::load(const QString &resourceName) | 83 | ResourceFactory *ResourceFactory::load(const QByteArray &resourceName) |
84 | { | 84 | { |
85 | ResourceFactory *factory = Private::s_loadedFactories.value(resourceName); | 85 | ResourceFactory *factory = Private::s_loadedFactories.value(resourceName); |
86 | if (factory) { | 86 | if (factory) { |
@@ -106,8 +106,9 @@ ResourceFactory *ResourceFactory::load(const QString &resourceName) | |||
106 | factory = qobject_cast<ResourceFactory *>(object); | 106 | factory = qobject_cast<ResourceFactory *>(object); |
107 | if (factory) { | 107 | if (factory) { |
108 | Private::s_loadedFactories.insert(resourceName, factory); | 108 | Private::s_loadedFactories.insert(resourceName, factory); |
109 | factory->registerFacades(FacadeFactory::instance()); | 109 | //TODO: Instead of always loading both facades and adaptorfactories into the respective singletons, we could also leave this up to the caller. (ResourceFactory::loadFacades(...)) |
110 | factory->registerAdaptorFactories(AdaptorFactoryRegistry::instance()); | 110 | factory->registerFacades(resourceName, FacadeFactory::instance()); |
111 | factory->registerAdaptorFactories(resourceName, AdaptorFactoryRegistry::instance()); | ||
111 | // TODO: if we need more data on it const QJsonObject json = loader.metaData()[QStringLiteral("MetaData")].toObject(); | 112 | // TODO: if we need more data on it const QJsonObject json = loader.metaData()[QStringLiteral("MetaData")].toObject(); |
112 | return factory; | 113 | return factory; |
113 | } else { | 114 | } 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: | |||
71 | class SINK_EXPORT ResourceFactory : public QObject | 71 | class SINK_EXPORT ResourceFactory : public QObject |
72 | { | 72 | { |
73 | public: | 73 | public: |
74 | static ResourceFactory *load(const QString &resourceName); | 74 | static ResourceFactory *load(const QByteArray &resourceName); |
75 | 75 | ||
76 | ResourceFactory(QObject *parent); | 76 | ResourceFactory(QObject *parent); |
77 | virtual ~ResourceFactory(); | 77 | virtual ~ResourceFactory(); |
78 | 78 | ||
79 | virtual Resource *createResource(const ResourceContext &context) = 0; | 79 | virtual Resource *createResource(const ResourceContext &context) = 0; |
80 | virtual void registerFacades(FacadeFactory &factory) = 0; | 80 | virtual void registerFacades(const QByteArray &resourceName, FacadeFactory &factory) = 0; |
81 | virtual void registerAdaptorFactories(AdaptorFactoryRegistry ®istry) {}; | 81 | virtual void registerAdaptorFactories(const QByteArray &resourceName, AdaptorFactoryRegistry ®istry) {}; |
82 | virtual void removeDataFromDisk(const QByteArray &instanceIdentifier) = 0; | 82 | virtual void removeDataFromDisk(const QByteArray &instanceIdentifier) = 0; |
83 | 83 | ||
84 | private: | 84 | private: |
diff --git a/examples/dummyresource/resourcefactory.cpp b/examples/dummyresource/resourcefactory.cpp index 5513986..242a772 100644 --- a/examples/dummyresource/resourcefactory.cpp +++ b/examples/dummyresource/resourcefactory.cpp | |||
@@ -186,18 +186,18 @@ Sink::Resource *DummyResourceFactory::createResource(const Sink::ResourceContext | |||
186 | return new DummyResource(resourceContext); | 186 | return new DummyResource(resourceContext); |
187 | } | 187 | } |
188 | 188 | ||
189 | void DummyResourceFactory::registerFacades(Sink::FacadeFactory &factory) | 189 | void DummyResourceFactory::registerFacades(const QByteArray &resourceName, Sink::FacadeFactory &factory) |
190 | { | 190 | { |
191 | factory.registerFacade<Sink::ApplicationDomain::Event, DummyResourceFacade>(PLUGIN_NAME); | 191 | factory.registerFacade<Sink::ApplicationDomain::Event, DummyResourceFacade>(resourceName); |
192 | factory.registerFacade<Sink::ApplicationDomain::Mail, DummyResourceMailFacade>(PLUGIN_NAME); | 192 | factory.registerFacade<Sink::ApplicationDomain::Mail, DummyResourceMailFacade>(resourceName); |
193 | factory.registerFacade<Sink::ApplicationDomain::Folder, DummyResourceFolderFacade>(PLUGIN_NAME); | 193 | factory.registerFacade<Sink::ApplicationDomain::Folder, DummyResourceFolderFacade>(resourceName); |
194 | } | 194 | } |
195 | 195 | ||
196 | void DummyResourceFactory::registerAdaptorFactories(Sink::AdaptorFactoryRegistry ®istry) | 196 | void DummyResourceFactory::registerAdaptorFactories(const QByteArray &resourceName, Sink::AdaptorFactoryRegistry ®istry) |
197 | { | 197 | { |
198 | registry.registerFactory<Sink::ApplicationDomain::Folder, DummyFolderAdaptorFactory>(PLUGIN_NAME); | 198 | registry.registerFactory<Sink::ApplicationDomain::Event, DummyEventAdaptorFactory>(resourceName); |
199 | registry.registerFactory<Sink::ApplicationDomain::Mail, DummyMailAdaptorFactory>(PLUGIN_NAME); | 199 | registry.registerFactory<Sink::ApplicationDomain::Mail, DummyMailAdaptorFactory>(resourceName); |
200 | registry.registerFactory<Sink::ApplicationDomain::Event, DummyEventAdaptorFactory>(PLUGIN_NAME); | 200 | registry.registerFactory<Sink::ApplicationDomain::Folder, DummyFolderAdaptorFactory>(resourceName); |
201 | } | 201 | } |
202 | 202 | ||
203 | void DummyResourceFactory::removeDataFromDisk(const QByteArray &instanceIdentifier) | 203 | void DummyResourceFactory::removeDataFromDisk(const QByteArray &instanceIdentifier) |
diff --git a/examples/dummyresource/resourcefactory.h b/examples/dummyresource/resourcefactory.h index 3dd82ff..46a557e 100644 --- a/examples/dummyresource/resourcefactory.h +++ b/examples/dummyresource/resourcefactory.h | |||
@@ -26,9 +26,6 @@ | |||
26 | 26 | ||
27 | #include <flatbuffers/flatbuffers.h> | 27 | #include <flatbuffers/flatbuffers.h> |
28 | 28 | ||
29 | //TODO: a little ugly to have this in two places, once here and once in Q_PLUGIN_METADATA | ||
30 | #define PLUGIN_NAME "sink.dummy" | ||
31 | |||
32 | class DummyResource : public Sink::GenericResource | 29 | class DummyResource : public Sink::GenericResource |
33 | { | 30 | { |
34 | public: | 31 | public: |
@@ -49,8 +46,8 @@ public: | |||
49 | DummyResourceFactory(QObject *parent = 0); | 46 | DummyResourceFactory(QObject *parent = 0); |
50 | 47 | ||
51 | Sink::Resource *createResource(const Sink::ResourceContext &resourceContext) Q_DECL_OVERRIDE; | 48 | Sink::Resource *createResource(const Sink::ResourceContext &resourceContext) Q_DECL_OVERRIDE; |
52 | void registerFacades(Sink::FacadeFactory &factory) Q_DECL_OVERRIDE; | 49 | void registerFacades(const QByteArray &resourceName, Sink::FacadeFactory &factory) Q_DECL_OVERRIDE; |
53 | void registerAdaptorFactories(Sink::AdaptorFactoryRegistry ®istry) Q_DECL_OVERRIDE; | 50 | void registerAdaptorFactories(const QByteArray &resourceName, Sink::AdaptorFactoryRegistry ®istry) Q_DECL_OVERRIDE; |
54 | void removeDataFromDisk(const QByteArray &instanceIdentifier) Q_DECL_OVERRIDE; | 51 | void removeDataFromDisk(const QByteArray &instanceIdentifier) Q_DECL_OVERRIDE; |
55 | }; | 52 | }; |
56 | 53 | ||
diff --git a/examples/imapresource/imapresource.cpp b/examples/imapresource/imapresource.cpp index 9656a04..421bedf 100644 --- a/examples/imapresource/imapresource.cpp +++ b/examples/imapresource/imapresource.cpp | |||
@@ -683,16 +683,16 @@ Sink::Resource *ImapResourceFactory::createResource(const ResourceContext &conte | |||
683 | return new ImapResource(context); | 683 | return new ImapResource(context); |
684 | } | 684 | } |
685 | 685 | ||
686 | void ImapResourceFactory::registerFacades(Sink::FacadeFactory &factory) | 686 | void ImapResourceFactory::registerFacades(const QByteArray &name, Sink::FacadeFactory &factory) |
687 | { | 687 | { |
688 | factory.registerFacade<Sink::ApplicationDomain::Mail, ImapResourceMailFacade>(PLUGIN_NAME); | 688 | factory.registerFacade<Sink::ApplicationDomain::Mail, ImapResourceMailFacade>(name); |
689 | factory.registerFacade<Sink::ApplicationDomain::Folder, ImapResourceFolderFacade>(PLUGIN_NAME); | 689 | factory.registerFacade<Sink::ApplicationDomain::Folder, ImapResourceFolderFacade>(name); |
690 | } | 690 | } |
691 | 691 | ||
692 | void ImapResourceFactory::registerAdaptorFactories(Sink::AdaptorFactoryRegistry ®istry) | 692 | void ImapResourceFactory::registerAdaptorFactories(const QByteArray &name, Sink::AdaptorFactoryRegistry ®istry) |
693 | { | 693 | { |
694 | registry.registerFactory<Sink::ApplicationDomain::Mail, ImapMailAdaptorFactory>(PLUGIN_NAME); | 694 | registry.registerFactory<Sink::ApplicationDomain::Mail, ImapMailAdaptorFactory>(name); |
695 | registry.registerFactory<Sink::ApplicationDomain::Folder, ImapFolderAdaptorFactory>(PLUGIN_NAME); | 695 | registry.registerFactory<Sink::ApplicationDomain::Folder, ImapFolderAdaptorFactory>(name); |
696 | } | 696 | } |
697 | 697 | ||
698 | void ImapResourceFactory::removeDataFromDisk(const QByteArray &instanceIdentifier) | 698 | void ImapResourceFactory::removeDataFromDisk(const QByteArray &instanceIdentifier) |
diff --git a/examples/imapresource/imapresource.h b/examples/imapresource/imapresource.h index 684a3c9..216c6c5 100644 --- a/examples/imapresource/imapresource.h +++ b/examples/imapresource/imapresource.h | |||
@@ -25,9 +25,6 @@ | |||
25 | 25 | ||
26 | #include <flatbuffers/flatbuffers.h> | 26 | #include <flatbuffers/flatbuffers.h> |
27 | 27 | ||
28 | //TODO: a little ugly to have this in two places, once here and once in Q_PLUGIN_METADATA | ||
29 | #define PLUGIN_NAME "sink.imap" | ||
30 | |||
31 | class ImapMailAdaptorFactory; | 28 | class ImapMailAdaptorFactory; |
32 | class ImapFolderAdaptorFactory; | 29 | class ImapFolderAdaptorFactory; |
33 | 30 | ||
@@ -63,8 +60,8 @@ public: | |||
63 | ImapResourceFactory(QObject *parent = 0); | 60 | ImapResourceFactory(QObject *parent = 0); |
64 | 61 | ||
65 | Sink::Resource *createResource(const Sink::ResourceContext &resourceContext) Q_DECL_OVERRIDE; | 62 | Sink::Resource *createResource(const Sink::ResourceContext &resourceContext) Q_DECL_OVERRIDE; |
66 | void registerFacades(Sink::FacadeFactory &factory) Q_DECL_OVERRIDE; | 63 | void registerFacades(const QByteArray &name, Sink::FacadeFactory &factory) Q_DECL_OVERRIDE; |
67 | void registerAdaptorFactories(Sink::AdaptorFactoryRegistry ®istry) Q_DECL_OVERRIDE; | 64 | void registerAdaptorFactories(const QByteArray &name, Sink::AdaptorFactoryRegistry ®istry) Q_DECL_OVERRIDE; |
68 | void removeDataFromDisk(const QByteArray &instanceIdentifier) Q_DECL_OVERRIDE; | 65 | void removeDataFromDisk(const QByteArray &instanceIdentifier) Q_DECL_OVERRIDE; |
69 | }; | 66 | }; |
70 | 67 | ||
diff --git a/examples/maildirresource/maildirresource.cpp b/examples/maildirresource/maildirresource.cpp index e0462b7..29b35fd 100644 --- a/examples/maildirresource/maildirresource.cpp +++ b/examples/maildirresource/maildirresource.cpp | |||
@@ -554,16 +554,16 @@ Sink::Resource *MaildirResourceFactory::createResource(const ResourceContext &co | |||
554 | return new MaildirResource(context); | 554 | return new MaildirResource(context); |
555 | } | 555 | } |
556 | 556 | ||
557 | void MaildirResourceFactory::registerFacades(Sink::FacadeFactory &factory) | 557 | void MaildirResourceFactory::registerFacades(const QByteArray &name, Sink::FacadeFactory &factory) |
558 | { | 558 | { |
559 | factory.registerFacade<Sink::ApplicationDomain::Mail, MaildirResourceMailFacade>(PLUGIN_NAME); | 559 | factory.registerFacade<Sink::ApplicationDomain::Mail, MaildirResourceMailFacade>(name); |
560 | factory.registerFacade<Sink::ApplicationDomain::Folder, MaildirResourceFolderFacade>(PLUGIN_NAME); | 560 | factory.registerFacade<Sink::ApplicationDomain::Folder, MaildirResourceFolderFacade>(name); |
561 | } | 561 | } |
562 | 562 | ||
563 | void MaildirResourceFactory::registerAdaptorFactories(Sink::AdaptorFactoryRegistry ®istry) | 563 | void MaildirResourceFactory::registerAdaptorFactories(const QByteArray &name, Sink::AdaptorFactoryRegistry ®istry) |
564 | { | 564 | { |
565 | registry.registerFactory<Sink::ApplicationDomain::Mail, MaildirMailAdaptorFactory>(PLUGIN_NAME); | 565 | registry.registerFactory<Sink::ApplicationDomain::Mail, MaildirMailAdaptorFactory>(name); |
566 | registry.registerFactory<Sink::ApplicationDomain::Folder, MaildirFolderAdaptorFactory>(PLUGIN_NAME); | 566 | registry.registerFactory<Sink::ApplicationDomain::Folder, MaildirFolderAdaptorFactory>(name); |
567 | } | 567 | } |
568 | 568 | ||
569 | void MaildirResourceFactory::removeDataFromDisk(const QByteArray &instanceIdentifier) | 569 | void MaildirResourceFactory::removeDataFromDisk(const QByteArray &instanceIdentifier) |
diff --git a/examples/maildirresource/maildirresource.h b/examples/maildirresource/maildirresource.h index 6265819..2d1090b 100644 --- a/examples/maildirresource/maildirresource.h +++ b/examples/maildirresource/maildirresource.h | |||
@@ -25,9 +25,6 @@ | |||
25 | 25 | ||
26 | #include <flatbuffers/flatbuffers.h> | 26 | #include <flatbuffers/flatbuffers.h> |
27 | 27 | ||
28 | //TODO: a little ugly to have this in two places, once here and once in Q_PLUGIN_METADATA | ||
29 | #define PLUGIN_NAME "sink.maildir" | ||
30 | |||
31 | class MaildirMailAdaptorFactory; | 28 | class MaildirMailAdaptorFactory; |
32 | class MaildirFolderAdaptorFactory; | 29 | class MaildirFolderAdaptorFactory; |
33 | 30 | ||
@@ -65,8 +62,8 @@ public: | |||
65 | MaildirResourceFactory(QObject *parent = 0); | 62 | MaildirResourceFactory(QObject *parent = 0); |
66 | 63 | ||
67 | Sink::Resource *createResource(const Sink::ResourceContext &context) Q_DECL_OVERRIDE; | 64 | Sink::Resource *createResource(const Sink::ResourceContext &context) Q_DECL_OVERRIDE; |
68 | void registerFacades(Sink::FacadeFactory &factory) Q_DECL_OVERRIDE; | 65 | void registerFacades(const QByteArray &resourceName, Sink::FacadeFactory &factory) Q_DECL_OVERRIDE; |
69 | void registerAdaptorFactories(Sink::AdaptorFactoryRegistry ®istry) Q_DECL_OVERRIDE; | 66 | void registerAdaptorFactories(const QByteArray &resourceName, Sink::AdaptorFactoryRegistry ®istry) Q_DECL_OVERRIDE; |
70 | void removeDataFromDisk(const QByteArray &instanceIdentifier) Q_DECL_OVERRIDE; | 67 | void removeDataFromDisk(const QByteArray &instanceIdentifier) Q_DECL_OVERRIDE; |
71 | }; | 68 | }; |
72 | 69 | ||
diff --git a/examples/mailtransportresource/mailtransportresource.cpp b/examples/mailtransportresource/mailtransportresource.cpp index 25231c8..5f8ba89 100644 --- a/examples/mailtransportresource/mailtransportresource.cpp +++ b/examples/mailtransportresource/mailtransportresource.cpp | |||
@@ -195,14 +195,14 @@ Sink::Resource *MailtransportResourceFactory::createResource(const Sink::Resourc | |||
195 | return new MailtransportResource(context); | 195 | return new MailtransportResource(context); |
196 | } | 196 | } |
197 | 197 | ||
198 | void MailtransportResourceFactory::registerFacades(Sink::FacadeFactory &factory) | 198 | void MailtransportResourceFactory::registerFacades(const QByteArray &resourceName, Sink::FacadeFactory &factory) |
199 | { | 199 | { |
200 | factory.registerFacade<ApplicationDomain::Mail, DefaultFacade<ApplicationDomain::Mail>>(PLUGIN_NAME); | 200 | factory.registerFacade<ApplicationDomain::Mail, DefaultFacade<ApplicationDomain::Mail>>(resourceName); |
201 | } | 201 | } |
202 | 202 | ||
203 | void MailtransportResourceFactory::registerAdaptorFactories(Sink::AdaptorFactoryRegistry ®istry) | 203 | void MailtransportResourceFactory::registerAdaptorFactories(const QByteArray &resourceName, Sink::AdaptorFactoryRegistry ®istry) |
204 | { | 204 | { |
205 | registry.registerFactory<Sink::ApplicationDomain::Mail, DomainTypeAdaptorFactory<ApplicationDomain::Mail>>(PLUGIN_NAME); | 205 | registry.registerFactory<Sink::ApplicationDomain::Mail, DomainTypeAdaptorFactory<ApplicationDomain::Mail>>(resourceName); |
206 | } | 206 | } |
207 | 207 | ||
208 | void MailtransportResourceFactory::removeDataFromDisk(const QByteArray &instanceIdentifier) | 208 | void MailtransportResourceFactory::removeDataFromDisk(const QByteArray &instanceIdentifier) |
diff --git a/examples/mailtransportresource/mailtransportresource.h b/examples/mailtransportresource/mailtransportresource.h index 212880c..a6f1167 100644 --- a/examples/mailtransportresource/mailtransportresource.h +++ b/examples/mailtransportresource/mailtransportresource.h | |||
@@ -22,9 +22,6 @@ | |||
22 | #include "common/resource.h" | 22 | #include "common/resource.h" |
23 | #include "common/genericresource.h" | 23 | #include "common/genericresource.h" |
24 | 24 | ||
25 | //TODO: a little ugly to have this in two places, once here and once in Q_PLUGIN_METADATA | ||
26 | #define PLUGIN_NAME "sink.mailtransport" | ||
27 | |||
28 | class MailtransportResource : public Sink::GenericResource | 25 | class MailtransportResource : public Sink::GenericResource |
29 | { | 26 | { |
30 | public: | 27 | public: |
@@ -53,8 +50,8 @@ public: | |||
53 | MailtransportResourceFactory(QObject *parent = 0); | 50 | MailtransportResourceFactory(QObject *parent = 0); |
54 | 51 | ||
55 | Sink::Resource *createResource(const Sink::ResourceContext &resourceContext) Q_DECL_OVERRIDE; | 52 | Sink::Resource *createResource(const Sink::ResourceContext &resourceContext) Q_DECL_OVERRIDE; |
56 | void registerFacades(Sink::FacadeFactory &factory) Q_DECL_OVERRIDE; | 53 | void registerFacades(const QByteArray &resourceName, Sink::FacadeFactory &factory) Q_DECL_OVERRIDE; |
57 | void registerAdaptorFactories(Sink::AdaptorFactoryRegistry ®istry) Q_DECL_OVERRIDE; | 54 | void registerAdaptorFactories(const QByteArray &resourceName, Sink::AdaptorFactoryRegistry ®istry) Q_DECL_OVERRIDE; |
58 | void removeDataFromDisk(const QByteArray &instanceIdentifier) Q_DECL_OVERRIDE; | 55 | void removeDataFromDisk(const QByteArray &instanceIdentifier) Q_DECL_OVERRIDE; |
59 | }; | 56 | }; |
60 | 57 | ||