#include "message_handler.h" #include "message_transmitter.h" #include "client_message.h" #include namespace CombatNetRadio { namespace WebSocketInterface { namespace Messages { MessageHandler::MessageHandler(ExerciseManager *exerciseManager) : m_exerciseManager(exerciseManager) , m_logger(getLogger("MessageHandler")) { Q_ASSERT(exerciseManager); } void MessageHandler::onNewTextMessage(MessageTransmitter *transmitter, const QString &message) { Q_ASSERT(transmitter); const QString pingMsg(QStringLiteral("ping")); if (message.startsWith(pingMsg)) { transmitter->addMessage(PongMessage(message.mid(pingMsg.size()))); return; } std::unique_ptr clientMessage(ClientMessage::create(message, m_logger)); if (!clientMessage) return; clientMessage->process(m_exerciseManager, transmitter); } } } }