UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IMessageContext.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreTypes.h"
7#include "Containers/Array.h"
8#include "Containers/Map.h"
9#include "Misc/Crc.h"
10#include "Misc/Guid.h"
12#include "UObject/Class.h"
13#include "UObject/NameTypes.h"
16
18
19struct FDateTime;
20
21
26{
27public:
28
31
32public:
33
41 friend bool operator==(const FMessageAddress& X, const FMessageAddress& Y)
42 {
43 return (X.UniqueId == Y.UniqueId);
44 }
45
53 friend bool operator!=(const FMessageAddress& X, const FMessageAddress& Y)
54 {
55 return (X.UniqueId != Y.UniqueId);
56 }
57
65 {
66 return Ar << A.UniqueId;
67 }
68
69public:
70
77 {
78 UniqueId.Invalidate();
79 }
80
87 bool IsValid() const
88 {
89 return UniqueId.IsValid();
90 }
91
98 FString ToString() const
99 {
100 return UniqueId.ToString();
101 }
102
103public:
104
111 friend uint32 GetTypeHash(const FMessageAddress& Address)
112 {
113 return FCrc::MemCrc_DEPRECATED(&Address.UniqueId, sizeof(FGuid));
114 }
115
116public:
117
124 {
125 FMessageAddress Result;
126 Result.UniqueId = FGuid::NewGuid();
127
128 return Result;
129 }
130
139 static bool Parse(const FString& String, FMessageAddress& OutAddress)
140 {
141 return FGuid::Parse(String, OutAddress.UniqueId);
142 }
143
144private:
145
147 FGuid UniqueId;
148};
149
150
167{
169 Thread,
170
172 Process,
173
175 Network,
176
182 All
183};
184
186{
188 None = 0,
189
191 Reliable = 1 << 0,
192
194 Traced = 1 << 1
195};
197
198
201
204
205
225{
226public:
227
233 virtual const TMap<FName, FString>& GetAnnotations() const = 0;
234
241
247 virtual const FDateTime& GetExpiration() const = 0;
248
255 virtual const void* GetMessage() const = 0;
256
264
271
278 virtual const TArray<FMessageAddress>& GetRecipients() const = 0;
279
285 virtual EMessageScope GetScope() const = 0;
286
292 virtual EMessageFlags GetFlags() const = 0;
293
300 virtual const FMessageAddress& GetSender() const = 0;
301
308 virtual const FMessageAddress& GetForwarder() const = 0;
309
317
324 virtual const FDateTime& GetTimeForwarded() const = 0;
325
332 virtual const FDateTime& GetTimeSent() const = 0;
333
334public:
335
342 UE_DEPRECATED(5.1, "Type names are now represented by path names. Please use GetMessageTypePathName.")
344 {
345 if (IsValid())
346 {
349 }
350
351 return NAME_None;
352 }
353
370
377 bool IsForwarded() const
378 {
379 return GetOriginalContext().IsValid();
380 }
381
388 bool IsValid() const
389 {
390 return ((GetMessage() != nullptr) && GetMessageTypeInfo().IsValid(false, true));
391 }
392
393public:
394
396 virtual ~IMessageContext() { }
397};
#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 ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
#define X(Name, Desc)
Definition FormatStringSan.h:47
EMessageFlags
Definition IMessageContext.h:186
EMessageScope
Definition IMessageContext.h:167
TRange< EMessageScope > FMessageScopeRange
Definition IMessageContext.h:200
TRangeBound< EMessageScope > FMessageScopeRangeBound
Definition IMessageContext.h:203
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition NameTypes.h:617
Definition IMessageAttachment.h:24
Definition IMessageContext.h:225
virtual TSharedPtr< IMessageContext, ESPMode::ThreadSafe > GetOriginalContext() const =0
virtual ENamedThreads::Type GetSenderThread() const =0
virtual EMessageScope GetScope() const =0
bool IsValid() const
Definition IMessageContext.h:388
virtual const FDateTime & GetTimeSent() const =0
virtual const TWeakObjectPtr< UScriptStruct > & GetMessageTypeInfo() const =0
virtual const FMessageAddress & GetSender() const =0
FTopLevelAssetPath GetMessageTypePathName() const
Definition IMessageContext.h:360
virtual const FDateTime & GetExpiration() const =0
virtual const void * GetMessage() const =0
FName GetMessageType() const
Definition IMessageContext.h:343
virtual const TMap< FName, FString > & GetAnnotations() const =0
bool IsForwarded() const
Definition IMessageContext.h:377
virtual ~IMessageContext()
Definition IMessageContext.h:396
virtual const TArray< FMessageAddress > & GetRecipients() const =0
virtual const FMessageAddress & GetForwarder() const =0
virtual const FDateTime & GetTimeForwarded() const =0
virtual EMessageFlags GetFlags() const =0
virtual TSharedPtr< IMessageAttachment, ESPMode::ThreadSafe > GetAttachment() const =0
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition RangeBound.h:36
Definition Range.h:50
Definition SharedPointer.h:692
UE_FORCEINLINE_HINT const bool IsValid() const
Definition SharedPointer.h:1085
FORCEINLINE FName GetFName() const
Definition UObjectBase.h:233
Definition Class.h:480
COREUOBJECT_API FTopLevelAssetPath GetStructPathName() const
Definition Class.cpp:2732
Type
Definition TaskGraphInterfaces.h:57
static CORE_API uint32 MemCrc_DEPRECATED(const void *Data, int32 Length, uint32 CRC=0)
Definition Crc.cpp:592
Definition DateTime.h:76
Definition Guid.h:109
void Invalidate()
Definition Guid.h:305
FString ToString(EGuidFormats Format=EGuidFormats::Digits) const
Definition Guid.h:329
static CORE_API FGuid NewGuid()
Definition Guid.cpp:236
bool IsValid() const
Definition Guid.h:318
static CORE_API bool Parse(const TCHAR *GuidString, FGuid &OutGuid)
Definition Guid.cpp:307
Definition IMessageContext.h:26
static FMessageAddress NewAddress()
Definition IMessageContext.h:123
FMessageAddress()
Definition IMessageContext.h:30
static bool Parse(const FString &String, FMessageAddress &OutAddress)
Definition IMessageContext.h:139
FString ToString() const
Definition IMessageContext.h:98
friend bool operator!=(const FMessageAddress &X, const FMessageAddress &Y)
Definition IMessageContext.h:53
void Invalidate()
Definition IMessageContext.h:76
friend FArchive & operator<<(FArchive &Ar, FMessageAddress &A)
Definition IMessageContext.h:64
friend uint32 GetTypeHash(const FMessageAddress &Address)
Definition IMessageContext.h:111
bool IsValid() const
Definition IMessageContext.h:87
friend bool operator==(const FMessageAddress &X, const FMessageAddress &Y)
Definition IMessageContext.h:41
Definition TopLevelAssetPath.h:38
Definition WeakObjectPtrTemplates.h:25
FORCEINLINE T * Get(bool bEvenIfPendingKill) const
Definition WeakObjectPtrTemplates.h:132