Gateway Server clean up

This commit is contained in:
HikikoMarmy
2025-04-14 03:54:24 +01:00
parent ed2a53d76a
commit ea09bc2109
5 changed files with 90 additions and 27 deletions

View File

@@ -0,0 +1,17 @@
#pragma once
#include <map>
#include <functional>
#include <memory>
#include "../../Network/GenericNetRequest.hpp"
#include "GetServerAddressEvent.h"
const std::map< int16_t, std::function< std::unique_ptr< GenericRequest >() > > LOBBY_EVENT_LOOKUP =
{
{ 0x43, []() -> std::unique_ptr< GenericRequest >
{
return std::make_unique< RequestGetServerAddress >();
}
}
};

View File

@@ -0,0 +1,32 @@
#include "../../global_define.h"
#include "GetServerAddressEvent.h"
void RequestGetServerAddress::Deserialize( sptr_byte_stream stream )
{
DeserializeHeader( stream );
}
sptr_generic_response RequestGetServerAddress::ProcessRequest( sptr_byte_stream stream )
{
Deserialize( stream);
return std::make_shared< ResultGetServerAddress >( this, Config::service_ip, Config::lobby_port );
}
ResultGetServerAddress::ResultGetServerAddress( GenericRequest *request, std::string ip, int32_t port ) : GenericResponse( *request )
{
m_ip = ip;
m_port = port;
}
ByteStream& ResultGetServerAddress::Serialize()
{
m_stream.write_u16( m_packetId );
m_stream.write_u32( m_requestId );
m_stream.write_u32( 0 );
m_stream.write_sz_utf8( m_ip );
m_stream.write( m_port );
return m_stream;
}

View File

@@ -0,0 +1,20 @@
#pragma once
class RequestGetServerAddress : public GenericRequest {
public:
static std::unique_ptr< RequestGetServerAddress > Create()
{
return std::make_unique< RequestGetServerAddress >();
}
sptr_generic_response ProcessRequest( sptr_byte_stream stream ) override;
void Deserialize( sptr_byte_stream stream ) override;
};
class ResultGetServerAddress : public GenericResponse {
public:
std::string m_ip;
int32_t m_port;
ResultGetServerAddress( GenericRequest *request, std::string ip, int32_t port );
ByteStream &Serialize();
};