UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IMessageBus.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Containers/Array.h"
7#include "Math/Range.h"
10
11class FName;
13class IMessageContext;
16class IMessageSender;
18class IMessageTracer;
19class IBusListener;
20class UScriptStruct;
21
23enum class EMessageScope : uint8;
24enum class EMessageFlags : uint32;
25
26struct FDateTime;
27struct FMessageAddress;
28struct FTimespan;
29
32
33
114{
115public:
116
129
136
144 UE_DEPRECATED(5.1, "Types names are now represented by path names. Please use a version of this function that takes an FTopLevelAssetPath as MessageType.")
146
155
171 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) = 0;
172
180 virtual void Register(const FMessageAddress& Address, const TSharedRef<IMessageReceiver, ESPMode::ThreadSafe>& Recipient) = 0;
181
199 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) = 0;
200
206 virtual void Shutdown() = 0;
207
220 UE_DEPRECATED(5.1, "Types names are now represented by path names. Please use a version of this function that takes an FTopLevelAssetPath as MessageType.")
222
236
244 UE_DEPRECATED(5.1, "Types names are now represented by path names. Please use a version of this function that takes an FTopLevelAssetPath as MessageType.")
246
255
262 virtual void Unregister(const FMessageAddress& Address) = 0;
263
271 UE_DEPRECATED(5.1, "Types names are now represented by path names. Please use a version of this function that takes an FTopLevelAssetPath as MessageType.")
272 MESSAGING_API virtual void Unsubscribe(const TSharedRef<IMessageReceiver, ESPMode::ThreadSafe>& Subscriber, const FName& MessageType);
273
281 virtual void Unsubscribe(const TSharedRef<IMessageReceiver, ESPMode::ThreadSafe>& Subscriber, const FTopLevelAssetPath& MessageType) = 0;
282
288
294
298 virtual const FString& GetName() const = 0;
299
300public:
301
309
311
312public:
313
316};
OODEFFUNC typedef const int const char * function
Definition oodle2.h:710
EGLSurface EGLint const EGLint * names
Definition AndroidOpenGLFunctions.h:11
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_MULTICAST_DELEGATE(DelegateName)
Definition DelegateCombinations.h:23
EMessageBusNotification
Definition IMessageBusListener.h:10
EMessageFlags
Definition IMessageContext.h:186
EMessageScope
Definition IMessageContext.h:167
ESPMode
Definition SharedPointerFwd.h:12
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition NameTypes.h:617
Definition IMessageBusListener.h:27
Definition IMessageAttachment.h:24
Definition IMessageBus.h:114
virtual MESSAGING_API void Unsubscribe(const TSharedRef< IMessageReceiver, ESPMode::ThreadSafe > &Subscriber, const FName &MessageType)
Definition MessageBus.cpp:261
virtual void RemoveNotificationListener(const TSharedRef< IBusListener, ESPMode::ThreadSafe > &Listener)=0
virtual MESSAGING_API TSharedPtr< IMessageSubscription, ESPMode::ThreadSafe > Subscribe(const TSharedRef< IMessageReceiver, ESPMode::ThreadSafe > &Subscriber, const FName &MessageType, const TRange< EMessageScope > &ScopeRange)
Definition MessageBus.cpp:251
virtual void Unregister(const FMessageAddress &Address)=0
virtual void Shutdown()=0
virtual MESSAGING_API void Unintercept(const TSharedRef< IMessageInterceptor, ESPMode::ThreadSafe > &Interceptor, const FName &MessageType)
Definition MessageBus.cpp:256
static MESSAGING_API const FTopLevelAssetPath PATHNAME_All
Definition IMessageBus.h:310
virtual void AddNotificationListener(const TSharedRef< IBusListener, ESPMode::ThreadSafe > &Listener)=0
virtual FOnMessageBusShutdown & OnShutdown()=0
virtual const FString & GetName() const =0
virtual MESSAGING_API void Intercept(const TSharedRef< IMessageInterceptor, ESPMode::ThreadSafe > &Interceptor, const FName &MessageType)
Definition MessageBus.cpp:246
virtual TSharedRef< IMessageTracer, ESPMode::ThreadSafe > GetTracer()=0
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)=0
virtual void Forward(const TSharedRef< IMessageContext, ESPMode::ThreadSafe > &Context, const TArray< FMessageAddress > &Recipients, const FTimespan &Delay, const TSharedRef< IMessageSender, ESPMode::ThreadSafe > &Forwarder)=0
Definition IMessageContext.h:225
Definition IMessageInterceptor.h:16
Definition IMessageReceiver.h:26
Definition IMessageSender.h:28
Definition IMessageSubscription.h:25
Definition IMessageTracer.h:207
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition Range.h:50
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