beerservice.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #ifndef BEERSERVICE_H
  2. #define BEERSERVICE_H
  3. #include <QObject>
  4. #include <QtWebSockets/QWebSocket>
  5. #include "services/dumpservice.h"
  6. class SettingsService;
  7. class BeerService : public QObject
  8. {
  9. Q_OBJECT
  10. Q_PROPERTY(bool connected READ connected NOTIFY connectedChanged)
  11. public:
  12. static BeerService *instance()
  13. {
  14. static BeerService i;
  15. return &i;
  16. }
  17. enum Action
  18. {
  19. ActionUndefined = 0,
  20. ActionGet,
  21. ActionAdd,
  22. ActionDelete,
  23. ActionModify
  24. };
  25. void sendCommand(const QString &entity, Action action, const QVariantMap &data = QVariantMap());
  26. void connectListener(QObject *listener);
  27. void removeListener(QObject *listener);
  28. signals:
  29. void connectedChanged();
  30. private:
  31. BeerService();
  32. ~BeerService();
  33. SettingsService *settings() const;
  34. void restoreStash();
  35. void reconnect();
  36. void sendCommand(const QVariantMap &command);
  37. bool connected() const;
  38. QMultiMap<QString, QObject *> m_listeners;
  39. DumpService m_dumpService;
  40. QWebSocket m_socket;
  41. QVariantList m_commandStash;
  42. QMap<Action, QString> m_actions;
  43. };
  44. #endif // BEERSERVICE_H