summaryrefslogtreecommitdiffstats
path: root/common/resourcefacade.h
diff options
context:
space:
mode:
Diffstat (limited to 'common/resourcefacade.h')
-rw-r--r--common/resourcefacade.h71
1 files changed, 42 insertions, 29 deletions
diff --git a/common/resourcefacade.h b/common/resourcefacade.h
index 0deb017..e7e39d3 100644
--- a/common/resourcefacade.h
+++ b/common/resourcefacade.h
@@ -31,6 +31,47 @@ class Query;
31class Inspection; 31class Inspection;
32} 32}
33 33
34class ConfigNotifier : public QObject
35{
36 Q_OBJECT
37public:
38 void add(const Sink::ApplicationDomain::ApplicationDomainType::Ptr &account)
39 {
40 emit added(account);
41 }
42
43 void remove(const Sink::ApplicationDomain::ApplicationDomainType::Ptr &account)
44 {
45 emit removed(account);
46 }
47
48 void modify(const Sink::ApplicationDomain::ApplicationDomainType::Ptr &account)
49 {
50 emit modified(account);
51 }
52signals:
53 void added(const Sink::ApplicationDomain::ApplicationDomainType::Ptr &account);
54 void removed(const Sink::ApplicationDomain::ApplicationDomainType::Ptr &account);
55 void modified(const Sink::ApplicationDomain::ApplicationDomainType::Ptr &account);
56};
57
58template <typename DomainType>
59class LocalStorageFacade : public Sink::StoreFacade<DomainType>
60{
61public:
62 LocalStorageFacade(const QByteArray &instanceIdentifier);
63 virtual ~LocalStorageFacade();
64 virtual KAsync::Job<void> create(const DomainType &resource) Q_DECL_OVERRIDE;
65 virtual KAsync::Job<void> modify(const DomainType &resource) Q_DECL_OVERRIDE;
66 virtual KAsync::Job<void> remove(const DomainType &resource) Q_DECL_OVERRIDE;
67 virtual QPair<KAsync::Job<void>, typename Sink::ResultEmitter<typename DomainType::Ptr>::Ptr> load(const Sink::Query &query) Q_DECL_OVERRIDE;
68private:
69 typename DomainType::Ptr readFromConfig(const QByteArray &id, const QByteArray &type);
70
71 ConfigStore mConfigStore;
72 static ConfigNotifier sConfigNotifier;
73};
74
34class ResourceFacade : public Sink::StoreFacade<Sink::ApplicationDomain::SinkResource> 75class ResourceFacade : public Sink::StoreFacade<Sink::ApplicationDomain::SinkResource>
35{ 76{
36public: 77public:
@@ -42,39 +83,11 @@ public:
42 QPair<KAsync::Job<void>, typename Sink::ResultEmitter<Sink::ApplicationDomain::SinkResource::Ptr>::Ptr> load(const Sink::Query &query) Q_DECL_OVERRIDE; 83 QPair<KAsync::Job<void>, typename Sink::ResultEmitter<Sink::ApplicationDomain::SinkResource::Ptr>::Ptr> load(const Sink::Query &query) Q_DECL_OVERRIDE;
43}; 84};
44 85
45class AccountFacade : public Sink::StoreFacade<Sink::ApplicationDomain::SinkAccount> 86class AccountFacade : public LocalStorageFacade<Sink::ApplicationDomain::SinkAccount>
46{ 87{
47public: 88public:
48 AccountFacade(const QByteArray &instanceIdentifier); 89 AccountFacade(const QByteArray &instanceIdentifier);
49 virtual ~AccountFacade(); 90 virtual ~AccountFacade();
50 KAsync::Job<void> create(const Sink::ApplicationDomain::SinkAccount &resource) Q_DECL_OVERRIDE;
51 KAsync::Job<void> modify(const Sink::ApplicationDomain::SinkAccount &resource) Q_DECL_OVERRIDE;
52 KAsync::Job<void> remove(const Sink::ApplicationDomain::SinkAccount &resource) Q_DECL_OVERRIDE;
53 QPair<KAsync::Job<void>, typename Sink::ResultEmitter<Sink::ApplicationDomain::SinkAccount::Ptr>::Ptr> load(const Sink::Query &query) Q_DECL_OVERRIDE;
54private:
55 ConfigStore mConfigStore;
56}; 91};
57 92
58class ConfigNotifier : public QObject
59{
60 Q_OBJECT
61public:
62 void add(const Sink::ApplicationDomain::SinkAccount::Ptr &account)
63 {
64 emit added(account);
65 }
66
67 void remove(const Sink::ApplicationDomain::SinkAccount::Ptr &account)
68 {
69 emit removed(account);
70 }
71 93
72 void modify(const Sink::ApplicationDomain::SinkAccount::Ptr &account)
73 {
74 emit modified(account);
75 }
76signals:
77 void added(const Sink::ApplicationDomain::SinkAccount::Ptr &account);
78 void removed(const Sink::ApplicationDomain::SinkAccount::Ptr &account);
79 void modified(const Sink::ApplicationDomain::SinkAccount::Ptr &account);
80};