diff --git a/qbolt/boltdb.cpp b/qbolt/boltdb.cpp index 54f113b..2aa8db3 100644 --- a/qbolt/boltdb.cpp +++ b/qbolt/boltdb.cpp @@ -45,27 +45,27 @@ static bool handleTriple(int r0, char* r1, int64_t r2, QString& errorOut) { } } -bool BoltDB::addBucket(QStringList bucketPath, QByteArray bucketName, QString& errorOut) +bool BoltDB::addBucket(const QList& bucketPath, QByteArray bucketName, QString& errorOut) { - GoSliceManagedWrapper browse(&bucketPath); + GoSliceManagedWrapper browse(bucketPath); GoString bucketNameGS = Interop::toGoString_WeakRef(&bucketName); auto resp = ::Bolt_CreateBucket(this->gmsDbRef, browse.slice, bucketNameGS); return handleTriple(resp.r0, resp.r1, resp.r2, errorOut); } -bool BoltDB::deleteBucket(QStringList bucketPath, QByteArray bucketName, QString& errorOut) +bool BoltDB::deleteBucket(const QList& bucketPath, QByteArray bucketName, QString& errorOut) { - GoSliceManagedWrapper browse(&bucketPath); + GoSliceManagedWrapper browse(bucketPath); GoString bucketNameGS = Interop::toGoString_WeakRef(&bucketName); auto resp = ::Bolt_DeleteBucket(this->gmsDbRef, browse.slice, bucketNameGS); return handleTriple(resp.r0, resp.r1, resp.r2, errorOut); } -bool BoltDB::setItem(QStringList bucketPath, QByteArray keyName, QByteArray value, QString& errorOut) +bool BoltDB::setItem(const QList& bucketPath, QByteArray keyName, QByteArray value, QString& errorOut) { - GoSliceManagedWrapper browse(&bucketPath); + GoSliceManagedWrapper browse(bucketPath); GoString keyNameGS = Interop::toGoString_WeakRef(&keyName); GoString valueGS = Interop::toGoString_WeakRef(&value); auto resp = ::Bolt_SetItem(this->gmsDbRef, browse.slice, keyNameGS, valueGS); @@ -73,9 +73,9 @@ bool BoltDB::setItem(QStringList bucketPath, QByteArray keyName, QByteArray valu return handleTriple(resp.r0, resp.r1, resp.r2, errorOut); } -bool BoltDB::deleteItem(QStringList bucketPath, QByteArray keyName, QString& errorOut) +bool BoltDB::deleteItem(const QList& bucketPath, QByteArray keyName, QString& errorOut) { - GoSliceManagedWrapper browse(&bucketPath); + GoSliceManagedWrapper browse(bucketPath); GoString keyNameGS = Interop::toGoString_WeakRef(&keyName); auto resp = ::Bolt_DeleteItem(this->gmsDbRef, browse.slice, keyNameGS); @@ -89,20 +89,20 @@ bool BoltDB::listBucketsAtRoot(QString& errorOut, NameReciever cb) return pumpNext(listJob, errorOut, cb); } -bool BoltDB::listBuckets(QStringList bucketPath, QString& errorOut, NameReciever cb) +bool BoltDB::listBuckets(const QList& bucketPath, QString& errorOut, NameReciever cb) { if (bucketPath.size() == 0) { return listBucketsAtRoot(errorOut, cb); } - GoSliceManagedWrapper browse(&bucketPath); + GoSliceManagedWrapper browse(bucketPath); auto listJob = ::Bolt_ListBuckets(this->gmsDbRef, browse.slice); return pumpNext(listJob, errorOut, cb); } -bool BoltDB::listKeys(QStringList bucketPath, QString& errorOut, std::function cb) +bool BoltDB::listKeys(const QList& bucketPath, QString& errorOut, std::function cb) { - GoSliceManagedWrapper browse(&bucketPath); + GoSliceManagedWrapper browse(bucketPath); auto listJob = ::Bolt_ListItems(this->gmsDbRef, browse.slice); return pumpNext(listJob, errorOut, [=](QByteArray b) { // First 8 bytes are little-endian uint64 len @@ -111,9 +111,9 @@ bool BoltDB::listKeys(QStringList bucketPath, QString& errorOut, std::function onSuccess, std::function onError) +bool BoltDB::getData(const QList& bucketPath, QByteArray key, std::function onSuccess, std::function onError) { - GoSliceManagedWrapper browse(&bucketPath); + GoSliceManagedWrapper browse(bucketPath); GoString keyGS = Interop::toGoString_WeakRef(&key); auto resp = ::Bolt_GetItem(this->gmsDbRef, browse.slice, keyGS); @@ -185,9 +185,9 @@ bool BoltDB::getStatsJSON(std::function onSuccess, std::functi } } -bool BoltDB::getBucketStatsJSON(QStringList bucketPath, std::function onSuccess, std::function onError) +bool BoltDB::getBucketStatsJSON(const QList& bucketPath, std::function onSuccess, std::function onError) { - GoSliceManagedWrapper sliceWrapper(&bucketPath); + GoSliceManagedWrapper sliceWrapper(bucketPath); auto statresp = Bolt_BucketStats(this->gmsDbRef, sliceWrapper.slice); if (statresp.r0 == ERROR_AND_STOP_CALLING) { diff --git a/qbolt/boltdb.h b/qbolt/boltdb.h index 1986a42..65fe09e 100644 --- a/qbolt/boltdb.h +++ b/qbolt/boltdb.h @@ -18,23 +18,23 @@ public: bool listBucketsAtRoot(QString& errorOut, NameReciever cb); - bool listBuckets(QStringList bucketPath, QString& errorOut, NameReciever cb); + bool listBuckets(const QList& bucketPath, QString& errorOut, NameReciever cb); - bool addBucket(QStringList bucketPath, QByteArray bucketName, QString& errorOut); + bool addBucket(const QList& bucketPath, QByteArray bucketName, QString& errorOut); - bool deleteBucket(QStringList bucketPath, QByteArray bucketName, QString& errorOut); + bool deleteBucket(const QList& bucketPath, QByteArray bucketName, QString& errorOut); - bool setItem(QStringList bucketPath, QByteArray keyName, QByteArray value, QString& errorOut); + bool setItem(const QList& bucketPath, QByteArray keyName, QByteArray value, QString& errorOut); - bool deleteItem(QStringList bucketPath, QByteArray keyName, QString& errorOut); + bool deleteItem(const QList& bucketPath, QByteArray keyName, QString& errorOut); - bool listKeys(QStringList bucketPath, QString& errorOut, std::function cb); + bool listKeys(const QList& bucketPath, QString& errorOut, std::function cb); - bool getData(QStringList bucketPath, QByteArray key, std::function onSuccess, std::function onError); + bool getData(const QList& bucketPath, QByteArray key, std::function onSuccess, std::function onError); bool getStatsJSON(std::function onSuccess, std::function onError); - bool getBucketStatsJSON(QStringList bucketPath, std::function onSuccess, std::function onError); + bool getBucketStatsJSON(const QList& bucketPath, std::function onSuccess, std::function onError); ~BoltDB(); diff --git a/qbolt/interop.cpp b/qbolt/interop.cpp index e2027d7..a4e173f 100644 --- a/qbolt/interop.cpp +++ b/qbolt/interop.cpp @@ -17,22 +17,22 @@ int64_t Interop::GetMagic() { // -GoSliceManagedWrapper::GoSliceManagedWrapper(QStringList *qsl) : +GoSliceManagedWrapper::GoSliceManagedWrapper(const QList& qsl) : rawStrings(), slice(), strings(nullptr) { - rawStrings.reserve(qsl->size()); - strings = new GoString[qsl->size()]; + rawStrings.reserve(qsl.size()); + strings = new GoString[qsl.size()]; - for (int i = 0; i < qsl->size(); ++i) { - rawStrings.push_back( qsl->at(i).toUtf8() ); + for (int i = 0; i < qsl.size(); ++i) { + rawStrings.push_back( qsl.at(i) ); strings[i].p = rawStrings[i].data(); strings[i].n = rawStrings[i].size(); } slice.data = static_cast(strings); - slice.len = qsl->size(); // * sizeof(GoString); + slice.len = qsl.size(); // * sizeof(GoString); slice.cap = slice.len; } diff --git a/qbolt/interop.h b/qbolt/interop.h index 02d9c30..fabb163 100644 --- a/qbolt/interop.h +++ b/qbolt/interop.h @@ -9,7 +9,7 @@ class GoSliceManagedWrapper { Q_DISABLE_COPY(GoSliceManagedWrapper) public: - GoSliceManagedWrapper(QStringList *qsl); + GoSliceManagedWrapper(const QList& qsl); ~GoSliceManagedWrapper(); protected: QList rawStrings; diff --git a/qbolt/mainwindow.cpp b/qbolt/mainwindow.cpp index 67d3e33..d149055 100644 --- a/qbolt/mainwindow.cpp +++ b/qbolt/mainwindow.cpp @@ -117,9 +117,9 @@ static const QString getDisplayName(const QByteArray &qba) { void MainWindow::refreshBucketTree(QTreeWidgetItem* itm) { QTreeWidgetItem *top = itm; - QStringList browsePath; + QList browsePath; while(top->parent() != nullptr) { - browsePath.push_front(top->text(0)); + browsePath.push_front(top->data(0, BinaryDataRole).toByteArray()); top = top->parent(); } @@ -252,10 +252,10 @@ void MainWindow::on_bucketTree_currentItemChanged(QTreeWidgetItem *current, QTre ui->stackedWidget->setCurrentWidget(ui->bucketPage); ui->bucketPropertiesArea->clear(); - QStringList browse; + QList browse; QTreeWidgetItem *top = current; while (top->parent() != nullptr) { - browse.push_front(top->text(0)); + browse.push_front(top->data(0, BinaryDataRole).toByteArray()); top = top->parent(); } auto *bdb = GET_BDB(top); @@ -279,7 +279,7 @@ void MainWindow::on_bucketTree_currentItemChanged(QTreeWidgetItem *current, QTre } } -void MainWindow::refreshData(BoltDB *bdb, QStringList browse) +void MainWindow::refreshData(BoltDB *bdb, const QList& browse) { // Load the data tab ui->bucketData->clear(); @@ -313,14 +313,14 @@ void MainWindow::on_actionClear_selection_triggered() return; \ } \ QTreeWidgetItem* top = itm; \ - QStringList browse; \ + QList browse; \ while(top->parent() != nullptr) { \ - browse.push_front(top->text(0)); \ + browse.push_front(top->data(0, BinaryDataRole).toByteArray()); \ top = top->parent(); \ } \ auto *bdb = GET_BDB(top); -void MainWindow::openEditor(BoltDB *bdb, QStringList saveAs, QByteArray saveAsKey, QByteArray currentContent) +void MainWindow::openEditor(BoltDB *bdb, const QList& saveAs, QByteArray saveAsKey, QByteArray currentContent) { auto iw = new ItemWindow(); iw->ContentArea()->setPlainText(QString::fromUtf8(currentContent)); diff --git a/qbolt/mainwindow.h b/qbolt/mainwindow.h index 6e20805..ae541c8 100644 --- a/qbolt/mainwindow.h +++ b/qbolt/mainwindow.h @@ -56,8 +56,8 @@ private slots: protected: void openDatabase(QString file, bool readOnly); void refreshBucketTree(QTreeWidgetItem* top); - void refreshData(BoltDB *bdb, QStringList browse); - void openEditor(BoltDB *bdb, QStringList saveAs, QByteArray saveAsKey, QByteArray currentContent); + void refreshData(BoltDB *bdb, const QList& browse); + void openEditor(BoltDB *bdb, const QList& saveAs, QByteArray saveAsKey, QByteArray currentContent); private: Ui::MainWindow *ui;