UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
TraceController.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "IMessageContext.h"
6#include "ITraceController.h"
7#include "MessageEndpoint.h"
10
14class IMessageBus;
16
21{
22public:
24 virtual ~FTraceController() override;
25
26private:
27 virtual void SendDiscoveryRequest(const FGuid& SessionId, const FGuid& InstanceId) const override;
28 virtual void SendDiscoveryRequest() override;
29 virtual void SendStatusUpdateRequest() override;
30 virtual void SendChannelUpdateRequest() override;
31 virtual void SendSettingsUpdateRequest() override;
32 virtual bool HasAvailableInstance(const FGuid& InstanceId) override;
33 virtual void WithInstance(FGuid InstanceId, FCallback Func) override;
34
35 DECLARE_DERIVED_EVENT(FTraceController, ITraceController::FStatusRecievedEvent, FStatusRecievedEvent);
36 virtual FStatusRecievedEvent& OnStatusReceived() override
37 {
38 return StatusReceivedEvent;
39 }
40
41 /* Message handlers */
42 void OnNotification(const FMessageBusNotification& MessageBusNotification);
43 void OnDiscoveryResponse(const FTraceControlDiscovery& Message, const TSharedRef<IMessageContext>& Context);
44 void OnStatus(const FTraceControlStatus& Message, const TSharedRef<IMessageContext>& Context);
45 void OnChannelsDesc(const FTraceControlChannelsDesc& Message, const TSharedRef<IMessageContext>& Context);
46 void OnChannelsStatus(const FTraceControlChannelsStatus& Message, const TSharedRef<IMessageContext>& Context);
47 void OnSettings(const FTraceControlSettings& Message, const TSharedRef<IMessageContext>& Context);
48 static void UpdateStatus(const FTraceControlStatus& Message, FTraceStatus& Status);
49
50private:
51
52 struct FTracingInstance
53 {
54 FTraceStatus Status;
56
58 FTracingInstance() = delete;
59 };
60
65 TWeakPtr<IMessageBus> MessageBus;
66
68 TSharedPtr<FMessageEndpoint> MessageEndpoint;
69
71 FMessageAddress TraceControlAddress;
72
74 FStatusRecievedEvent StatusReceivedEvent;
75
77 FRWLock InstancesLock;
78
81
83 TMap<FGuid, FMessageAddress> InstanceToAddress;
84};
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_DERIVED_EVENT(OwningType, BaseTypeEvent, EventName)
Definition Delegate.h:231
Definition MessageEndpoint.h:70
Definition TraceControllerCommands.h:15
Definition TraceController.h:21
virtual ~FTraceController() override
Definition TraceController.cpp:23
Definition IMessageBus.h:114
Definition ITraceController.h:162
Definition AndroidPlatformMisc.h:14
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition SharedPointer.h:1295
Definition CriticalSection.h:14
Definition Guid.h:109
Definition IMessageContext.h:26
Definition MessageEndpoint.h:36
Definition TraceControlMessages.h:142
Definition TraceControlMessages.h:164
Definition TraceControlMessages.h:222
Definition TraceControlMessages.h:108
Definition TraceControlMessages.h:29
Definition ITraceController.h:17