UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
WriteBufferRedirect.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5// HEADER_UNIT_SKIP - Internal
6
8
9namespace UE {
10namespace Trace {
11namespace Private {
12
14extern thread_local FWriteBuffer* GTlsWriteBuffer;
15
17template <int BufferSize>
19{
20public:
22
25 void Close();
26 void Abandon();
27 uint8* GetData();
28 uint32 GetSize() const;
29 uint32 GetCapacity() const;
30 void Reset();
31
32private:
33 FWriteBuffer* PrevBuffer;
34 uint8 Data[BufferSize];
35 FWriteBuffer Buffer;
36};
37
39template <int BufferSize>
41{
42 Reset();
43 PrevBuffer = GTlsWriteBuffer;
45 Buffer.Size = uint16(BufferSize);
46 Buffer.ThreadId = ActiveRedirection;
47}
48
50template <int BufferSize>
55
57template <int BufferSize>
59{
60 if (PrevBuffer == nullptr)
61 {
62 return;
63 }
64
65 GTlsWriteBuffer = PrevBuffer;
66 PrevBuffer = nullptr;
67}
68
70template <int BufferSize>
72{
73 PrevBuffer = nullptr;
74}
75
77template <int BufferSize>
79{
80 return Buffer.Reaped;
81}
82
84template <int BufferSize>
86{
87 return uint32(Buffer.Committed - Buffer.Reaped);
88}
89
91template <int BufferSize>
93{
94 return BufferSize;
95}
96
98template <int BufferSize>
100{
101 Buffer.Cursor = Data + sizeof(uint32);
102 Buffer.Committed = Buffer.Cursor;
103 Buffer.Reaped = Buffer.Cursor;
104}
105
106} // namespace Private
107} // namespace Trace
108} // namespace UE
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
JsonWriter Close()
uint8_t uint8
Definition binka_ue_file_header.h:8
uint16_t uint16
Definition binka_ue_file_header.h:7
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition WriteBufferRedirect.h:19
void Close()
Definition WriteBufferRedirect.h:58
uint32 GetSize() const
Definition WriteBufferRedirect.h:85
@ ActiveRedirection
Definition WriteBufferRedirect.h:21
uint32 GetCapacity() const
Definition WriteBufferRedirect.h:92
uint8 * GetData()
Definition WriteBufferRedirect.h:78
~TWriteBufferRedirect()
Definition WriteBufferRedirect.h:51
void Abandon()
Definition WriteBufferRedirect.h:71
void Reset()
Definition WriteBufferRedirect.h:99
TWriteBufferRedirect()
Definition WriteBufferRedirect.h:40
@ Trace
Definition NetTraceConfig.h:23
Definition OverriddenPropertySet.cpp:45
thread_local FWriteBuffer * GTlsWriteBuffer
Definition AdvancedWidgetsModule.cpp:13