Core/Worldserver: Split Worldserver services into separate files (#29555)

(cherry picked from commit 39621fa41c)
This commit is contained in:
Meji
2024-01-16 20:04:54 +01:00
committed by funjoker
parent 3e39828f0a
commit 6be53574f8
11 changed files with 62 additions and 53 deletions

View File

@@ -16,7 +16,6 @@
*/
#include "AccountService.h"
#include "Session.h"
Battlenet::Services::Account::Account(Session* session) : AccountService(session)
{

View File

@@ -16,7 +16,6 @@
*/
#include "AuthenticationService.h"
#include "Session.h"
Battlenet::Services::Authentication::Authentication(Session* session) : AuthenticationService(session)
{

View File

@@ -17,7 +17,6 @@
#include "ConnectionService.h"
#include "Duration.h"
#include "Session.h"
#include "Util.h"
#include "BattlenetRpcErrorCodes.h"

View File

@@ -37,7 +37,6 @@ namespace Battlenet
uint32 HandleConnect(connection::v1::ConnectRequest const* request, connection::v1::ConnectResponse* response, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& continuation) override;
uint32 HandleKeepAlive(NoData const* request) override;
uint32 HandleRequestDisconnect(connection::v1::DisconnectRequest const* request) override;
};
}
}

View File

@@ -16,7 +16,6 @@
*/
#include "GameUtilitiesService.h"
#include "Session.h"
Battlenet::Services::GameUtilities::GameUtilities(Session* session) : GameUtilitiesService(session)
{

View File

@@ -15,8 +15,8 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef GameUtilitiesServiceService_h__
#define GameUtilitiesServiceService_h__
#ifndef GameUtilitiesService_h__
#define GameUtilitiesService_h__
#include "Service.h"
#include "game_utilities_service.pb.h"
@@ -40,4 +40,4 @@ namespace Battlenet
}
}
#endif // GameUtilitiesServiceService_h__
#endif // GameUtilitiesService_h__

View File

