summaryrefslogtreecommitdiffstats
path: root/common/adaptorfactoryregistry.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'common/adaptorfactoryregistry.cpp')
-rw-r--r--common/adaptorfactoryregistry.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/common/adaptorfactoryregistry.cpp b/common/adaptorfactoryregistry.cpp
index 323a02d..91b5a4c 100644
--- a/common/adaptorfactoryregistry.cpp
+++ b/common/adaptorfactoryregistry.cpp
@@ -61,8 +61,20 @@ std::shared_ptr<DomainTypeAdaptorFactoryInterface> AdaptorFactoryRegistry::getFa
61 return std::static_pointer_cast<DomainTypeAdaptorFactoryInterface>(ptr); 61 return std::static_pointer_cast<DomainTypeAdaptorFactoryInterface>(ptr);
62} 62}
63 63
64QMap<QByteArray, DomainTypeAdaptorFactoryInterface::Ptr> AdaptorFactoryRegistry::getFactories(const QByteArray &resource)
65{
66 QMap<QByteArray, DomainTypeAdaptorFactoryInterface::Ptr> map;
67 for (const auto &type : mTypes.values(resource)) {
68 auto f = getFactory(resource, type);
69 //Convert the std::shared_ptr to a QSharedPointer
70 map.insert(type, DomainTypeAdaptorFactoryInterface::Ptr(f.get(), [](DomainTypeAdaptorFactoryInterface *) {}));
71 }
72 return map;
73}
74
64void AdaptorFactoryRegistry::registerFactory(const QByteArray &resource, const std::shared_ptr<void> &instance, const QByteArray typeName) 75void AdaptorFactoryRegistry::registerFactory(const QByteArray &resource, const std::shared_ptr<void> &instance, const QByteArray typeName)
65{ 76{
77 mTypes.insert(resource, typeName);
66 mRegistry.insert(key(resource, typeName), instance); 78 mRegistry.insert(key(resource, typeName), instance);
67} 79}
68 80