Files
qt-migration-legatus/qt6-after/qt6-migrated-legatus/Lts/Proxies/CombatNetRadio/WebSocketInterface/Messages/message_handler.cpp
T

43 lines
923 B
C++
Executable File

#include "message_handler.h"
#include "message_transmitter.h"
#include "client_message.h"
#include <memory>
#include <NGLLogger/NGLLoggerBootstrap.h>
namespace CombatNetRadio
{
namespace WebSocketInterface
{
namespace Messages
{
MessageHandler::MessageHandler(ExerciseManager *exerciseManager) : m_exerciseManager(exerciseManager),
m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger()) {
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(ClientMessage::create(message, m_logger));
if (!clientMessage)
return;
clientMessage->process(m_exerciseManager, transmitter);
}
}
}
}