// Copyright Epic Games, Inc. All Rights Reserved. #include "ConcertServerUtil.h" #include "ConcertMessageData.h" #include "IConcertSession.h" #include "IConcertServer.h" namespace ConcertUtil::Private { static TOptional>> FindByClient(IConcertServer& Server, const FGuid& ClientEndpointId) { for (const TSharedPtr& ServerSession : Server.GetLiveSessions()) { for (const FConcertSessionClientInfo& ClientInfo : ServerSession->GetSessionClients()) { if (ClientEndpointId == ClientInfo.ClientEndpointId) { return {{ ClientInfo, ServerSession }}; } } } return {}; } } /* TOptional ConcertUtil::GetConnectedClientInfo(IConcertServer& Server, const FGuid& ClientEndpointId) { const TOptional>> Result = Private::FindByClient(Server, ClientEndpointId); return Result ? Result->Key : TOptional(); } */ TArray ConcertUtil::GetSessionClients(IConcertServer& Server, const FGuid& SessionId) { TSharedPtr ServerSession = Server.GetLiveSession(SessionId); if (ServerSession) { return ServerSession->GetSessionClients(); } return TArray(); } TSharedPtr ConcertUtil::GetLiveSessionClientConnectedTo(IConcertServer& Server, const FGuid& ClientEndpointId) { const TOptional>> Result = Private::FindByClient(Server, ClientEndpointId); return Result ? Result->Value : TSharedPtr(); }