5#include "Containers/Array.h"
12#define UE_API CORE_API
17namespace UE {
class FLogTemplate; }
18namespace UE {
struct FLogTemplateOptions; }
31 return Data.GetData();
34 inline const void*
Get()
const
36 return Data.GetData();
58 inline const void*
Get()
const
83 Data = FMemory::Malloc(
Size);
87 inline const void*
Get()
const
98 inline static void Free(
void*
D)
107 void* Data =
nullptr;
124struct FLogTemplateOptions
127 bool bAllowSubObjectReferences =
false;
135template <
typename StorageType>
139 inline explicit TLogTemplate(
const TCHAR*
Format,
const FLogTemplateOptions& Options = {},
const Logging::Private::FLogField* Fields =
nullptr,
int32 FieldCount = 0)
141 Logging::Private::CreateLogTemplate(
Format, Options, Fields, FieldCount, [
this](
int32 Size) {
return Storage.Allocate(
Size); });
144 inline explicit TLogTemplate(
const UTF8CHAR*
Format,
const FLogTemplateOptions& Options = {},
const Logging::Private::FLogField* Fields =
nullptr,
int32 FieldCount = 0)
146 Logging::Private::CreateLogTemplate(
Format, Options, Fields, FieldCount, [
this](
int32 Size) {
return Storage.Allocate(
Size); });
149 inline explicit TLogTemplate(
const FText&
Format,
const FLogTemplateOptions& Options = {},
const Logging::Private::FLogField* Fields =
nullptr,
int32 FieldCount = 0)
154 inline explicit TLogTemplate(
const TCHAR* TextNamespace,
const TCHAR* TextKey,
const TCHAR*
Format,
const FLogTemplateOptions& Options = {},
const Logging::Private::FLogField* Fields =
nullptr,
int32 FieldCount = 0)
159 inline explicit TLogTemplate(
const TCHAR* TextNamespace,
const TCHAR* TextKey,
const UTF8CHAR*
Format,
const FLogTemplateOptions& Options = {},
const Logging::Private::FLogField* Fields =
nullptr,
int32 FieldCount = 0)
166 FormatLogTo(Out,
Get(), Fields);
171 FormatLogTo(Out,
Get(), Fields);
176 return FormatLogToText(
Get(), Fields);
179 inline ~TLogTemplate()
184 inline FLogTemplate*
Get()
const
186 return (FLogTemplate*)Storage.Get();
189 inline FLogTemplate* Detach()
190 requires requires (StorageType&
S) {
S.Detach(); }
192 return (FLogTemplate*)Storage.Detach();
196 TLogTemplate() =
default;
207UE_DEPRECATED(5.6,
"Use FInlineLogTemplate or FUniqueLogTemplate.")
208inline FLogTemplate* CreateLogTemplate(const
TCHAR*
Format, const FLogTemplateOptions& Options = {})
213UE_DEPRECATED(5.6,
"Use FInlineLogTemplate or FUniqueLogTemplate.")
214inline FLogTemplate* CreateLogTemplate(const
FText&
Format, const FLogTemplateOptions& Options = {})
219UE_DEPRECATED(5.6,
"Use FInlineLogTemplate or FUniqueLogTemplate.")
220inline FLogTemplate* CreateLogTemplate(const
TCHAR* TextNamespace, const
TCHAR* TextKey, const
TCHAR*
Format, const FLogTemplateOptions& Options = {})
225UE_DEPRECATED(5.6,
"Use FInlineLogTemplate or FUniqueLogTemplate.")
226inline void DestroyLogTemplate(FLogTemplate* Template)
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UE_API
Definition SColorGradingComponentViewer.h:12
#define ON_SCOPE_EXIT
Definition ScopeExit.h:73
uint32 Size
Definition VulkanMemory.cpp:4034
Definition CompactBinary.h:892
Definition CompactBinaryWriter.h:68
Definition StringBuilder.h:79
Definition UniquePtr.h:107
UE_FORCEINLINE_HINT T * Get() const
Definition UniquePtr.h:324
Definition StructuredLogFormat.h:26
void * Allocate(int32 Size)
Definition StructuredLogFormat.h:28
const void * Get() const
Definition StructuredLogFormat.h:34
Definition StructuredLogFormat.h:69
FMemoryLogTemplateStorage(const FMemoryLogTemplateStorage &)=delete
~FMemoryLogTemplateStorage()
Definition StructuredLogFormat.h:75
void * Detach()
Definition StructuredLogFormat.h:92
FMemoryLogTemplateStorage & operator=(const FMemoryLogTemplateStorage &)=delete
const void * Get() const
Definition StructuredLogFormat.h:87
void * Allocate(int32 Size)
Definition StructuredLogFormat.h:80
FMemoryLogTemplateStorage()=default
static void Free(void *D)
Definition StructuredLogFormat.h:98
Definition StructuredLogFormat.h:50
const void * Get() const
Definition StructuredLogFormat.h:58
void * Allocate(int32 Size)
Definition StructuredLogFormat.h:52
Definition FunctionWithContext.h:37
FORCEINLINE T * Get(const FObjectPtr &ObjectPtr)
Definition ObjectPtr.h:426
Definition StructuredLog.cpp:48
UE_API void DestroyLogTemplate(FLogTemplate *Template)
Definition StructuredLog.cpp:938
UE_API void CreateLocalizedLogTemplate(const FText &Format, const FLogTemplateOptions &Options, const FLogField *Fields, int32 FieldCount, TFunctionWithContext< void *(int32)> Allocate)
Definition StructuredLog.cpp:921
Definition AdvancedWidgetsModule.cpp:13
static FORCENOINLINE CORE_API void Free(void *Original)
Definition UnrealMemory.cpp:685