From bee6d7d793732d4ebbcb7f48b7622bd124f22f13 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Mon, 10 Aug 2015 01:09:29 +0200 Subject: Use the new transaction api in hawd --- tests/hawd/dataset.cpp | 29 +++++++++++++---------------- tests/hawd/dataset.h | 3 ++- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/tests/hawd/dataset.cpp b/tests/hawd/dataset.cpp index b068b66..96479e0 100644 --- a/tests/hawd/dataset.cpp +++ b/tests/hawd/dataset.cpp @@ -94,7 +94,7 @@ qint64 Dataset::Row::key() const return m_key; } -void Dataset::Row::fromBinary(QByteArray &data) +void Dataset::Row::fromBinary(QByteArray data) { QVariant value; QString key; @@ -210,14 +210,14 @@ QString Dataset::Row::toString(const QStringList &cols, int standardCols, const Dataset::Dataset(const QString &name, const State &state) : m_definition(state.datasetDefinition(name)), m_storage(state.resultsPath(), name, Akonadi2::Storage::ReadWrite), - m_commitHash(state.commitHash()) + m_commitHash(state.commitHash()), + m_transaction(std::move(m_storage.createTransaction())) { - m_storage.startTransaction(); } Dataset::~Dataset() { - m_storage.commitTransaction(); + m_transaction.commit(); } bool Dataset::isValid() const @@ -237,8 +237,7 @@ qint64 Dataset::insertRow(const Row &row) } qint64 key = row.key(); - QByteArray data = row.toBinary(); - m_storage.write((const char *)&key, sizeof(qint64), data.constData(), data.size()); + m_transaction.write(QByteArray::fromRawData((const char *)&key, sizeof(qint64)), row.toBinary()); return key; } @@ -254,15 +253,14 @@ void Dataset::eachRow(const std::function &resultHandler) } Row row(*this); - m_storage.scan("", - [&](void *key, int keySize, void *data, int dataSize) -> bool { - if (keySize != sizeof(qint64)) { + m_transaction.scan("", + [&](const QByteArray &key, const QByteArray &value) -> bool { + if (key.size() != sizeof(qint64)) { return true; } - QByteArray array((const char*)data, dataSize); - row.fromBinary(array); - row.m_key = *(qint64 *)key; + row.fromBinary(value); + row.m_key = *(qint64 *)key.data(); resultHandler(row); return true; }, @@ -278,10 +276,9 @@ Dataset::Row Dataset::row(qint64 key) } Row row(*this, key); - m_storage.scan(QByteArray::fromRawData((const char *)&key, sizeof(qint64)), - [&row](void *keyPtr, int keyLength, void *valuePtr, int valueSize) -> bool { - QByteArray array((const char*)valuePtr, valueSize); - row.fromBinary(array); + m_transaction.scan(QByteArray::fromRawData((const char *)&key, sizeof(qint64)), + [&row](const QByteArray &key, const QByteArray &value) -> bool { + row.fromBinary(value); return true; }, Akonadi2::Storage::basicErrorHandler() diff --git a/tests/hawd/dataset.h b/tests/hawd/dataset.h index 9ef162c..b6aa863 100644 --- a/tests/hawd/dataset.h +++ b/tests/hawd/dataset.h @@ -57,7 +57,7 @@ public: private: Row(); Row(const Dataset &dataset, qint64 key = 0); - void fromBinary(QByteArray &binary); + void fromBinary(QByteArray binary); qint64 m_key; QHash m_columns; @@ -85,6 +85,7 @@ public: private: DatasetDefinition m_definition; Akonadi2::Storage m_storage; + Akonadi2::Storage::Transaction m_transaction; QString m_commitHash; }; -- cgit v1.2.3