summaryrefslogtreecommitdiff
path: root/daemon/blobdbmanager.h
diff options
context:
space:
mode:
authorJavier <dev.git@javispedro.com>2016-01-02 05:10:03 +0100
committerAndrew Branson <andrew.branson@cern.ch>2016-02-12 01:46:24 +0100
commit3a4e80053081ab7f5de142bfbc6589dfc2bc6e2d (patch)
treea3f61628f4d424c43c6d9e1065560ddf4f67c56d /daemon/blobdbmanager.h
parent5dc645452192f1e0b2261ec261945e310c77f8da (diff)
implement blobdbmanager
Conflicts: daemon/daemon.pro daemon/manager.h daemon/watchconnector.h
Diffstat (limited to 'daemon/blobdbmanager.h')
-rw-r--r--daemon/blobdbmanager.h48
1 files changed, 48 insertions, 0 deletions
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 <functional>
+#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<void()> SuccessCallback;
+ typedef std::function<void(WatchConnector::BlobDbStatus)> 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<Cookie, PendingTransfer> pending;
+ Cookie lastCookie;
+};
+
+#endif // BLOBDBMANAGER_H