UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
OutputDeviceMemory.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Containers/Array.h"
6#include "CoreTypes.h"
9#include "Misc/OutputDevice.h"
11#include "UObject/NameTypes.h"
12
17{
18public:
26
28
30 CORE_API virtual void Dump(FArchive& Ar) override;
31
32 //~ Begin FOutputDevice Interface.
38 CORE_API virtual void TearDown() override;
39
44 CORE_API virtual void Flush() override;
45
46 CORE_API virtual void Serialize( const TCHAR* Data, ELogVerbosity::Type Verbosity, const class FName& Category, const double Time ) override;
47 CORE_API virtual void Serialize( const TCHAR* Data, ELogVerbosity::Type Verbosity, const class FName& Category) override;
48 virtual bool CanBeUsedOnAnyThread() const override
49 {
50 return true;
51 }
52 virtual bool CanBeUsedOnPanicThread() const override
53 {
54 return true;
55 }
56 virtual bool IsMemoryOnly() const override
57 {
58 return true;
59 }
60 //~ End FOutputDevice Interface.
61
62private:
63
65 CORE_API void SerializeToBuffer(ANSICHAR* Data, int32 Length);
66
67
68 class FOutputDeviceMemoryProxyArchive : public FArchive
69 {
70 FOutputDeviceMemory& OutputDevice;
71 public:
72 FOutputDeviceMemoryProxyArchive(FOutputDeviceMemory& InOutputDevice)
73 : OutputDevice(InOutputDevice)
74 {}
75 virtual void Serialize(void* V, int64 Length) override
76 {
77 OutputDevice.SerializeToBuffer((ANSICHAR*)V, Length / sizeof(ANSICHAR));
78 }
79 } ArchiveProxy;
80
82 TArray<ANSICHAR> Buffer;
84 int32 BufferStartPos;
86 int32 BufferLength;
88 int32 PreserveSize;
90 FCriticalSection BufferPosCritical;
91};
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::ANSICHAR ANSICHAR
An ANSI character. Normally a signed type.
Definition Platform.h:1131
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
Definition Archive.h:1208
Definition NameTypes.h:617
Definition OutputDeviceMemory.h:17
virtual CORE_API void TearDown() override
Definition OutputDeviceMemory.cpp:45
virtual bool CanBeUsedOnAnyThread() const override
Definition OutputDeviceMemory.h:48
virtual bool IsMemoryOnly() const override
Definition OutputDeviceMemory.h:56
virtual bool CanBeUsedOnPanicThread() const override
Definition OutputDeviceMemory.h:52
virtual CORE_API void Flush() override
Definition OutputDeviceMemory.cpp:68
virtual CORE_API void Dump(FArchive &Ar) override
Definition OutputDeviceMemory.cpp:124
CORE_API ~FOutputDeviceMemory()
Definition OutputDevice.h:133
Definition Array.h:670
Type
Definition LogVerbosity.h:17