From c1475df297975b403d991f69ef9436cd576c1e46 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Sun, 1 May 2016 16:21:28 +0200 Subject: Setter and getter for blob properties --- common/domain/applicationdomaintype.cpp | 25 +++++++++++++++++++++++++ common/domain/applicationdomaintype.h | 5 +++++ 2 files changed, 30 insertions(+) (limited to 'common') diff --git a/common/domain/applicationdomaintype.cpp b/common/domain/applicationdomaintype.cpp index 73143e8..23a63a7 100644 --- a/common/domain/applicationdomaintype.cpp +++ b/common/domain/applicationdomaintype.cpp @@ -20,6 +20,8 @@ #include "applicationdomaintype.h" #include "log.h" #include "../bufferadaptor.h" +#include "definitions.h" +#include namespace Sink { namespace ApplicationDomain { @@ -86,6 +88,29 @@ void ApplicationDomainType::setProperty(const QByteArray &key, const QVariant &v mAdaptor->setProperty(key, value); } +QByteArray ApplicationDomainType::getBlobProperty(const QByteArray &key) const +{ + const auto path = getProperty(key).toByteArray(); + QFile file(path); + if (!file.open(QIODevice::ReadOnly)) { + ErrorMsg() << "Failed to open the file: " << file.errorString() << path; + return QByteArray(); + } + return file.readAll(); +} + +void ApplicationDomainType::setBlobProperty(const QByteArray &key, const QByteArray &value) +{ + const auto path = Sink::temporaryFileLocation() + "/" + QUuid::createUuid().toString(); + QFile file(path); + if (!file.open(QIODevice::WriteOnly)) { + ErrorMsg() << "Failed to open the file: " << file.errorString() << path; + return; + } + file.write(value); + setProperty(key, path); +} + void ApplicationDomainType::setChangedProperties(const QSet &changeset) { mChangeSet = changeset; diff --git a/common/domain/applicationdomaintype.h b/common/domain/applicationdomaintype.h index c94a987..e00b244 100644 --- a/common/domain/applicationdomaintype.h +++ b/common/domain/applicationdomaintype.h @@ -67,8 +67,13 @@ public: virtual ~ApplicationDomainType(); bool hasProperty(const QByteArray &key) const; + QVariant getProperty(const QByteArray &key) const; void setProperty(const QByteArray &key, const QVariant &value); + + QByteArray getBlobProperty(const QByteArray &key) const; + void setBlobProperty(const QByteArray &key, const QByteArray &value); + void setChangedProperties(const QSet &changeset); QByteArrayList changedProperties() const; QByteArrayList availableProperties() const; -- cgit v1.2.3