Files
DedicatedServerCourse/Plugins/GameLiftPlugin/Source/GameLiftClient/Private/GameLiftClientSDKModels.cpp
2026-02-28 12:32:28 -05:00

230 lines
5.7 KiB
C++

// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
#pragma once
#include "GameLiftClientSDKModels.h"
#include "CoreMinimal.h"
#include "Serializer.h"
#if WITH_GAMELIFT_CLIENT
#if PLATFORM_WINDOWS
#include "Windows/AllowWindowsPlatformTypes.h"
#endif
#include "aws/core/Aws.h"
#include "aws/core/utils/DateTime.h"
#include "aws/gamelift/model/GameSession.h"
#include "aws/gamelift/model/PlayerSession.h"
#if PLATFORM_WINDOWS
#include "Windows/HideWindowsPlatformTypes.h"
#endif
#endif
namespace GL_Utils
{
#if WITH_GAMELIFT_CLIENT
FGL_GameSession AwsGameSessionToUe(const GAMELIFT_GAMESESSION_INFO& GameSessionInfo)
{
FGL_GameSession Result;
if (GameSessionInfo.gameSessionId)
{
Result.GameSessionId = AWSSerializer::ASToFS(GameSessionInfo.gameSessionId);
}
if (GameSessionInfo.fleetId)
{
Result.FleetId = AWSSerializer::ASToFS(GameSessionInfo.fleetId);
}
if (GameSessionInfo.ipAddress)
{
Result.IpAddress = AWSSerializer::ASToFS(GameSessionInfo.ipAddress);
}
if (GameSessionInfo.dnsName)
{
Result.DnsName = AWSSerializer::ASToFS(GameSessionInfo.dnsName);
}
Result.Status = static_cast<EGL_GameSessionStatus>(GameSessionInfo.status);
Result.CurrentPlayerSessionCount = GameSessionInfo.currentPlayerSessionCount;
Result.MaximumPlayerSessionCount = GameSessionInfo.maximumPlayerSessionCount;
Result.Port = GameSessionInfo.port;
return Result;
}
FGL_GameSession AwsGameSessionToUe(GAMELIFT_GAMESESSION_INSTANCE_HANDLE GameSession)
{
FGL_GameSession Result;
GAMELIFT_GAMESESSION_INFO GameSessionInfo;
GameLiftGameSessionGetInfo(GameSession, &GameSessionInfo);
return AwsGameSessionToUe(GameSessionInfo);
}
FGL_PlayerSession AwsPlayerSessionToUe(GAMELIFT_PLAYERSESSION_INSTANCE_HANDLE PlayerSession)
{
FGL_PlayerSession Result;
GAMELIFT_PLAYERSESSION_INFO PlayerSessionInfo;
GameLiftPlayerSessionGetInfo(PlayerSession, &PlayerSessionInfo);
if (PlayerSessionInfo.dnsName)
{
Result.DnsName = AWSSerializer::ASToFS(PlayerSessionInfo.dnsName);
}
if (PlayerSessionInfo.fleetArn)
{
Result.FleetArn = AWSSerializer::ASToFS(PlayerSessionInfo.fleetArn);
}
if (PlayerSessionInfo.fleetId)
{
Result.FleetId = AWSSerializer::ASToFS(PlayerSessionInfo.fleetId);
}
if (PlayerSessionInfo.gameSessionId)
{
Result.GameSessionId = AWSSerializer::ASToFS(PlayerSessionInfo.gameSessionId);
}
if (PlayerSessionInfo.ipAddress)
{
Result.IpAddress = AWSSerializer::ASToFS(PlayerSessionInfo.ipAddress);
}
if (PlayerSessionInfo.playerData)
{
Result.PlayerData = AWSSerializer::ASToFS(PlayerSessionInfo.playerData);
}
if (PlayerSessionInfo.playerId)
{
Result.PlayerId = AWSSerializer::ASToFS(PlayerSessionInfo.playerId);
}
if (PlayerSessionInfo.playerSessionId)
{
Result.PlayerSessionId = AWSSerializer::ASToFS(PlayerSessionInfo.playerSessionId);
}
Result.Port = PlayerSessionInfo.port;
Result.Status = static_cast<EGL_PlayerSessionStatus>(PlayerSessionInfo.status);
return Result;
}
FGL_GameSession AwsGameSessionToUe(const Aws::GameLift::Model::GameSession& GameSessionIn)
{
FGL_GameSession Result;
if (GameSessionIn.GameSessionIdHasBeenSet())
{
Result.GameSessionId = AWSSerializer::ASToFS(GameSessionIn.GetGameSessionId().c_str());
}
if (GameSessionIn.FleetIdHasBeenSet())
{
Result.FleetId = AWSSerializer::ASToFS(GameSessionIn.GetFleetId().c_str());
}
if (GameSessionIn.CurrentPlayerSessionCountHasBeenSet())
{
Result.CurrentPlayerSessionCount = GameSessionIn.GetCurrentPlayerSessionCount();
}
if (GameSessionIn.MaximumPlayerSessionCountHasBeenSet())
{
Result.MaximumPlayerSessionCount = GameSessionIn.GetMaximumPlayerSessionCount();
}
if (GameSessionIn.StatusHasBeenSet())
{
Result.Status = static_cast<EGL_GameSessionStatus>(GameSessionIn.GetStatus());
}
if (GameSessionIn.IpAddressHasBeenSet())
{
Result.IpAddress = AWSSerializer::ASToFS(GameSessionIn.GetIpAddress().c_str());
}
if (GameSessionIn.DnsNameHasBeenSet())
{
Result.DnsName = AWSSerializer::ASToFS(GameSessionIn.GetDnsName().c_str());
}
if (GameSessionIn.PortHasBeenSet())
{
Result.Port = GameSessionIn.GetPort();
}
return Result;
}
FGL_PlayerSession AwsPlayerSessionToUe(const Aws::GameLift::Model::PlayerSession& PlayerSessionIn)
{
FGL_PlayerSession Result;
if (PlayerSessionIn.DnsNameHasBeenSet())
{
Result.DnsName = AWSSerializer::ASToFS(PlayerSessionIn.GetDnsName().c_str());
}
if (PlayerSessionIn.FleetArnHasBeenSet())
{
Result.FleetArn = AWSSerializer::ASToFS(PlayerSessionIn.GetFleetArn().c_str());
}
if (PlayerSessionIn.FleetIdHasBeenSet())
{
Result.FleetId = AWSSerializer::ASToFS(PlayerSessionIn.GetFleetId().c_str());
}
if (PlayerSessionIn.GameSessionIdHasBeenSet())
{
Result.GameSessionId = AWSSerializer::ASToFS(PlayerSessionIn.GetGameSessionId().c_str());
}
if (PlayerSessionIn.IpAddressHasBeenSet())
{
Result.IpAddress = AWSSerializer::ASToFS(PlayerSessionIn.GetIpAddress().c_str());
}
if (PlayerSessionIn.PlayerDataHasBeenSet())
{
Result.PlayerData = AWSSerializer::ASToFS(PlayerSessionIn.GetPlayerData().c_str());
}
if (PlayerSessionIn.PlayerIdHasBeenSet())
{
Result.PlayerId = AWSSerializer::ASToFS(PlayerSessionIn.GetPlayerId().c_str());
}
if (PlayerSessionIn.PlayerSessionIdHasBeenSet())
{
Result.PlayerSessionId = AWSSerializer::ASToFS(PlayerSessionIn.GetPlayerSessionId().c_str());
}
if (PlayerSessionIn.PortHasBeenSet())
{
Result.Port = PlayerSessionIn.GetPort();
}
if (PlayerSessionIn.StatusHasBeenSet())
{
Result.Status = static_cast<EGL_PlayerSessionStatus>(PlayerSessionIn.GetStatus());
}
return Result;
}
#endif
};