#ifndef TOQMANAGER_H #define TOQMANAGER_H #include #include #include "toqconnection.h" class VersionManager; class SystemManager; class StorageManager; class MusicManager; class CommManager; class VoiceCallManager; class ToqManager : public QObject { Q_OBJECT public: explicit ToqManager(const QBluetoothAddress &address, QObject *parent = 0); struct EndpointHandler { virtual void handleMessage(const ToqConnection::Message &msg) = 0; }; void setEndpointListener(ToqConnection::Endpoint ep, EndpointHandler *handler); bool isConnected() const; void sendMessage(const ToqConnection::Message &msg); void sendMessage(ToqConnection::Endpoint source, ToqConnection::Endpoint destination, quint16 transactionId, quint32 type, const QJsonObject &payload); quint16 sendMessage(ToqConnection::Endpoint source, ToqConnection::Endpoint destination, quint32 type, const QJsonObject &payload); void sendReply(const ToqConnection::Message &msg, quint32 type, const QJsonObject &payload); private slots: void handleToqMessage(const ToqConnection::Message &msg); private: ToqConnection *_conn; QHash _handlers; VersionManager *_versionManager; SystemManager *_systemManager; StorageManager *_storageManager; MusicManager *_musicManager; CommManager *_commManager; VoiceCallManager *_voiceCallManager; }; inline bool ToqManager::isConnected() const { return _conn->isConnected(); } #endif // TOQMANAGER_H