13 #ifndef hifi_MessagesClient_h
14 #define hifi_MessagesClient_h
18 #include <QtCore/QSharedPointer>
20 #include <DependencyManager.h>
22 #include "LimitedNodeList.h"
25 #include "ReceivedMessage.h"
48 class MessagesClient :
public QObject,
public Dependency {
91 Q_INVOKABLE
void sendMessage(QString channel, QString message,
bool localOnly =
false);
100 Q_INVOKABLE
void sendLocalMessage(QString channel, QString message);
147 Q_INVOKABLE
void sendData(QString channel, QByteArray data,
bool localOnly =
false);
156 Q_INVOKABLE
void subscribe(QString channel);
163 Q_INVOKABLE
void unsubscribe(QString channel);
165 static void decodeMessagesPacket(QSharedPointer<ReceivedMessage> receivedMessage, QString& channel,
166 bool& isText, QString& message, QByteArray& data, QUuid& senderID);
168 static std::unique_ptr<NLPacketList> encodeMessagesPacket(QString channel, QString message, QUuid senderID);
169 static std::unique_ptr<NLPacketList> encodeMessagesDataPacket(QString channel, QByteArray data, QUuid senderID);
184 void messageReceived(QString channel, QString message, QUuid senderUUID,
bool localOnly);
199 void dataReceived(QString channel, QByteArray data, QUuid senderUUID,
bool localOnly);
202 void handleMessagesPacket(QSharedPointer<ReceivedMessage> receivedMessage, SharedNodePointer senderNode);
203 void handleNodeActivated(SharedNodePointer node);
206 QSet<QString> _subscribedChannels;