qbolt/qbolt/boltdb.h

47 lines
1.4 KiB
C++

#ifndef BOLTDB_H
#define BOLTDB_H
#include "interop.h"
#include <functional>
typedef std::function<void(QByteArray)> NameReciever;
class BoltDB
{
protected:
BoltDB();
GoInt64 gmsDbRef;
public:
static BoltDB* createFrom(QString filePath, QString &errorOut);
bool listBucketsAtRoot(QString& errorOut, NameReciever cb);
bool listBuckets(QStringList bucketPath, QString& errorOut, NameReciever cb);
bool addBucket(QStringList bucketPath, QByteArray bucketName, QString& errorOut);
bool deleteBucket(QStringList bucketPath, QByteArray bucketName, QString& errorOut);
bool setItem(QStringList bucketPath, QByteArray keyName, QByteArray value, QString& errorOut);
bool deleteItem(QStringList bucketPath, QByteArray keyName, QString& errorOut);
bool listKeys(QStringList bucketPath, QString& errorOut, std::function<void(QByteArray, int64_t)> cb);
bool getData(QStringList bucketPath, QByteArray key, std::function<void(QByteArray)> onSuccess, std::function<void(QString)> onError);
bool getStatsJSON(std::function<void(QByteArray)> onSuccess, std::function<void(QString)> onError);
bool getBucketStatsJSON(QStringList bucketPath, std::function<void(QByteArray)> onSuccess, std::function<void(QString)> onError);
~BoltDB();
protected:
bool pumpNext(GoInt64 jobRef, QString& errorOut, NameReciever cb);
};
#endif // BOLTDB_H