@@ -15,7 +15,7 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "WorldserverService.h"
#include "WorldserverGameUtilitiesService.h"
#include "BattlenetRpcErrorCodes.h"
#include "IpAddress.h"
#include "Log.h"
@@ -26,17 +26,17 @@
#include "World.h"
#include <zlib.h>
std::unordered_map<std::string, Battlenet::GameUtilitiesService::ClientRequestHandler> const Battlenet::GameUtilitiesService::ClientRequestHandlers =
std::unordered_map<std::string, Battlenet::Services::GameUtilitiesService::ClientRequestHandler> const Battlenet::Services::GameUtilitiesService::ClientRequestHandlers =
{
{ "Command_RealmListRequest_v1", &GameUtilitiesService::HandleRealmListRequest },
{ "Command_RealmJoinRequest_v1", &GameUtilitiesService::HandleRealmJoinRequest }
};
Battlenet::GameUtilitiesService::GameUtilitiesService(WorldSession* session) : BaseService(session)
Battlenet::Services::GameUtilitiesService::GameUtilitiesService(WorldSession* session) : BaseService(session)
{
}
uint32 Battlenet::GameUtilitiesService::HandleProcessClientRequest(game_utilities::v1::ClientRequest const* request, game_utilities::v1::ClientResponse* response, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& /*continuation*/)
uint32 Battlenet::Services::GameUtilitiesService::HandleProcessClientRequest(game_utilities::v1::ClientRequest const* request, game_utilities::v1::ClientResponse* response, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& /*continuation*/)
{
Attribute const* command = nullptr;
std::unordered_map<std::string, Variant const*> params;
@@ -83,7 +83,7 @@ static Variant const* GetParam(std::unordered_map<std::string, Variant const*> c
return itr != params.end() ? itr->second : nullptr;
}
uint32 Battlenet::GameUtilitiesService::HandleRealmListRequest(std::unordered_map<std::string, Variant const*> const& params, game_utilities::v1::ClientResponse* response)
uint32 Battlenet::Services::GameUtilitiesService::HandleRealmListRequest(std::unordered_map<std::string, Variant const*> const& params, game_utilities::v1::ClientResponse* response)
{
std::string subRegionId;
if (Variant const* subRegion = GetParam(params, "Command_RealmListRequest_v1"))
@@ -122,7 +122,7 @@ uint32 Battlenet::GameUtilitiesService::HandleRealmListRequest(std::unordered_ma
return ERROR_OK;
}
uint32 Battlenet::GameUtilitiesService::HandleRealmJoinRequest(std::unordered_map<std::string, Variant const*> const& params, game_utilities::v1::ClientResponse* response)
uint32 Battlenet::Services::GameUtilitiesService::HandleRealmJoinRequest(std::unordered_map<std::string, Variant const*> const& params, game_utilities::v1::ClientResponse* response)
{
if (Variant const* realmAddress = GetParam(params, "Param_RealmAddress"))
return sRealmList->JoinRealm(uint32(realmAddress->uint_value()), realm.Build, Trinity::Net::make_address(_session->GetRemoteAddress()), _session->GetRealmListSecret(),
@@ -131,7 +131,7 @@ uint32 Battlenet::GameUtilitiesService::HandleRealmJoinRequest(std::unordered_ma
return ERROR_WOW_SERVICES_INVALID_JOIN_TICKET;
}
uint32 Battlenet::GameUtilitiesService::HandleGetAllValuesForAttribute(game_utilities::v1::GetAllValuesForAttributeRequest const* request, game_utilities::v1::GetAllValuesForAttributeResponse* response, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& /*continuation*/)
uint32 Battlenet::Services::GameUtilitiesService::HandleGetAllValuesForAttribute(game_utilities::v1::GetAllValuesForAttributeRequest const* request, game_utilities::v1::GetAllValuesForAttributeResponse* response, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& /*continuation*/)
{
if (request->attribute_key().find("Command_RealmListRequest_v1") == 0)
{

View File

@@ -0,0 +1,50 @@
/*
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef WorldserverGameUtilitiesService_h__
#define WorldserverGameUtilitiesService_h__
#include "WorldserverService.h"
#include "game_utilities_service.pb.h"
namespace Battlenet
{
class Session;
namespace Services
{
class GameUtilitiesService : public WorldserverService<game_utilities::v1::GameUtilitiesService>
{
typedef WorldserverService<game_utilities::v1::GameUtilitiesService> BaseService;
public:
GameUtilitiesService(WorldSession* session);
uint32 HandleProcessClientRequest(game_utilities::v1::ClientRequest const* request, game_utilities::v1::ClientResponse* response, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& continuation) override;
uint32 HandleGetAllValuesForAttribute(game_utilities::v1::GetAllValuesForAttributeRequest const* request, game_utilities::v1::GetAllValuesForAttributeResponse* response, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& continuation) override;
private:
using ClientRequestHandler = uint32(GameUtilitiesService::*)(std::unordered_map<std::string, Variant const*> const&, game_utilities::v1::ClientResponse*);
static std::unordered_map<std::string, ClientRequestHandler> const ClientRequestHandlers;
uint32 HandleRealmListRequest(std::unordered_map<std::string, Variant const*> const& params, game_utilities::v1::ClientResponse* response);
uint32 HandleRealmJoinRequest(std::unordered_map<std::string, Variant const*> const& params, game_utilities::v1::ClientResponse* response);
};
}
}
#endif // WorldserverGameUtilitiesService_h__

View File

@@ -19,22 +19,6 @@
#define WorldserverService_h__
#include "WorldSession.h"
#include "account_service.pb.h"
#include "authentication_service.pb.h"
#include "challenge_service.pb.h"
#include "club_listener.pb.h"
#include "club_membership_listener.pb.h"
#include "club_membership_service.pb.h"
#include "club_service.pb.h"
#include "connection_service.pb.h"
#include "friends_service.pb.h"
#include "game_utilities_service.pb.h"
#include "presence_listener.pb.h"
#include "presence_service.pb.h"
#include "report_service.pb.h"
#include "api/client/v2/report_service.pb.h"
#include "resource_service.pb.h"
#include "user_manager_service.pb.h"
namespace bgs { namespace protocol { } }
using namespace bgs::protocol;
@@ -56,24 +40,6 @@ namespace Battlenet
WorldSession* _session;
};
class GameUtilitiesService : public WorldserverService<game_utilities::v1::GameUtilitiesService>
{
typedef WorldserverService<game_utilities::v1::GameUtilitiesService> BaseService;
public:
GameUtilitiesService(WorldSession* session);
uint32 HandleProcessClientRequest(game_utilities::v1::ClientRequest const* request, game_utilities::v1::ClientResponse* response, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& continuation) override;
uint32 HandleGetAllValuesForAttribute(game_utilities::v1::GetAllValuesForAttributeRequest const* request, game_utilities::v1::GetAllValuesForAttributeResponse* response, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& continuation) override;
private:
using ClientRequestHandler = uint32(GameUtilitiesService::*)(std::unordered_map<std::string, Variant const*> const&, game_utilities::v1::ClientResponse*);
static std::unordered_map<std::string, ClientRequestHandler> const ClientRequestHandlers;
uint32 HandleRealmListRequest(std::unordered_map<std::string, Variant const*> const& params, game_utilities::v1::ClientResponse* response);
uint32 HandleRealmJoinRequest(std::unordered_map<std::string, Variant const*> const& params, game_utilities::v1::ClientResponse* response);
};
}
#endif // WorldserverService_h__

View File

@@ -16,7 +16,6 @@
*/
#include "WorldserverServiceDispatcher.h"
#include "WorldserverService.h"
Battlenet::WorldserverServiceDispatcher::WorldserverServiceDispatcher()
{
@@ -26,7 +25,7 @@ Battlenet::WorldserverServiceDispatcher::WorldserverServiceDispatcher()
AddService<WorldserverService<club::v1::ClubService>>();
AddService<WorldserverService<connection::v1::ConnectionService>>();
AddService<WorldserverService<friends::v1::FriendsService>>();
AddService<GameUtilitiesService>();
AddService<Services::GameUtilitiesService>();
AddService<WorldserverService<presence::v1::PresenceService>>();
AddService<WorldserverService<report::v1::ReportService>>();
AddService<WorldserverService<report::v2::ReportService>>();

View File

@@ -21,7 +21,6 @@
#include "WorldSession.h"
#include "MessageBuffer.h"
#include "Log.h"
#include "Common.h"
#include "account_service.pb.h"
#include "authentication_service.pb.h"
#include "challenge_service.pb.h"
@@ -31,7 +30,7 @@
#include "club_service.pb.h"
#include "connection_service.pb.h"
#include "friends_service.pb.h"
#include "game_utilities_service.pb.h"
#include "WorldserverGameUtilitiesService.h"
#include "presence_listener.pb.h"
#include "presence_service.pb.h"
#include "report_service.pb.h"