beerservice.h 957 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #ifndef BEERSERVICE_H
  2. #define BEERSERVICE_H
  3. #include <QObject>
  4. #include <QtWebSockets/QWebSocket>
  5. class SettingsService;
  6. class BeerService : public QObject
  7. {
  8. Q_OBJECT
  9. Q_PROPERTY(bool connected READ connected NOTIFY connectedChanged)
  10. public:
  11. static BeerService *instance()
  12. {
  13. static BeerService i;
  14. return &i;
  15. }
  16. void sendCommand(const QString &entity, const QString &action, const QVariantMap &data = QVariantMap());
  17. void connectListener(QObject *listener);
  18. signals:
  19. void connectedChanged();
  20. private:
  21. BeerService();
  22. ~BeerService();
  23. SettingsService *settings() const;
  24. QString stashFileName() const;
  25. void saveStash() const;
  26. void restoreStash();
  27. void reconnect();
  28. void sendCommand(const QVariantMap &command);
  29. bool connected() const;
  30. QMultiMap<QString, QObject *> m_listeners;
  31. QWebSocket m_socket;
  32. QVariantList m_commandStash;
  33. };
  34. #endif // BEERSERVICE_H