diff options
| author | Tomasz Sterna <tomek@xiaoka.com> | 2015-01-03 16:38:02 +0100 |
|---|---|---|
| committer | Tomasz Sterna <tomek@xiaoka.com> | 2015-01-03 19:07:48 +0100 |
| commit | 4e7da1944f5fa75a0739c0757d40a8102f045365 (patch) | |
| tree | 5f3fe179256536e4135eb4d5031a1d754af5e26c /daemon/bankmanager.h | |
| parent | 4150005566bec7827ce1cdd759a2397d47eba583 (diff) | |
| parent | e6ec758b364fcaf9fda35e56740c3fcd7e8fe25e (diff) | |
Merge remote-tracking branch 'javispedro/js-testing'
Conflicts:
daemon/daemon.pro
daemon/dbusconnector.cpp
daemon/manager.cpp
daemon/watchcommands.cpp
daemon/watchcommands.h
daemon/watchconnector.cpp
daemon/watchconnector.h
log4qt-debug.conf
log4qt-release.conf
rpm/pebble.spec
rpm/pebble.yaml
Diffstat (limited to 'daemon/bankmanager.h')
| -rw-r--r-- | daemon/bankmanager.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/daemon/bankmanager.h b/daemon/bankmanager.h new file mode 100644 index 0000000..7532812 --- /dev/null +++ b/daemon/bankmanager.h @@ -0,0 +1,63 @@ +#ifndef BANKMANAGER_H +#define BANKMANAGER_H + +#include "watchconnector.h" +#include "uploadmanager.h" +#include "appmanager.h" + +class BankManager : public QObject +{ + Q_OBJECT + QLoggingCategory l; + +public: + explicit BankManager(WatchConnector *watch, UploadManager *upload, AppManager *apps, QObject *parent = 0); + + int numSlots() const; + + bool isUsed(int slot) const; + QUuid appAt(int slot) const; + +signals: + void slotsChanged(); + +public slots: + bool uploadApp(const QUuid &uuid, int slot = -1); + bool unloadApp(int slot); + + void refresh(); + +private: + int findUnusedSlot() const; + void refreshWatchApp(int slot, std::function<void()> successCallback, std::function<void(int)> errorCallback); + +private slots: + void handleWatchConnected(); + +private: + WatchConnector *watch; + UploadManager *upload; + AppManager *apps; + + enum ResultCodes { + Success = 1, + BankInUse = 2, + InvalidCommand = 3, + GeneralFailure = 4 + }; + + struct SlotInfo { + bool used; + quint32 id; + QString name; + QString company; + quint32 flags; + quint16 version; + QUuid uuid; + }; + + QVector<SlotInfo> _slots; + QTimer *_refresh; +}; + +#endif // BANKMANAGER_H |
