diff options
| author | Javier <dev.git@javispedro.com> | 2016-01-02 05:10:03 +0100 |
|---|---|---|
| committer | Andrew Branson <andrew.branson@cern.ch> | 2016-02-12 01:46:24 +0100 |
| commit | 3a4e80053081ab7f5de142bfbc6589dfc2bc6e2d (patch) | |
| tree | a3f61628f4d424c43c6d9e1065560ddf4f67c56d /daemon/blobdbmanager.h | |
| parent | 5dc645452192f1e0b2261ec261945e310c77f8da (diff) | |
implement blobdbmanager
Conflicts:
daemon/daemon.pro
daemon/manager.h
daemon/watchconnector.h
Diffstat (limited to 'daemon/blobdbmanager.h')
| -rw-r--r-- | daemon/blobdbmanager.h | 48 |
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 |
