dumpservice.cpp 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #include "dumpservice.h"
  2. #include <QFile>
  3. #include <QJsonDocument>
  4. #include <QJsonArray>
  5. #include <QJsonObject>
  6. #include <QStandardPaths>
  7. void DumpService::setEntityName(const QString &name)
  8. {
  9. m_entityName = name;
  10. }
  11. void DumpService::dump(const QVariant &data) const
  12. {
  13. QFile stash(dumpFileName());
  14. if (stash.open(QIODevice::WriteOnly)) {
  15. stash.write(QJsonDocument::fromVariant(data).toJson(QJsonDocument::Compact));
  16. stash.close();
  17. } else {
  18. qWarning() << stash.errorString();
  19. }
  20. }
  21. QVariantList DumpService::loadList() const
  22. {
  23. QJsonDocument dump = readFile();
  24. return dump.array().toVariantList();
  25. }
  26. QVariantMap DumpService::loadMap() const
  27. {
  28. QJsonDocument dump = readFile();
  29. return dump.object().toVariantMap();
  30. }
  31. void DumpService::clear() const
  32. {
  33. QFile::remove(dumpFileName());
  34. }
  35. QString DumpService::dumpFileName() const
  36. {
  37. Q_ASSERT(!m_entityName.isEmpty());
  38. return QString("%1/%2.dump").arg(QStandardPaths::writableLocation(QStandardPaths::CacheLocation), m_entityName);
  39. }
  40. QJsonDocument DumpService::readFile() const
  41. {
  42. QJsonDocument res;
  43. QFile dump(dumpFileName());
  44. if (dump.open(QIODevice::ReadOnly)) {
  45. res = QJsonDocument::fromJson(dump.readAll());
  46. dump.close();
  47. } else {
  48. qWarning() << dump.errorString();
  49. }
  50. return res;
  51. }