diff options
Diffstat (limited to 'common/adaptorfactoryregistry.cpp')
-rw-r--r-- | common/adaptorfactoryregistry.cpp | 12 |
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 | ||
64 | QMap<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 | |||
64 | void AdaptorFactoryRegistry::registerFactory(const QByteArray &resource, const std::shared_ptr<void> &instance, const QByteArray typeName) | 75 | void 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 | ||