Files
UnrealEngineUWP/Engine/Source/Developer/FriendsAndChat/Private/FriendsAndChatModule.cpp
Nicholas Davies b9cc15db1b [INTEGRATE] merge UE4-Fortnite > UE4 updates to remove chat singleton to allow Fortnite PIE
cl 2567012, 2568320, 2570223, 2570640
#codereview Eric.Newman

[CL 2575470 by Nicholas Davies in Main branch]
2015-06-03 08:55:45 -04:00

66 lines
1.3 KiB
C++

// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved.
#include "FriendsAndChatPrivatePCH.h"
/**
* Implements the FriendsAndChat module.
*/
class FFriendsAndChatModule
: public IFriendsAndChatModule
{
public:
// IFriendsAndChatModule interface
virtual TSharedRef<IFriendsAndChatManager> GetFriendsAndChatManager(FName MCPInstanceName) override
{
if(MCPInstanceName == TEXT(""))
{
if (!DefaultManager.IsValid())
{
DefaultManager = MakeShareable(new FFriendsAndChatManager());
DefaultManager->Initialize();
}
return DefaultManager.ToSharedRef();
}
else
{
TSharedRef<FFriendsAndChatManager>* FoundManager = ManagerMap.Find(MCPInstanceName);
if(FoundManager != nullptr)
{
return *FoundManager;
}
}
TSharedRef<FFriendsAndChatManager> NewManager = MakeShareable(new FFriendsAndChatManager());
NewManager->Initialize();
ManagerMap.Add(MCPInstanceName, NewManager);
return NewManager;
}
public:
// IModuleInterface interface
virtual void StartupModule() override
{
}
virtual void ShutdownModule() override
{
if(DefaultManager.IsValid())
{
DefaultManager.Reset();
}
ManagerMap.Reset();
}
private:
TSharedPtr<FFriendsAndChatManager> DefaultManager;
TMap<FName, TSharedRef<FFriendsAndChatManager>> ManagerMap;
};
IMPLEMENT_MODULE( FFriendsAndChatModule, FriendsAndChat );