UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
NullNetworkReplayStreaming.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 "Stats/Stats.h"
9#include "Tickable.h"
10
12
13/* Class to hold metadata about an entire replay */
35
38{
39public:
41 StreamerState(EReplayStreamerState::Idle),
42 CurrentCheckpointIndex( 0 ),
43 LastKnownFileSize( 0 )
44 {}
45
47 virtual void StartStreaming(const FStartStreamingParameters& Params, const FStartStreamingCallback& Delegate) override;
48 virtual void StopStreaming() override;
49 virtual FArchive* GetHeaderArchive() override;
50 virtual FArchive* GetStreamingArchive() override;
51 virtual FArchive* GetCheckpointArchive() override;
52 virtual void FlushCheckpoint( const uint32 TimeInMS ) override;
53 virtual void GotoCheckpointIndex( const int32 CheckpointIndex, const FGotoCallback& Delegate, EReplayCheckpointType CheckpointType ) override;
54 virtual void GotoTimeInMS( const uint32 TimeInMS, const FGotoCallback& Delegate, EReplayCheckpointType CheckpointType ) override;
55 virtual void UpdateTotalDemoTime( uint32 TimeInMS ) override;
56 virtual void UpdatePlaybackTime(uint32 TimeInMS) override {}
57 virtual uint32 GetTotalDemoTime() const override { return ReplayInfo.LengthInMS; }
58 virtual bool IsDataAvailable() const override;
59 virtual void SetHighPriorityTimeRange( const uint32 StartTimeInMS, const uint32 EndTimeInMS ) override { }
60 virtual bool IsDataAvailableForTimeRange( const uint32 StartTimeInMS, const uint32 EndTimeInMS ) override { return true; }
61 virtual bool IsLoadingCheckpoint() const override { return false; }
62 virtual bool IsLive() const override;
63 virtual void DeleteFinishedStream( const FString& StreamName, const FDeleteFinishedStreamCallback& Delegate) override;
64 virtual void DeleteFinishedStream( const FString& StreamName, const int32 UserIndex, const FDeleteFinishedStreamCallback& Delegate ) override;
65 virtual void EnumerateStreams( const FNetworkReplayVersion& InReplayVersion, const int32 UserIndex, const FString& MetaString, const TArray< FString >& ExtraParms, const FEnumerateStreamsCallback& Delegate ) override;
66 virtual void EnumerateRecentStreams( const FNetworkReplayVersion& ReplayVersion, const int32 UserIndex, const FEnumerateStreamsCallback& Delegate ) override;
67 virtual void AddUserToReplay(const FString& UserString) override;
68 virtual void AddEvent(const uint32 TimeInMS, const FString& Group, const FString& Meta, const TArray<uint8>& Data) override;
69 virtual void AddOrUpdateEvent( const FString& Name, const uint32 TimeInMS, const FString& Group, const FString& Meta, const TArray<uint8>& Data ) override {}
70
71 virtual void EnumerateEvents( const FString& Group, const FEnumerateEventsCallback& EnumerationCompleteDelegate ) override;
72 virtual void EnumerateEvents( const FString& ReplayName, const FString& Group, const FEnumerateEventsCallback& EnumerationCompleteDelegate ) override;
73 virtual void EnumerateEvents( const FString& ReplayName, const FString& Group, const int32 UserIndex, const FEnumerateEventsCallback& Delegate ) override;
74
75 virtual void RequestEventData(const FString& EventID, const FRequestEventDataCallback& Delegate) override;
76 virtual void RequestEventData(const FString& ReplayName, const FString& EventID, const FRequestEventDataCallback& Delegate) override;
77 virtual void RequestEventData(const FString& ReplayName, const FString& EventId, const int32 UserIndex, const FRequestEventDataCallback& Delegate) override;
78 virtual void RequestEventGroupData(const FString& Group, const FRequestEventGroupDataCallback& Delegate) override;
79 virtual void RequestEventGroupData(const FString& ReplayName, const FString& Group, const FRequestEventGroupDataCallback& Delegate) override;
80 virtual void RequestEventGroupData(const FString& ReplayName, const FString& Group, const int32 UserIndex, const FRequestEventGroupDataCallback& Delegate) override;
81 virtual void SearchEvents(const FString& EventGroup, const FSearchEventsCallback& Delegate) override;
82 virtual void KeepReplay(const FString& ReplayName, const bool bKeep, const FKeepReplayCallback& Delegate) override;
83 virtual void KeepReplay(const FString& ReplayName, const bool bKeep, const int32 UserIndex, const FKeepReplayCallback& Delegate) override;
84 virtual void RenameReplayFriendlyName(const FString& ReplayName, const FString& NewFriendlyName, const FRenameReplayCallback& Delegate) override;
85 virtual void RenameReplayFriendlyName(const FString& ReplayName, const FString& NewFriendlyName, const int32 UserIndex, const FRenameReplayCallback& Delegate) override;
86 virtual void RenameReplay(const FString& ReplayName, const FString& NewName, const FRenameReplayCallback& Delegate) override;
87 virtual void RenameReplay(const FString& ReplayName, const FString& NewName, const int32 UserIndex, const FRenameReplayCallback& Delegate) override;
88 virtual FString GetReplayID() const override { return CurrentStreamName; }
89 virtual EReplayStreamerState GetReplayStreamerState() const override { return StreamerState; }
90 virtual void SetTimeBufferHintSeconds(const float InTimeBufferHintSeconds) override {}
91 virtual void RefreshHeader() override {};
92 virtual void DownloadHeader(const FDownloadHeaderCallback& Delegate) override
93 {
96 Delegate.Execute(Result);
97 }
98
100 virtual void Tick(float DeltaSeconds) override;
102 virtual TStatId GetStatId() const override;
103
105 virtual bool IsTickableWhenPaused() const override { return true; }
106
107 virtual uint32 GetMaxFriendlyNameSize() const override { return 0; }
108
109 virtual EStreamingOperationResult SetDemoPath(const FString& DemoPath) override
110 {
112 }
113
114 virtual EStreamingOperationResult GetDemoPath(FString& DemoPath) const override;
115
117
118private:
119 bool IsNamedStreamLive( const FString& StreamName ) const;
120
122 void GotoCheckpointIndexInternal(int32 CheckpointIndex, const FGotoCallback& Delegate, int32 TimeInMS);
123
125 void ReopenStreamFileForReading();
126
128 void UpdateReplayInfoIfValid();
129
131 TUniquePtr<FArchive> HeaderAr;
132
135
136 /* Handle to the archive that will read/write checkpoint files */
137 TUniquePtr<FArchive> CheckpointAr;
138
140 EReplayStreamerState StreamerState;
141
143 FString CurrentStreamName;
144
146 int32 CurrentCheckpointIndex;
147
149 FNullReplayInfo ReplayInfo;
150
152 int64 LastKnownFileSize;
153};
154
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define BEGIN_JSON_SERIALIZER
Definition JsonSerializerMacros.h:21
#define END_JSON_SERIALIZER
Definition JsonSerializerMacros.h:26
EStreamingOperationResult
Definition NetworkReplayStreaming.h:197
@ Unsupported
The operation succeeded.
EReplayCheckpointType
Definition NetworkReplayStreaming.h:482
EReplayStreamerState
Definition NetworkReplayStreaming.h:498
ETickableTickType
Definition Tickable.h:20
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition NetworkVersion.h:20
Definition NullNetworkReplayStreaming.h:38
virtual void AddEvent(const uint32 TimeInMS, const FString &Group, const FString &Meta, const TArray< uint8 > &Data) override
Definition NullNetworkReplayStreaming.cpp:389
virtual TStatId GetStatId() const override
Definition NullNetworkReplayStreaming.cpp:744
virtual void RequestEventData(const FString &EventID, const FRequestEventDataCallback &Delegate) override
Definition NullNetworkReplayStreaming.cpp:422
virtual bool IsDataAvailableForTimeRange(const uint32 StartTimeInMS, const uint32 EndTimeInMS) override
Definition NullNetworkReplayStreaming.h:60
virtual void GotoTimeInMS(const uint32 TimeInMS, const FGotoCallback &Delegate, EReplayCheckpointType CheckpointType) override
Definition NullNetworkReplayStreaming.cpp:644
virtual void RenameReplay(const FString &ReplayName, const FString &NewName, const FRenameReplayCallback &Delegate) override
Definition NullNetworkReplayStreaming.cpp:497
virtual uint32 GetMaxFriendlyNameSize() const override
Definition NullNetworkReplayStreaming.h:107
virtual void EnumerateStreams(const FNetworkReplayVersion &InReplayVersion, const int32 UserIndex, const FString &MetaString, const TArray< FString > &ExtraParms, const FEnumerateStreamsCallback &Delegate) override
Definition NullNetworkReplayStreaming.cpp:334
virtual void SetTimeBufferHintSeconds(const float InTimeBufferHintSeconds) override
Definition NullNetworkReplayStreaming.h:90
virtual void RenameReplayFriendlyName(const FString &ReplayName, const FString &NewFriendlyName, const FRenameReplayCallback &Delegate) override
Definition NullNetworkReplayStreaming.cpp:484
virtual void SetHighPriorityTimeRange(const uint32 StartTimeInMS, const uint32 EndTimeInMS) override
Definition NullNetworkReplayStreaming.h:59
virtual bool IsDataAvailable() const override
Definition NullNetworkReplayStreaming.cpp:285
virtual void RequestEventGroupData(const FString &Group, const FRequestEventGroupDataCallback &Delegate) override
Definition NullNetworkReplayStreaming.cpp:430
virtual uint32 GetTotalDemoTime() const override
Definition NullNetworkReplayStreaming.h:57
virtual void AddUserToReplay(const FString &UserString) override
Definition NullNetworkReplayStreaming.cpp:384
virtual void StartStreaming(const FStartStreamingParameters &Params, const FStartStreamingCallback &Delegate) override
Definition NullNetworkReplayStreaming.cpp:181
virtual bool IsLoadingCheckpoint() const override
Definition NullNetworkReplayStreaming.h:61
FNullNetworkReplayStreamer()
Definition NullNetworkReplayStreaming.h:40
virtual ETickableTickType GetTickableTickType() const override
Definition NullNetworkReplayStreaming.h:101
virtual void UpdatePlaybackTime(uint32 TimeInMS) override
Definition NullNetworkReplayStreaming.h:56
virtual void KeepReplay(const FString &ReplayName, const bool bKeep, const FKeepReplayCallback &Delegate) override
Definition NullNetworkReplayStreaming.cpp:461
virtual bool IsCheckpointTypeSupported(EReplayCheckpointType CheckpointType) const override
Definition NullNetworkReplayStreaming.h:116
virtual EReplayStreamerState GetReplayStreamerState() const override
Definition NullNetworkReplayStreaming.h:89
virtual void AddOrUpdateEvent(const FString &Name, const uint32 TimeInMS, const FString &Group, const FString &Meta, const TArray< uint8 > &Data) override
Definition NullNetworkReplayStreaming.h:69
virtual void DownloadHeader(const FDownloadHeaderCallback &Delegate) override
Definition NullNetworkReplayStreaming.h:92
virtual bool IsTickableWhenPaused() const override
Definition NullNetworkReplayStreaming.h:105
virtual bool IsLive() const override
Definition NullNetworkReplayStreaming.cpp:292
virtual void FlushCheckpoint(const uint32 TimeInMS) override
Definition NullNetworkReplayStreaming.cpp:532
virtual EStreamingOperationResult SetDemoPath(const FString &DemoPath) override
Definition NullNetworkReplayStreaming.h:109
virtual void GotoCheckpointIndex(const int32 CheckpointIndex, const FGotoCallback &Delegate, EReplayCheckpointType CheckpointType) override
Definition NullNetworkReplayStreaming.cpp:561
virtual void EnumerateEvents(const FString &Group, const FEnumerateEventsCallback &EnumerationCompleteDelegate) override
Definition NullNetworkReplayStreaming.cpp:404
virtual void RefreshHeader() override
Definition NullNetworkReplayStreaming.h:91
virtual FArchive * GetHeaderArchive() override
Definition NullNetworkReplayStreaming.cpp:268
virtual void UpdateTotalDemoTime(uint32 TimeInMS) override
Definition NullNetworkReplayStreaming.cpp:278
virtual FArchive * GetStreamingArchive() override
Definition NullNetworkReplayStreaming.cpp:273
virtual void StopStreaming() override
Definition NullNetworkReplayStreaming.cpp:252
virtual void SearchEvents(const FString &EventGroup, const FSearchEventsCallback &Delegate) override
Definition NullNetworkReplayStreaming.cpp:448
virtual void DeleteFinishedStream(const FString &StreamName, const FDeleteFinishedStreamCallback &Delegate) override
Definition NullNetworkReplayStreaming.cpp:308
virtual FArchive * GetCheckpointArchive() override
Definition NullNetworkReplayStreaming.cpp:514
virtual void EnumerateRecentStreams(const FNetworkReplayVersion &ReplayVersion, const int32 UserIndex, const FEnumerateStreamsCallback &Delegate) override
Definition NullNetworkReplayStreaming.cpp:505
virtual FString GetReplayID() const override
Definition NullNetworkReplayStreaming.h:88
Definition NullNetworkReplayStreaming.h:156
virtual TSharedPtr< INetworkReplayStreamer > CreateReplayStreamer()
Definition NullNetworkReplayStreaming.cpp:755
Definition NullNetworkReplayStreaming.h:15
int32 LengthInMS
Definition NullNetworkReplayStreaming.h:19
bool bIsValid
Definition NullNetworkReplayStreaming.h:24
FString FriendlyName
Definition NullNetworkReplayStreaming.h:22
uint32 Changelist
Definition NullNetworkReplayStreaming.h:21
uint32 NetworkVersion
Definition NullNetworkReplayStreaming.h:20
int32 DemoFileLastOffset
Definition NullNetworkReplayStreaming.h:23
FNullReplayInfo()
Definition NullNetworkReplayStreaming.h:17
JSON_SERIALIZE("FriendlyName", FriendlyName)
JSON_SERIALIZE("NetworkVersion", NetworkVersion)
BEGIN_JSON_SERIALIZER JSON_SERIALIZE("LengthInMS", LengthInMS)
JSON_SERIALIZE("DemoFileLastOffset", DemoFileLastOffset)
JSON_SERIALIZE("Changelist", Changelist)
Definition Tickable.h:135
Definition NetworkReplayStreaming.h:516
Definition NetworkReplayStreaming.h:684
Definition UniquePtr.h:107
@ false
Definition radaudio_common.h:23
Definition NetworkReplayStreaming.h:408
Definition JsonSerializable.h:17
Definition NetworkReplayStreaming.h:488
Definition LightweightStats.h:416