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