summaryrefslogtreecommitdiffstats
path: root/common/domain
diff options
context:
space:
mode:
Diffstat (limited to 'common/domain')
-rw-r--r--common/domain/applicationdomaintype.cpp46
-rw-r--r--common/domain/applicationdomaintype.h58
-rw-r--r--common/domain/event.h3
3 files changed, 61 insertions, 46 deletions
diff --git a/common/domain/applicationdomaintype.cpp b/common/domain/applicationdomaintype.cpp
index 3cc075b..78a667e 100644
--- a/common/domain/applicationdomaintype.cpp
+++ b/common/domain/applicationdomaintype.cpp
@@ -18,10 +18,56 @@
18 * License along with this library. If not, see <http://www.gnu.org/licenses/>. 18 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
19 */ 19 */
20#include "applicationdomaintype.h" 20#include "applicationdomaintype.h"
21#include "../bufferadaptor.h"
21 22
22namespace Akonadi2 { 23namespace Akonadi2 {
23namespace ApplicationDomain { 24namespace ApplicationDomain {
24 25
26ApplicationDomainType::ApplicationDomainType()
27 :mAdaptor(new MemoryBufferAdaptor())
28{
29
30}
31
32ApplicationDomainType::ApplicationDomainType(const QByteArray &resourceInstanceIdentifier)
33 :mAdaptor(new MemoryBufferAdaptor()),
34 mResourceInstanceIdentifier(resourceInstanceIdentifier)
35{
36
37}
38
39ApplicationDomainType::ApplicationDomainType(const QByteArray &resourceInstanceIdentifier, const QByteArray &identifier, qint64 revision, const QSharedPointer<BufferAdaptor> &adaptor)
40 : mAdaptor(adaptor),
41 mResourceInstanceIdentifier(resourceInstanceIdentifier),
42 mIdentifier(identifier),
43 mRevision(revision)
44{
45}
46
47ApplicationDomainType::ApplicationDomainType(const ApplicationDomainType &other)
48{
49 *this = other;
50}
51
52ApplicationDomainType& ApplicationDomainType::operator=(const ApplicationDomainType &other)
53{
54 mAdaptor = other.mAdaptor;
55 mChangeSet = other.mChangeSet;
56 mResourceInstanceIdentifier = other.mResourceInstanceIdentifier;
57 mIdentifier = other.mIdentifier;
58 mRevision = other.mRevision;
59 return *this;
60}
61
62ApplicationDomainType::~ApplicationDomainType() {}
63
64QVariant ApplicationDomainType::getProperty(const QByteArray &key) const { return mAdaptor->getProperty(key); }
65void ApplicationDomainType::setProperty(const QByteArray &key, const QVariant &value){ mChangeSet.insert(key, value); mAdaptor->setProperty(key, value); }
66QByteArrayList ApplicationDomainType::changedProperties() const { return mChangeSet.keys(); }
67qint64 ApplicationDomainType::revision() const { return mRevision; }
68QByteArray ApplicationDomainType::resourceInstanceIdentifier() const { return mResourceInstanceIdentifier; }
69QByteArray ApplicationDomainType::identifier() const { return mIdentifier; }
70
25template<> 71template<>
26QByteArray getTypeName<Event>() 72QByteArray getTypeName<Event>()
27{ 73{
diff --git a/common/domain/applicationdomaintype.h b/common/domain/applicationdomaintype.h
index bd7ff65..137eb65 100644
--- a/common/domain/applicationdomaintype.h
+++ b/common/domain/applicationdomaintype.h
@@ -22,7 +22,7 @@
22#include <QSharedPointer> 22#include <QSharedPointer>
23#include <QVariant> 23#include <QVariant>
24#include <QByteArray> 24#include <QByteArray>
25#include "../bufferadaptor.h" 25#include "bufferadaptor.h"
26 26
27namespace Akonadi2 { 27namespace Akonadi2 {
28 28
@@ -39,41 +39,11 @@ class ApplicationDomainType {
39public: 39public:
40 typedef QSharedPointer<ApplicationDomainType> Ptr; 40 typedef QSharedPointer<ApplicationDomainType> Ptr;
41 41
42 ApplicationDomainType() 42 ApplicationDomainType();
43 :mAdaptor(new MemoryBufferAdaptor()) 43 ApplicationDomainType(const QByteArray &resourceInstanceIdentifier);
44 { 44 ApplicationDomainType(const QByteArray &resourceInstanceIdentifier, const QByteArray &identifier, qint64 revision, const QSharedPointer<BufferAdaptor> &adaptor);
45 45 ApplicationDomainType(const ApplicationDomainType &other);
46 } 46 ApplicationDomainType& operator=(const ApplicationDomainType &other);
47
48 ApplicationDomainType(const QByteArray &resourceInstanceIdentifier)
49 :mAdaptor(new MemoryBufferAdaptor()),
50 mResourceInstanceIdentifier(resourceInstanceIdentifier)
51 {
52
53 }
54
55 ApplicationDomainType(const QByteArray &resourceInstanceIdentifier, const QByteArray &identifier, qint64 revision, const QSharedPointer<BufferAdaptor> &adaptor)
56 : mAdaptor(adaptor),
57 mResourceInstanceIdentifier(resourceInstanceIdentifier),
58 mIdentifier(identifier),
59 mRevision(revision)
60 {
61 }
62
63 ApplicationDomainType(const ApplicationDomainType &other)
64 {
65 *this = other;
66 }
67
68 ApplicationDomainType& operator=(const ApplicationDomainType &other)
69 {
70 mAdaptor = other.mAdaptor;
71 mChangeSet = other.mChangeSet;
72 mResourceInstanceIdentifier = other.mResourceInstanceIdentifier;
73 mIdentifier = other.mIdentifier;
74 mRevision = other.mRevision;
75 return *this;
76 }
77 47
78 template <typename DomainType> 48 template <typename DomainType>
79 static typename DomainType::Ptr getInMemoryRepresentation(const ApplicationDomainType &domainType) 49 static typename DomainType::Ptr getInMemoryRepresentation(const ApplicationDomainType &domainType)
@@ -84,14 +54,14 @@ public:
84 return QSharedPointer<DomainType>::create(domainType.mResourceInstanceIdentifier, QByteArray(domainType.mIdentifier.constData(), domainType.mIdentifier.size()), domainType.mRevision, memoryAdaptor); 54 return QSharedPointer<DomainType>::create(domainType.mResourceInstanceIdentifier, QByteArray(domainType.mIdentifier.constData(), domainType.mIdentifier.size()), domainType.mRevision, memoryAdaptor);
85 } 55 }
86 56
87 virtual ~ApplicationDomainType() {} 57 virtual ~ApplicationDomainType();
88 58
89 virtual QVariant getProperty(const QByteArray &key) const { return mAdaptor->getProperty(key); } 59 virtual QVariant getProperty(const QByteArray &key) const;
90 virtual void setProperty(const QByteArray &key, const QVariant &value){ mChangeSet.insert(key, value); mAdaptor->setProperty(key, value); } 60 virtual void setProperty(const QByteArray &key, const QVariant &value);
91 virtual QByteArrayList changedProperties() const { return mChangeSet.keys(); } 61 virtual QByteArrayList changedProperties() const;
92 qint64 revision() const { return mRevision; } 62 qint64 revision() const;
93 QByteArray resourceInstanceIdentifier() const { return mResourceInstanceIdentifier; } 63 QByteArray resourceInstanceIdentifier() const;
94 QByteArray identifier() const { return mIdentifier; } 64 QByteArray identifier() const;
95 65
96private: 66private:
97 QSharedPointer<BufferAdaptor> mAdaptor; 67 QSharedPointer<BufferAdaptor> mAdaptor;
@@ -186,3 +156,5 @@ class TypeImplementation;
186 156
187Q_DECLARE_METATYPE(Akonadi2::ApplicationDomain::ApplicationDomainType) 157Q_DECLARE_METATYPE(Akonadi2::ApplicationDomain::ApplicationDomainType)
188Q_DECLARE_METATYPE(Akonadi2::ApplicationDomain::ApplicationDomainType::Ptr) 158Q_DECLARE_METATYPE(Akonadi2::ApplicationDomain::ApplicationDomainType::Ptr)
159Q_DECLARE_METATYPE(Akonadi2::ApplicationDomain::Event)
160Q_DECLARE_METATYPE(Akonadi2::ApplicationDomain::Event::Ptr)
diff --git a/common/domain/event.h b/common/domain/event.h
index 17a0ad4..f21cd34 100644
--- a/common/domain/event.h
+++ b/common/domain/event.h
@@ -63,6 +63,3 @@ public:
63 63
64} 64}
65} 65}
66
67Q_DECLARE_METATYPE(Akonadi2::ApplicationDomain::Event)
68Q_DECLARE_METATYPE(Akonadi2::ApplicationDomain::Event::Ptr)