2014-03-14 14:13:41 -04:00
|
|
|
// Copyright 1998-2014 Epic Games, Inc. All Rights Reserved.
|
|
|
|
|
|
|
|
|
|
/*=============================================================================
|
|
|
|
|
MessageBus.cpp: Implements the FMessageBus class.
|
|
|
|
|
=============================================================================*/
|
|
|
|
|
|
|
|
|
|
#include "MessagingPrivatePCH.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* FMessageBus structors
|
|
|
|
|
*****************************************************************************/
|
|
|
|
|
|
|
|
|
|
FMessageBus::FMessageBus( const IAuthorizeMessageRecipientsPtr& InRecipientAuthorizer )
|
|
|
|
|
: RecipientAuthorizer(InRecipientAuthorizer)
|
|
|
|
|
{
|
|
|
|
|
Router = new FMessageRouter();
|
2014-05-12 08:40:54 -04:00
|
|
|
RouterThread = FRunnableThread::Create(Router, TEXT("FMessageBus.Router"), 128 * 1024, TPri_Normal, FPlatformAffinity::GetPoolThreadMask());
|
2014-03-14 14:13:41 -04:00
|
|
|
|
|
|
|
|
check(Router != nullptr);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FMessageBus::~FMessageBus( )
|
|
|
|
|
{
|
|
|
|
|
Shutdown();
|
|
|
|
|
|
|
|
|
|
delete Router;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* IMessageBus interface
|
|
|
|
|
*****************************************************************************/
|
|
|
|
|
|
|
|
|
|
void FMessageBus::Shutdown( )
|
|
|
|
|
{
|
|
|
|
|
if (RouterThread != nullptr)
|
|
|
|
|
{
|
|
|
|
|
ShutdownDelegate.Broadcast();
|
|
|
|
|
|
|
|
|
|
RouterThread->Kill(true);
|
|
|
|
|
delete RouterThread;
|
|
|
|
|
RouterThread = nullptr;
|
|
|
|
|
}
|
|
|
|
|
}
|