UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MessageAddressBook.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 "Misc/Guid.h"
7#include "IMessageContext.h"
8#include "Misc/ScopeLock.h"
9
14{
15public:
16
19 {
20 CriticalSection = new FCriticalSection();
21 }
22
25 {
26 delete CriticalSection;
27 }
28
29public:
30
37 void Add(const FMessageAddress& Address, const FGuid& NodeId)
38 {
39 FScopeLock Lock(CriticalSection);
40
41 Entries.FindOrAdd(Address) = NodeId;
42 }
43
45 void Clear()
46 {
47 FScopeLock Lock(CriticalSection);
48
49 Entries.Reset();
50 }
51
58 bool Contains(const FMessageAddress& Address)
59 {
60 FScopeLock Lock(CriticalSection);
61
62 return Entries.Contains(Address);
63 }
64
72 {
74
75 FScopeLock Lock(CriticalSection);
76
77 for (const auto& Address : Addresses)
78 {
79 FGuid* NodeId = Entries.Find(Address);
80
81 if (NodeId != nullptr)
82 {
83 FoundNodes.AddUnique(*NodeId);
84 }
85 }
86
87 return FoundNodes;
88 }
89
100 {
101 OutRemovedAddresses.Reset();
102
103 FScopeLock Lock(CriticalSection);
104
105 Entries.GenerateKeyArray(OutRemovedAddresses);
106 Entries.Reset();
107 }
108
117 {
118 OutRemovedAddresses.Reset();
119
120 FScopeLock Lock(CriticalSection);
121
122 for (const auto& EntryPair : Entries)
123 {
124 if (EntryPair.Value == NodeId)
125 {
127 }
128 }
129
130 for (const auto& Address : OutRemovedAddresses)
131 {
132 Entries.Remove(Address);
133 }
134 }
135
136private:
137
139 FCriticalSection* CriticalSection;
140
143};
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
FRWLock Lock
Definition UnversionedPropertySerialization.cpp:921
Definition MessageAddressBook.h:14
void Add(const FMessageAddress &Address, const FGuid &NodeId)
Definition MessageAddressBook.h:37
~FMessageAddressBook()
Definition MessageAddressBook.h:24
TArray< FGuid > GetNodesFor(const TArray< FMessageAddress > &Addresses)
Definition MessageAddressBook.h:71
void RemoveAll(TArray< FMessageAddress > &OutRemovedAddresses)
Definition MessageAddressBook.h:99
void Clear()
Definition MessageAddressBook.h:45
FMessageAddressBook()
Definition MessageAddressBook.h:18
bool Contains(const FMessageAddress &Address)
Definition MessageAddressBook.h:58
void RemoveNode(const FGuid &NodeId, TArray< FMessageAddress > &OutRemovedAddresses)
Definition MessageAddressBook.h:116
Definition ScopeLock.h:141
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition Guid.h:109
Definition IMessageContext.h:26