libki/include/ki/protocol/net/DMLSession.h

32 lines
687 B
C
Raw Normal View History

#pragma once
#include "Session.h"
#include "../dml/MessageManager.h"
namespace ki
{
namespace protocol
{
namespace net
{
/**
* Implements an application protocol that uses the DML
* message system (as seen in Wizard101 and Pirate101).
*/
class DMLSession : public virtual Session
{
public:
DMLSession(uint16_t id, const dml::MessageManager &manager);
virtual ~DMLSession() = default;
void send_message(const dml::Message &message);
protected:
void on_application_message(const PacketHeader& header) override;
virtual void on_message(const dml::Message &message) {}
virtual void on_invalid_message() {}
private:
const dml::MessageManager &m_manager;
};
}
}
}