Files
UnrealEngine/Engine/Plugins/Online/OnlineSubsystem/Source/Private/OnlineNotificationTransportManager.cpp
2025-05-18 13:04:45 +08:00

65 lines
1.7 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "OnlineNotificationTransportManager.h"
FOnlineNotificationTransportManager::~FOnlineNotificationTransportManager()
{
}
bool FOnlineNotificationTransportManager::SendNotification(FNotificationTransportId TransportType, const FOnlineNotification& Notification)
{
IOnlineNotificationTransportPtr* TransportPtrPtr = TransportMap.Find(TransportType);
if (TransportPtrPtr != NULL)
{
bool result = (*TransportPtrPtr)->SendNotification(Notification);
return result;
}
else
{
return false;
}
}
bool FOnlineNotificationTransportManager::ReceiveTransportMessage(FNotificationTransportId TransportType, const IOnlineNotificationTransportMessage& TransportMessage)
{
IOnlineNotificationTransportPtr* TransportPtrPtr = TransportMap.Find(TransportType);
if (TransportPtrPtr != NULL)
{
bool result = (*TransportPtrPtr)->ReceiveNotification(TransportMessage);
return result;
}
else
{
return false;
}
}
IOnlineNotificationTransportPtr FOnlineNotificationTransportManager::GetNotificationTransport(FNotificationTransportId TransportType)
{
IOnlineNotificationTransportPtr* TransportPtrPtr = TransportMap.Find(TransportType);
if (TransportPtrPtr != NULL)
{
return *TransportPtrPtr;
}
else
{
return NULL;
}
}
void FOnlineNotificationTransportManager::AddNotificationTransport(IOnlineNotificationTransportPtr Transport)
{
TransportMap.Add(Transport->GetNotificationTransportId(), Transport);
}
void FOnlineNotificationTransportManager::RemoveNotificationTransport(FNotificationTransportId TransportType)
{
TransportMap.Remove(TransportType);
}
void FOnlineNotificationTransportManager::ResetNotificationTransports()
{
TransportMap.Empty();
}