Dump service was added
This commit is contained in:
62
services/dumpservice.cpp
Normal file
62
services/dumpservice.cpp
Normal file
@@ -0,0 +1,62 @@
|
||||
#include "dumpservice.h"
|
||||
|
||||
#include <QFile>
|
||||
#include <QJsonDocument>
|
||||
#include <QJsonArray>
|
||||
#include <QJsonObject>
|
||||
#include <QStandardPaths>
|
||||
|
||||
void DumpService::setEntityName(const QString &name)
|
||||
{
|
||||
m_entityName = name;
|
||||
}
|
||||
|
||||
void DumpService::dump(const QVariant &data) const
|
||||
{
|
||||
QFile stash(dumpFileName());
|
||||
if (stash.open(QIODevice::WriteOnly)) {
|
||||
stash.write(QJsonDocument::fromVariant(data).toJson(QJsonDocument::Compact));
|
||||
stash.close();
|
||||
} else {
|
||||
qWarning() << stash.errorString();
|
||||
}
|
||||
}
|
||||
|
||||
QVariantList DumpService::loadList() const
|
||||
{
|
||||
QJsonDocument dump = readFile();
|
||||
return dump.array().toVariantList();
|
||||
}
|
||||
|
||||
QVariantMap DumpService::loadMap() const
|
||||
{
|
||||
QJsonDocument dump = readFile();
|
||||
return dump.object().toVariantMap();
|
||||
}
|
||||
|
||||
void DumpService::clear() const
|
||||
{
|
||||
QFile::remove(dumpFileName());
|
||||
}
|
||||
|
||||
QString DumpService::dumpFileName() const
|
||||
{
|
||||
Q_ASSERT(!m_entityName.isEmpty());
|
||||
|
||||
return QString("%1/%2.dump").arg(QStandardPaths::writableLocation(QStandardPaths::CacheLocation), m_entityName);
|
||||
}
|
||||
|
||||
QJsonDocument DumpService::readFile() const
|
||||
{
|
||||
QJsonDocument res;
|
||||
|
||||
QFile dump(dumpFileName());
|
||||
if (dump.open(QIODevice::ReadOnly)) {
|
||||
res = QJsonDocument::fromJson(dump.readAll());
|
||||
dump.close();
|
||||
} else {
|
||||
qWarning() << dump.errorString();
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
Reference in New Issue
Block a user