UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MessageBus.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "IMessageContext.h"
11#include "IMessageTracer.h"
12#include "IMessageBus.h"
13
14class FMessageRouter;
16class IMessageSender;
17
22 : public TSharedFromThis<FMessageBus, ESPMode::ThreadSafe>
23 , public IMessageBus
24{
25public:
26
34
36 virtual ~FMessageBus();
37
38public:
39
40 //~ IMessageBus interface
41
45 virtual FOnMessageBusShutdown& OnShutdown() override;
46 virtual void Publish(void* Message, UScriptStruct* TypeInfo, EMessageScope Scope, const TMap<FName, FString>& Annotations, const FTimespan& Delay, const FDateTime& Expiration, const TSharedRef<IMessageSender, ESPMode::ThreadSafe>& Publisher) override;
47 virtual void Register(const FMessageAddress& Address, const TSharedRef<IMessageReceiver, ESPMode::ThreadSafe>& Recipient) override;
48 virtual void Send(void* Message, UScriptStruct* TypeInfo, EMessageFlags Flags, const TMap<FName, FString>& Annotations, const TSharedPtr<IMessageAttachment, ESPMode::ThreadSafe>& Attachment, const TArray<FMessageAddress>& Recipients, const FTimespan& Delay, const FDateTime& Expiration, const TSharedRef<IMessageSender, ESPMode::ThreadSafe>& Sender) override;
49 virtual void Shutdown() override;
52 virtual void Unregister(const FMessageAddress& Address) override;
53 virtual void Unsubscribe(const TSharedRef<IMessageReceiver, ESPMode::ThreadSafe>& Subscriber, const FTopLevelAssetPath& MessageType) override;
54
57 virtual const FString& GetName() const override;
58
59private:
61 const FString Name;
62
64 FMessageRouter* Router;
65
67 FRunnableThread* RouterThread;
68
71
73 FOnMessageBusShutdown ShutdownDelegate;
74};
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EMessageFlags
Definition IMessageContext.h:186
EMessageScope
Definition IMessageContext.h:167
Definition MessageBus.h:24
virtual const FString & GetName() const override
Definition MessageBus.cpp:239
virtual void Shutdown() override
Definition MessageBus.cpp:161
virtual TSharedRef< IMessageTracer, ESPMode::ThreadSafe > GetTracer() override
Definition MessageBus.cpp:69
virtual void AddNotificationListener(const TSharedRef< IBusListener, ESPMode::ThreadSafe > &Listener) override
Definition MessageBus.cpp:229
virtual ~FMessageBus()
Definition MessageBus.cpp:31
virtual FOnMessageBusShutdown & OnShutdown() override
Definition MessageBus.cpp:90
virtual TSharedPtr< IMessageSubscription, ESPMode::ThreadSafe > Subscribe(const TSharedRef< IMessageReceiver, ESPMode::ThreadSafe > &Subscriber, const FTopLevelAssetPath &MessageType, const FMessageScopeRange &ScopeRange) override
Definition MessageBus.cpp:174
virtual void Unintercept(const TSharedRef< IMessageInterceptor, ESPMode::ThreadSafe > &Interceptor, const FTopLevelAssetPath &MessageType) override
Definition MessageBus.cpp:196
virtual void Publish(void *Message, UScriptStruct *TypeInfo, EMessageScope Scope, const TMap< FName, FString > &Annotations, const FTimespan &Delay, const FDateTime &Expiration, const TSharedRef< IMessageSender, ESPMode::ThreadSafe > &Publisher) override
Definition MessageBus.cpp:96
virtual void Unsubscribe(const TSharedRef< IMessageReceiver, ESPMode::ThreadSafe > &Subscriber, const FTopLevelAssetPath &MessageType) override
Definition MessageBus.cpp:217
virtual void RemoveNotificationListener(const TSharedRef< IBusListener, ESPMode::ThreadSafe > &Listener) override
Definition MessageBus.cpp:234
virtual void Unregister(const FMessageAddress &Address) override
Definition MessageBus.cpp:206
virtual void Intercept(const TSharedRef< IMessageInterceptor, ESPMode::ThreadSafe > &Interceptor, const FTopLevelAssetPath &MessageType) override
Definition MessageBus.cpp:75
Definition MessageRouter.h:29
Definition RunnableThread.h:20
Definition IMessageBus.h:114
Definition IMessageReceiver.h:26
Definition IMessageSender.h:28
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition SharedPointer.h:1640
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition Class.h:1720
Definition DateTime.h:76
Definition IMessageContext.h:26
Definition Timespan.h:76
Definition TopLevelAssetPath.h:38