From 3a4e80053081ab7f5de142bfbc6589dfc2bc6e2d Mon Sep 17 00:00:00 2001 From: Javier Date: Sat, 2 Jan 2016 05:10:03 +0100 Subject: implement blobdbmanager Conflicts: daemon/daemon.pro daemon/manager.h daemon/watchconnector.h --- daemon/blobdbmanager.h | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 daemon/blobdbmanager.h (limited to 'daemon/blobdbmanager.h') diff --git a/daemon/blobdbmanager.h b/daemon/blobdbmanager.h new file mode 100644 index 0000000..26f2ca6 --- /dev/null +++ b/daemon/blobdbmanager.h @@ -0,0 +1,48 @@ +#ifndef BLOBDBMANAGER_H +#define BLOBDBMANAGER_H + +#include +#include "watchconnector.h" + +class BlobDbManager : public QObject +{ + Q_OBJECT +public: + explicit BlobDbManager(WatchConnector *watch, QObject *parent = 0); + + enum BlobDatabase { + BlobDbTest = 0, + BlobDbPin = 1, + BlobDbApp = 2, + BlobDbReminder = 3, + BlobDbNotification = 4 + }; + + typedef std::function SuccessCallback; + typedef std::function ErrorCallback; + + void insert(BlobDatabase db, const QUuid &key, const QByteArray &data, const SuccessCallback &successCallback = SuccessCallback(), const ErrorCallback &errorCallback = ErrorCallback()); + void remove(BlobDatabase db, const QUuid &key, const SuccessCallback &successCallback = SuccessCallback(), const ErrorCallback &errorCallback = ErrorCallback()); + void clear(BlobDatabase db, const SuccessCallback &successCallback = SuccessCallback(), const ErrorCallback &errorCallback = ErrorCallback()); + +private: + typedef quint16 Cookie; + + struct PendingTransfer { + Cookie cookie; + SuccessCallback successCallback; + ErrorCallback errorCallback; + }; + +private: + void handleMessage(const QByteArray &msg); + +private: + QLoggingCategory l; + WatchConnector *watch; + + QHash pending; + Cookie lastCookie; +}; + +#endif // BLOBDBMANAGER_H -- cgit v1.2.3