UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MessageBridgeBuilder.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"
7#include "IMessageBridge.h"
8#include "IMessageBus.h"
9#include "IMessageTransport.h"
10#include "IMessagingModule.h"
11
12
17{
18public:
19
22 : Address(FMessageAddress::NewAddress())
23 , BusPtr(IMessagingModule::Get().GetDefaultBus())
24 , Disabled(false)
25 , Transport(nullptr)
26 { }
27
34 : Address(FMessageAddress::NewAddress())
35 , BusPtr(Bus)
36 , Disabled(false)
37 , Transport(nullptr)
38 { }
39
40public:
41
48 {
49 Disabled = true;
50
51 return *this;
52 }
53
66
76 {
77 Address = InAddress;
78
79 return *this;
80 }
81
82public:
83
90 {
92
93 check(Transport.IsValid());
94
95 auto Bus = BusPtr.Pin();
96
97 if (Bus.IsValid())
98 {
99 Bridge = IMessagingModule::Get().CreateBridge(Address, Bus.ToSharedRef(), Transport.ToSharedRef());
100
101 if (Bridge.IsValid())
102 {
103 if (Disabled)
104 {
105 Bridge->Disable();
106 }
107 else
108 {
109 Bridge->Enable();
110 }
111 }
112 }
113
114 return Bridge;
115 }
116
123 {
124 return Build();
125 }
126
127private:
128
130 FMessageAddress Address;
131
134
136 bool Disabled;
137
140};
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition MessageBridgeBuilder.h:17
FMessageBridgeBuilder()
Definition MessageBridgeBuilder.h:21
TSharedPtr< IMessageBridge, ESPMode::ThreadSafe > Build()
Definition MessageBridgeBuilder.h:89
FMessageBridgeBuilder(const TSharedRef< IMessageBus, ESPMode::ThreadSafe > &Bus)
Definition MessageBridgeBuilder.h:33
FMessageBridgeBuilder & UsingTransport(const TSharedRef< IMessageTransport, ESPMode::ThreadSafe > &InTransport)
Definition MessageBridgeBuilder.h:60
FMessageBridgeBuilder & WithAddress(const FMessageAddress &InAddress)
Definition MessageBridgeBuilder.h:75
FMessageBridgeBuilder & ThatIsDisabled()
Definition MessageBridgeBuilder.h:47
Definition IMessagingModule.h:27
virtual TSharedPtr< IMessageBridge, ESPMode::ThreadSafe > CreateBridge(const FMessageAddress &Address, const TSharedRef< IMessageBus, ESPMode::ThreadSafe > &Bus, const TSharedRef< IMessageTransport, ESPMode::ThreadSafe > &Transport)=0
static IMessagingModule & Get()
Definition IMessagingModule.h:95
Definition SharedPointer.h:692
TSharedRef< ObjectType, Mode > ToSharedRef() const &
Definition SharedPointer.h:1028
UE_FORCEINLINE_HINT const bool IsValid() const
Definition SharedPointer.h:1085
Definition SharedPointer.h:153
Definition SharedPointer.h:1295
UE_FORCEINLINE_HINT TSharedPtr< ObjectType, Mode > Pin() const &
Definition SharedPointer.h:1512
@ false
Definition radaudio_common.h:23
Definition IMessageContext.h:26