6#include "Containers/Queue.h"
102 EnqueueCommand(FSimpleDelegate::CreateRaw(
this, &FMessageRouter::HandleRemoveRecipient, Address));
152 virtual bool Init()
override;
154 virtual void Stop()
override;
155 virtual void Exit()
override;
227 virtual void Tick()
override;
232 struct FDelayedMessage
242 FDelayedMessage() { }
257 return (Sequence <
Other.Sequence);
320 int64 DelayedMessagesSequence;
332 bool bAllowDelayedMessaging;
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_DELEGATE(DelegateName)
Definition DelegateCombinations.h:20
EMessageBusNotification
Definition IMessageBusListener.h:10
bool operator<(const FTextFormatString &LHS, const FTextFormatString &RHS)
Definition ITextFormatArgumentModifier.h:147
Definition MessageRouter.h:29
FTimespan CalculateWaitTime()
Definition MessageRouter.cpp:100
virtual uint32 Run() override
Definition MessageRouter.cpp:53
FORCEINLINE TSharedRef< IMessageTracer, ESPMode::ThreadSafe > GetTracer()
Definition MessageRouter.h:79
void ProcessDelayedMessages()
Definition MessageRouter.cpp:255
virtual FSingleThreadRunnable * GetSingleThreadInterface() override
Definition MessageRouter.cpp:41
void FilterSubscriptions(TArray< TSharedPtr< IMessageSubscription, ESPMode::ThreadSafe > > &Subscriptions, const TSharedRef< IMessageContext, ESPMode::ThreadSafe > &Context, TArray< TSharedPtr< IMessageReceiver, ESPMode::ThreadSafe > > &OutRecipients)
Definition MessageRouter.cpp:175
FORCEINLINE void RemoveSubscription(const TSharedRef< IMessageReceiver, ESPMode::ThreadSafe > &Subscriber, const FTopLevelAssetPath &MessageType)
Definition MessageRouter.h:111
void FilterRecipients(const TSharedRef< IMessageContext, ESPMode::ThreadSafe > &Context, TArray< TSharedPtr< IMessageReceiver, ESPMode::ThreadSafe > > &OutRecipients)
Definition MessageRouter.cpp:218
FMessageRouter()
Definition MessageRouter.cpp:18
FORCEINLINE void RemoveInterceptor(const TSharedRef< IMessageInterceptor, ESPMode::ThreadSafe > &Interceptor, const FTopLevelAssetPath &MessageType)
Definition MessageRouter.h:90
FORCEINLINE void RemoveNotificationListener(const TSharedRef< IBusListener, ESPMode::ThreadSafe > &Listener)
Definition MessageRouter.h:142
FORCEINLINE void AddInterceptor(const TSharedRef< IMessageInterceptor, ESPMode::ThreadSafe > &Interceptor, const FTopLevelAssetPath &MessageType)
Definition MessageRouter.h:48
FORCEINLINE bool EnqueueCommand(CommandDelegate Command)
Definition MessageRouter.h:172
FORCEINLINE void RemoveRecipient(const FMessageAddress &Address)
Definition MessageRouter.h:100
FORCEINLINE void RouteMessage(const TSharedRef< IMessageContext, ESPMode::ThreadSafe > &Context)
Definition MessageRouter.h:121
~FMessageRouter()
Definition MessageRouter.cpp:31
FORCEINLINE void AddRecipient(const FMessageAddress &Address, const TSharedRef< IMessageReceiver, ESPMode::ThreadSafe > &Recipient)
Definition MessageRouter.h:59
virtual void Stop() override
Definition MessageRouter.cpp:69
void ProcessCommands()
Definition MessageRouter.cpp:244
virtual void Tick() override
Definition MessageRouter.cpp:270
virtual bool Init() override
Definition MessageRouter.cpp:47
void DispatchMessage(const TSharedRef< IMessageContext, ESPMode::ThreadSafe > &Message)
Definition MessageRouter.cpp:118
FORCEINLINE void AddNotificationListener(const TSharedRef< IBusListener, ESPMode::ThreadSafe > &Listener)
Definition MessageRouter.h:132
virtual void Exit() override
Definition MessageRouter.cpp:77
FORCEINLINE void AddSubscription(const TSharedRef< IMessageSubscription, ESPMode::ThreadSafe > &Subscription)
Definition MessageRouter.h:69
void TraceSentMessage(const TSharedRef< IMessageContext, ESPMode::ThreadSafe > &Context)
Definition MessageTracer.cpp:297
Definition SingleThreadRunnable.h:12
Definition IMessageBusListener.h:27
Definition IMessageInterceptor.h:16
Definition IMessageReceiver.h:26
Definition IMessageSubscription.h:25
Definition UnrealString.h.inl:34
Definition MpscQueue.h:18
void Enqueue(ArgTypes &&... Args)
Definition MpscQueue.h:49
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition SharedPointer.h:1295
Definition IMessageContext.h:26
static FTimespan Zero()
Definition Timespan.h:747
Definition TopLevelAssetPath.h:38