diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2015-10-21 14:10:07 +0200 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2015-10-21 14:10:07 +0200 |
commit | 264fb692ccd122e53c7592a26447ed8281179c8b (patch) | |
tree | ea27c846fe1b478505937d1f8f407e1808e8aaaf | |
parent | af0f69d6c267d231d01b69525b91add8309e43e0 (diff) | |
download | sink-264fb692ccd122e53c7592a26447ed8281179c8b.tar.gz sink-264fb692ccd122e53c7592a26447ed8281179c8b.zip |
Avoid hardcoding a made-up resource type for config that doesn't belong
to a resource
-rw-r--r-- | common/clientapi.h | 13 | ||||
-rw-r--r-- | common/facadefactory.cpp | 2 | ||||
-rw-r--r-- | tests/clientapitest.cpp | 3 |
3 files changed, 10 insertions, 8 deletions
diff --git a/common/clientapi.h b/common/clientapi.h index 6237cfb..c4125bd 100644 --- a/common/clientapi.h +++ b/common/clientapi.h | |||
@@ -62,14 +62,19 @@ public: | |||
62 | return Akonadi2::resourceName(instanceIdentifier); | 62 | return Akonadi2::resourceName(instanceIdentifier); |
63 | } | 63 | } |
64 | 64 | ||
65 | static QList<QByteArray> getResources(const QList<QByteArray> &resourceFilter) | 65 | static QList<QByteArray> getResources(const QList<QByteArray> &resourceFilter, const QByteArray &type) |
66 | { | 66 | { |
67 | //Return the global resource (signified by an empty name) for types that don't eblong to a specific resource | ||
68 | if (type == "akonadiresource") { | ||
69 | return QList<QByteArray>() << ""; | ||
70 | } | ||
67 | QList<QByteArray> resources; | 71 | QList<QByteArray> resources; |
68 | const auto configuredResources = ResourceConfig::getResources(); | 72 | const auto configuredResources = ResourceConfig::getResources(); |
69 | if (resourceFilter.isEmpty()) { | 73 | if (resourceFilter.isEmpty()) { |
70 | for (const auto &res : configuredResources) { | 74 | for (const auto &res : configuredResources) { |
71 | //TODO filter by type | 75 | if (configuredResources.value(res) == type) { |
72 | resources << res; | 76 | resources << res; |
77 | } | ||
73 | } | 78 | } |
74 | } else { | 79 | } else { |
75 | for (const auto &res : resourceFilter) { | 80 | for (const auto &res : resourceFilter) { |
@@ -100,7 +105,7 @@ public: | |||
100 | eventLoop.quit(); | 105 | eventLoop.quit(); |
101 | }); | 106 | }); |
102 | // Query all resources and aggregate results | 107 | // Query all resources and aggregate results |
103 | KAsync::iterate(getResources(query.resources)) | 108 | KAsync::iterate(getResources(query.resources, ApplicationDomain::getTypeName<DomainType>())) |
104 | .template each<void, QByteArray>([query, resultSet](const QByteArray &resource, KAsync::Future<void> &future) { | 109 | .template each<void, QByteArray>([query, resultSet](const QByteArray &resource, KAsync::Future<void> &future) { |
105 | auto facade = FacadeFactory::instance().getFacade<DomainType>(resourceName(resource), resource); | 110 | auto facade = FacadeFactory::instance().getFacade<DomainType>(resourceName(resource), resource); |
106 | if (facade) { | 111 | if (facade) { |
diff --git a/common/facadefactory.cpp b/common/facadefactory.cpp index f833b06..64a466d 100644 --- a/common/facadefactory.cpp +++ b/common/facadefactory.cpp | |||
@@ -54,7 +54,7 @@ void FacadeFactory::resetFactory() | |||
54 | 54 | ||
55 | void FacadeFactory::registerStaticFacades() | 55 | void FacadeFactory::registerStaticFacades() |
56 | { | 56 | { |
57 | registerFacade<Akonadi2::ApplicationDomain::AkonadiResource, ResourceFacade>("resourceconfig"); | 57 | registerFacade<Akonadi2::ApplicationDomain::AkonadiResource, ResourceFacade>(QByteArray()); |
58 | } | 58 | } |
59 | 59 | ||
60 | std::shared_ptr<void> FacadeFactory::getFacade(const QByteArray &resource, const QByteArray &instanceIdentifier, const QByteArray &typeName) | 60 | std::shared_ptr<void> FacadeFactory::getFacade(const QByteArray &resource, const QByteArray &instanceIdentifier, const QByteArray &typeName) |
diff --git a/tests/clientapitest.cpp b/tests/clientapitest.cpp index 8779716..231e773 100644 --- a/tests/clientapitest.cpp +++ b/tests/clientapitest.cpp | |||
@@ -89,7 +89,6 @@ private Q_SLOTS: | |||
89 | { | 89 | { |
90 | ResourceConfig::clear(); | 90 | ResourceConfig::clear(); |
91 | Akonadi2::FacadeFactory::instance().registerStaticFacades(); | 91 | Akonadi2::FacadeFactory::instance().registerStaticFacades(); |
92 | ResourceConfig::addResource("resourceconfig", "resourceconfig"); | ||
93 | 92 | ||
94 | Akonadi2::ApplicationDomain::AkonadiResource res; | 93 | Akonadi2::ApplicationDomain::AkonadiResource res; |
95 | res.setProperty("identifier", "dummyresource.identifier1"); | 94 | res.setProperty("identifier", "dummyresource.identifier1"); |
@@ -98,7 +97,6 @@ private Q_SLOTS: | |||
98 | Akonadi2::Store::create(res).exec().waitForFinished(); | 97 | Akonadi2::Store::create(res).exec().waitForFinished(); |
99 | { | 98 | { |
100 | Akonadi2::Query query; | 99 | Akonadi2::Query query; |
101 | query.resources << "resourceconfig"; | ||
102 | query.propertyFilter.insert("type", "dummyresource"); | 100 | query.propertyFilter.insert("type", "dummyresource"); |
103 | async::SyncListResult<Akonadi2::ApplicationDomain::AkonadiResource::Ptr> result(Akonadi2::Store::load<Akonadi2::ApplicationDomain::AkonadiResource>(query)); | 101 | async::SyncListResult<Akonadi2::ApplicationDomain::AkonadiResource::Ptr> result(Akonadi2::Store::load<Akonadi2::ApplicationDomain::AkonadiResource>(query)); |
104 | result.exec(); | 102 | result.exec(); |
@@ -108,7 +106,6 @@ private Q_SLOTS: | |||
108 | Akonadi2::Store::remove(res).exec().waitForFinished(); | 106 | Akonadi2::Store::remove(res).exec().waitForFinished(); |
109 | { | 107 | { |
110 | Akonadi2::Query query; | 108 | Akonadi2::Query query; |
111 | query.resources << "resourceconfig"; | ||
112 | query.propertyFilter.insert("type", "dummyresource"); | 109 | query.propertyFilter.insert("type", "dummyresource"); |
113 | async::SyncListResult<Akonadi2::ApplicationDomain::AkonadiResource::Ptr> result(Akonadi2::Store::load<Akonadi2::ApplicationDomain::AkonadiResource>(query)); | 110 | async::SyncListResult<Akonadi2::ApplicationDomain::AkonadiResource::Ptr> result(Akonadi2::Store::load<Akonadi2::ApplicationDomain::AkonadiResource>(query)); |
114 | result.exec(); | 111 | result.exec(); |