// 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 GetFriendsAndChatManager(FName MCPInstanceName, bool InGame) override { if(MCPInstanceName == TEXT("")) { if (!DefaultManager.IsValid()) { DefaultManager = MakeShareable(new FFriendsAndChatManager()); DefaultManager->Initialize(InGame); } return DefaultManager.ToSharedRef(); } else { TSharedRef* FoundManager = ManagerMap.Find(MCPInstanceName); if(FoundManager != nullptr) { return *FoundManager; } } TSharedRef NewManager = MakeShareable(new FFriendsAndChatManager()); NewManager->Initialize(InGame); 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 DefaultManager; TMap> ManagerMap; }; IMPLEMENT_MODULE( FFriendsAndChatModule, FriendsAndChat );