UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
RemoteConfigIni.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 "Containers/Map.h"
8#include "CoreTypes.h"
10#include "Misc/DateTime.h"
11#include "Stats/Stats.h"
12
13class FConfigFile;
14template<typename TTask> class FAsyncTask;
15
46
47
52{
53public:
54
57
59 void DoWork();
60
62 bool IsReadSuccess() const;
63
66
71
73 bool CanAbandon();
74
76 void Abandon();
77
78private:
79
81 TCHAR Filename[1024];
82
85
87 FString Contents;
88
90 bool bIsRead;
91};
92
93
109
110
115{
116public:
117
120
122 CORE_API void Tick();
123
126
128 bool IsFinished(const TCHAR* InFilename);
129
132
135
136private:
137
139 bool FindCachedWriteTask(const TCHAR* InFilename, bool bCompareContents, const TCHAR* InContents);
140
143
146
148 FCriticalSection SynchronizationObject;
149};
150
151
156{
157public:
158
161
163 static FRemoteConfig* Get();
164
166 bool IsRemoteFile(const TCHAR* Filename);
167
169 bool ShouldReadRemoteFile(const TCHAR* Filename);
170
172 FRemoteConfigAsyncIOInfo* FindConfig(const TCHAR* Filename);
173
175 bool IsFinished(const TCHAR* InFilename);
176
178 bool Read(const TCHAR* GeneratedIniFile, const TCHAR* DefaultIniFile);
179
181 bool Write(const TCHAR* Filename, FString& Contents);
182
184 void FinishRead(const TCHAR* Filename);
185
187 CORE_API static void Flush();
188
189 /* Replaces chars used by the ini parser with "special chars". */
190 CORE_API static FString ReplaceIniCharWithSpecialChar(const FString& Str);
191
192 /* Replaces "special chars" that have been inserted to avoid problems with the ini parser with equivalent regular chars. */
193 CORE_API static FString ReplaceIniSpecialCharWithChar(const FString& Str);
194
195private:
196
198 FString GenerateRemotePath(const TCHAR* Filename);
199
202
204 float Timeout;
205
207 bool bIsEnabled;
208
210 bool bHasCachedFilenames;
211
213 TArray<FString> CachedFileNames;
214};
215
216
219
222
225
227void MakeLocalCopy(const TCHAR* Filename);
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
#define UE_FORCEINLINE_HINT
Definition Platform.h:723
#define RETURN_QUICK_DECLARE_CYCLE_STAT(StatId, GroupId)
Definition Stats.h:655
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
bool IsUsingLocalIniFile(const TCHAR *FilenameToLoad, const TCHAR *IniFileName)
Definition RemoteConfigIni.cpp:440
FDateTime GetIniTimeStamp(const TCHAR *FilenameToLoad, const TCHAR *IniFileName)
Definition RemoteConfigIni.cpp:492
void ProcessIniContents(const TCHAR *FilenameToLoad, const TCHAR *IniFileName, FConfigFile *Config, bool bDoEmptyConfig, bool bDoCombine)
Definition RemoteConfigIni.cpp:449
void MakeLocalCopy(const TCHAR *Filename)
Definition RemoteConfigIni.cpp:508
Definition AsyncWork.h:585
Definition ConfigCacheIni.h:566
Definition RemoteConfigIni.h:98
FString Filename
Definition RemoteConfigIni.h:106
FRemoteConfigAsyncCachedWriteTask(const TCHAR *InFileName, FString *InContents)
Definition RemoteConfigIni.h:100
FString Contents
Definition RemoteConfigIni.h:107
Definition RemoteConfigIni.h:115
CORE_API void Tick()
Definition RemoteConfigIni.cpp:112
bool AreAllTasksFinished(bool bDoRemoval)
Definition RemoteConfigIni.cpp:190
bool GetReadData(const TCHAR *InFilename, FRemoteConfigAsyncIOInfo &OutIOInfo)
Definition RemoteConfigIni.cpp:224
bool StartTask(const TCHAR *InFilename, const TCHAR *RemotePath, FRemoteConfigAsyncIOInfo &InIOInfo, FString *InContents, bool bInIsRead)
Definition RemoteConfigIni.cpp:140
bool IsFinished(const TCHAR *InFilename)
Definition RemoteConfigIni.cpp:180
static CORE_API FRemoteConfigAsyncTaskManager * Get()
Definition RemoteConfigIni.cpp:106
Definition RemoteConfigIni.h:52
void DoWork()
Definition RemoteConfigIni.cpp:57
FRemoteConfigAsyncIOInfo & GetIOInfo()
Definition RemoteConfigIni.cpp:82
bool IsReadSuccess() const
Definition RemoteConfigIni.cpp:76
UE_FORCEINLINE_HINT TStatId GetStatId() const
Definition RemoteConfigIni.h:67
bool CanAbandon()
Definition RemoteConfigIni.cpp:89
void Abandon()
Definition RemoteConfigIni.cpp:96
Definition RemoteConfigIni.h:156
static CORE_API FString ReplaceIniCharWithSpecialChar(const FString &Str)
Definition RemoteConfigIni.cpp:401
bool IsFinished(const TCHAR *InFilename)
Definition RemoteConfigIni.cpp:309
bool IsRemoteFile(const TCHAR *Filename)
Definition RemoteConfigIni.cpp:262
FRemoteConfigAsyncIOInfo * FindConfig(const TCHAR *Filename)
Definition RemoteConfigIni.cpp:303
void FinishRead(const TCHAR *Filename)
Definition RemoteConfigIni.cpp:348
static FRemoteConfig * Get()
Definition RemoteConfigIni.cpp:256
bool ShouldReadRemoteFile(const TCHAR *Filename)
Definition RemoteConfigIni.cpp:297
static CORE_API FString ReplaceIniSpecialCharWithChar(const FString &Str)
Definition RemoteConfigIni.cpp:412
FRemoteConfig()
Definition RemoteConfigIni.cpp:249
static CORE_API void Flush()
Definition RemoteConfigIni.cpp:372
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition DateTime.h:76
Definition RemoteConfigIni.h:20
bool bWasProcessed
Definition RemoteConfigIni.h:41
double StartReadTime
Definition RemoteConfigIni.h:32
double StartWriteTime
Definition RemoteConfigIni.h:35
FDateTime TimeStamp
Definition RemoteConfigIni.h:29
bool bReadIOFailed
Definition RemoteConfigIni.h:38
FRemoteConfigAsyncIOInfo()
Definition RemoteConfigIni.h:22
FString Buffer
Definition RemoteConfigIni.h:26
TCHAR DefaultIniFile[1024]
Definition RemoteConfigIni.h:44
Definition LightweightStats.h:416