4
5
9#include "Algo/Reverse.h"
10#include "Containers/Array.h"
11#include "Containers/Map.h"
12#include "Containers/Set.h"
13#include "Containers/SparseArray.h"
14#include "Containers/StringFwd.h"
15#include "Containers/UnrealString.h"
18#include "Delegates/Delegate.h"
19#include "HAL/PlatformCrt.h"
20#include "Internationalization/Text.h"
21#include "Internationalization/TextLocalizationResource.h"
22#include "Logging/LogMacros.h"
23#include "Math/Color.h"
24#include "Math/MathFwd.h"
25#include "Math/Rotator.h"
26#include "Math/Vector.h"
27#include "Math/Vector2D.h"
28#include "Math/Vector4.h"
29#include "Misc/AccessDetection.h"
30#include "Misc/Build.h"
31#include "Misc/ConfigTypes.h"
32#include "Misc/Paths.h"
33#include "Serialization/Archive.h"
34#include "Serialization/StructuredArchive.h"
35#include "Serialization/StructuredArchiveAdapters.h"
36#include "Serialization/StructuredArchiveSlots.h"
37#include "Templates/ChooseClass.h"
38#include "Templates/Function.h"
39#include "Templates/UnrealTemplate.h"
40#include "UObject/NameTypes.h"
66#define ENUMERATE_KNOWN_INI_FILES(op)
79#define KNOWN_INI_ENUM(IniName) IniName,
113 SavedValueHash = FTextLocalizationResource::HashString(SavedValue);
123 SavedValueHash = FTextLocalizationResource::HashString(SavedValue);
133 SavedValueHash = FTextLocalizationResource::HashString(SavedValue);
161 SavedValue = MoveTemp(RHS.SavedValue);
162 ExpandedValue = MoveTemp(RHS.ExpandedValue);
173 SavedValue = RHS.SavedValue;
174 ExpandedValue = RHS.ExpandedValue;
186 UE::AccessDetection::ReportAccess(UE::AccessDetection::EType::Ini);
190 return (ExpandedValue.Len() > 0 ? ExpandedValue : SavedValue);
196 UE::AccessDetection::ReportAccess(UE::AccessDetection::EType::Ini);
224 Slot << ConfigSection.SavedValue;
230 ConfigSection.bRead =
false;
236
237
238
239
240
241
242
246
247
248
249
250
251
255
256
257
258
259
260
261
265
266
267
268
269
270
321
322
323
324
325
326
336 template<
typename Allocator>
342 template<
typename Allocator>
365struct FConfigCommandlineOverride
367 FString BaseFileName, Section, PropertyKey, PropertyValue;
413 UE_DEPRECATED(5.1,
"Use CombineFromBuffer that takes FileHint")
427
428
436
437
438
439
440
441
442
443
444
445
446
447 bool WriteInternal(
const FString& Filename,
bool bDoRemoteWrite, TMap<FString, FString>& InOutSectionTexts,
const TArray<FString>& InSectionOrder);
450
451
452
453
454
455
456
457
458
459
460
461
462 void WriteToStringInternal(
FString& InOutText,
bool bIsADefaultIniWrite, int32 IniCombineThreshold, TMap<FString, FString>& InOutSectionTexts,
const TArray<FString>& InSectionOrder);
468 bool GetText(
const TCHAR* Section,
const TCHAR* Key,
FText& Value )
const;
469 bool GetInt(
const TCHAR* Section,
const TCHAR* Key, int32& Value)
const;
470 bool GetFloat(
const TCHAR* Section,
const TCHAR* Key,
float& Value)
const;
471 bool GetDouble(
const TCHAR* Section,
const TCHAR* Key,
double& Value)
const;
472 bool GetInt64(
const TCHAR* Section,
const TCHAR* Key, int64& Value )
const;
473 bool GetBool(
const TCHAR* Section,
const TCHAR* Key,
bool& Value )
const;
474 int32
GetArray(
const TCHAR* Section,
const TCHAR* Key, TArray<FString>& Value)
const;
485 bool GetValue(
const TCHAR* Section,
const TCHAR* Key, int32& Value)
const
489 bool GetValue(
const TCHAR* Section,
const TCHAR* Key,
float& Value)
const
493 bool GetValue(
const TCHAR* Section,
const TCHAR* Key,
double& Value)
const
497 bool GetValue(
const TCHAR* Section,
const TCHAR* Key, int64& Value)
const
501 bool GetValue(
const TCHAR* Section,
const TCHAR* Key,
bool& Value)
const
505 int32
GetValue(
const TCHAR* Section,
const TCHAR* Key, TArray<FString>& Value)
const
507 return GetArray(Section, Key, Value);
512 void SetString(
const TCHAR* Section,
const TCHAR* Key,
const TCHAR* Value);
513 void SetText(
const TCHAR* Section,
const TCHAR* Key,
const FText& Value);
514 void SetFloat(
const TCHAR* Section,
const TCHAR* Key,
float Value);
515 void SetDouble(
const TCHAR* Section,
const TCHAR* Key,
double Value);
516 void SetBool(
const TCHAR* Section,
const TCHAR* Key,
bool Value);
517 void SetInt64(
const TCHAR* Section,
const TCHAR* Key,
const int64 Value);
518 void SetArray(
const TCHAR* Section,
const TCHAR* Key,
const TArray<FString>& Value);
521
522
523
524
525
527 UE_DEPRECATED(5.1,
"Use ProcessInputFileContents that takes FileHint")
530 ProcessInputFileContents(Buffer,
TEXT(
"Unknown file, using deprecated function"));
538
539
540
541
542
543
544
545
546
547
548
549 void UpdateSections(
const TCHAR* DiskFilename,
const TCHAR* IniRootName=
nullptr,
const TCHAR* OverridePlatform=
nullptr);
552
553
558
559
560
561
582 UE_DEPRECATED(5.0,
"Call AddDynamicLayerToHierarchy. You also may need to call GetConfigFilename to get the right FConfigFile")
593
594
598
599
600
601
602
603
604
605
606
610
611
612
613
614
615
616 void AddStaticLayersToHierarchy(
const TCHAR* InBaseIniName,
const TCHAR* InPlatformName,
const TCHAR* EngineConfigDir,
const TCHAR* SourceConfigDir);
625
626
650
651
655
656
660
661
665
666
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710 virtual void Parse1ToNSectionOfNames(
const TCHAR* Section,
const TCHAR* KeyOne,
const TCHAR* KeyN, TMap<FName, TArray<FName> >& OutMap,
const FString& Filename);
713
714
715
716
717
718
722
723
724
725
726
727
731
732
733
734
737 UE_DEPRECATED(5.0,
"CreateIfNotFound is deprecated, please use the overload without this parameter or FindConfigFile")
745 return *OtherFiles.Add(Filename,
new FConfigFile(File));
749 delete OtherFiles.FindRef(Filename);
750 return OtherFiles.Remove(Filename);
767
768
769
771 void SetString(
const TCHAR* Section,
const TCHAR* Key,
const TCHAR* Value,
const FString& Filename );
778
779
780
781
782
783
784
788
789
790
791
795
796
797
798
799
800
801
805
806
807
808
809
810
811
812
813
819
820
821
822
823
827
828
829
830
834
835
836
837
841
842
843
849 const TCHAR* Section,
855 const TCHAR* Section,
862 const TCHAR* Section,
869 const TCHAR* Section,
876 const TCHAR* Section,
883 const TCHAR* Section,
885 TArray<FString>& out_Arr,
889
890
891
892
893
896 const TCHAR* Section,
898 TArray<FString>& out_Arr,
903 const TCHAR* Section,
909 const TCHAR* Section,
915 const TCHAR* Section,
922 const TCHAR* Section,
929 const TCHAR* Section,
944 bool GetValue(
const TCHAR* Section,
const TCHAR* Key, int32& Value,
const FString& Filename)
948 bool GetValue(
const TCHAR* Section,
const TCHAR* Key,
float& Value,
const FString& Filename)
952 bool GetValue(
const TCHAR* Section,
const TCHAR* Key,
bool& Value,
const FString& Filename)
956 int32
GetValue(
const TCHAR* Section,
const TCHAR* Key, TArray<FString>& Value,
const FString& Filename)
958 return GetArray(Section, Key, Value, Filename);
967 int32 Value = DefaultValue;
973 float Value = DefaultValue;
979 bool Value = DefaultValue;
1004 return DefaultValue;
1010 const TCHAR* Section,
1017 const TCHAR* Section,
1024 const TCHAR* Section,
1031 const TCHAR* Section,
1038 const TCHAR* Section,
1040 const TArray<FString>& Value,
1044
1045
1046
1047
1048
1051 const TCHAR* Section,
1053 const TArray<FString>& In_Arr,
1058 const TCHAR* Section,
1064 const TCHAR* Section,
1070 const TCHAR* Section,
1077 const TCHAR* Section,
1079 const FVector4& Value,
1084 const TCHAR* Section,
1093
1094
1095
1099
1100
1101
1102
1106
1107
1108
1109
1110
1111
1112
1113
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148 static bool LoadLocalIniFile(
FConfigFile& ConfigFile,
const TCHAR* IniName,
bool bIsBaseIniName,
const TCHAR* Platform=NULL,
bool bForceReload=
false);
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167 static bool LoadExternalIniFile(
FConfigFile& ConfigFile,
const TCHAR* IniName,
const TCHAR* EngineConfigDir,
const TCHAR* SourceConfigDir,
bool bIsBaseIniName,
const TCHAR* Platform=NULL,
bool bForceReload=
false,
bool bWriteDestIni=
false,
bool bAllowGeneratedIniWhenCooked =
true,
const TCHAR* GeneratedConfigDir =
*FPaths::GeneratedConfigDir());
1170
1171
1172
1173
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1207
1208
1209
1210
1211
1212
1213
1214
1218
1219
1220
1221
1222
1223
1227
1228
1266
1267
1268
1269
1270
1271
1272
1273
1278
1279
1280
1284
1285
1289
1290
1291
1295
1296
1328
1329
1330
1331
1332
1333UE_DEPRECATED(5.1,
"Use UE::ConfigUtilities::ApplyCVarSettingsFromIni")
1337
1338
1339
1340
1341
1342UE_DEPRECATED(5.1,
"Use UE::ConfigUtilities::ForEachCVarInSectionFromIni")
1346
1347
1350
1351
1352
1353UE_DEPRECATED(5.1,
"Use UE::ConfigUtilities::RecordApplyCVarSettingsFromIni")
1357
1358
1359UE_DEPRECATED(5.1,
"Use UE::ConfigUtilities::ReapplyRecordedCVarSettingsFromIni")
1363
1364
1365UE_DEPRECATED(5.1,
"Use UE::ConfigUtilities::DeleteRecordedCVarSettingsFromIni")
1369
1370
1371UE_DEPRECATED(5.1,
"Use UE::ConfigUtilities::RecordConfigReadsFromIni")
1375
1376
1377UE_DEPRECATED(5.1,
"Use UE::ConfigUtilities::DumpRecordedConfigReadsFromIni")
1381
1382
1383UE_DEPRECATED(5.1,
"Use UE::ConfigUtilities::DeleteRecordedConfigReadsFromIni")
1387
1388
1389UE_DEPRECATED(5.1,
"Use UE::ConfigUtilities::ConvertValueFromHumanFriendlyValue")
#define UE_BUILD_SHIPPING
#define CONFIG_REMEMBER_ACCESS_PATTERN
void RecordConfigReadsFromIni()
void DeleteRecordedCVarSettingsFromIni()
#define ENUMERATE_KNOWN_INI_FILES(op)
void DeleteRecordedConfigReadsFromIni()
void RecordApplyCVarSettingsFromIni()
void ReapplyRecordedCVarSettingsFromIni()
#define ALLOW_INI_OVERRIDE_FROM_COMMANDLINE
TMultiMap< FName, FConfigValue > FConfigSectionMap
const TCHAR * ConvertValueFromHumanFriendlyValue(const TCHAR *Value)
void ForEachCVarInSectionFromIni(const TCHAR *InSectionName, const TCHAR *InIniFilename, TFunction< void(IConsoleVariable *CVar, const FString &KeyString, const FString &ValueString)> InEvaluationFunction)
void ApplyCVarSettingsFromIni(const TCHAR *InSectionBaseName, const TCHAR *InIniFilename, uint32 SetBy, bool bAllowCheating=false)
void DumpRecordedConfigReadsFromIni()
FConfigCacheIni * GConfig
#define UE_DEPRECATED(Version, Message)
#define DECLARE_DELEGATE_TwoParams(DelegateName, Param1Type, Param2Type)
bool GetValue(const TCHAR *Section, const TCHAR *Key, double &Value) const
static bool WriteTempFileThenMove()
void Read(const FString &Filename)
void SetText(const TCHAR *Section, const TCHAR *Key, const FText &Value)
void WriteToString(FString &InOutText, const FString &SimulatedFilename=FString(), const FString &PrefixText=FString())
void AddStaticLayersToHierarchy(const TCHAR *InBaseIniName, const TCHAR *InPlatformName, const TCHAR *EngineConfigDir, const TCHAR *SourceConfigDir)
static void AddStaticLayersToHierarchy(FConfigContext &Context)
void ProcessInputFileContents(FStringView Contents, const FString &FileHint)
bool UpdateSinglePropertyInSection(const TCHAR *DiskFilename, const TCHAR *PropertyName, const TCHAR *SectionName)
void SetString(const TCHAR *Section, const TCHAR *Key, const TCHAR *Value)
bool GetValue(const TCHAR *Section, const TCHAR *Key, float &Value) const
bool GetBool(const TCHAR *Section, const TCHAR *Key, bool &Value) const
bool DoesSectionExist(const TCHAR *Section) const
bool GetFloat(const TCHAR *Section, const TCHAR *Key, float &Value) const
FString SourceEngineConfigDir
void AddDynamicLayerToHierarchy(const FString &Filename)
bool GetString(const TCHAR *Section, const TCHAR *Key, FString &Value) const
bool GetValue(const TCHAR *Section, const TCHAR *Key, FString &Value) const
static void AppendExportedPropertyLine(FString &Out, const FString &PropertyName, const FString &PropertyValue)
static bool ShouldExportQuotedString(const FString &PropertyValue)
bool GetValue(const TCHAR *Section, const TCHAR *Key, int32 &Value) const
void SetInt64(const TCHAR *Section, const TCHAR *Key, const int64 Value)
void SetBool(const TCHAR *Section, const TCHAR *Key, bool Value)
TMap< FString, TMap< FName, FString > > PerObjectConfigArrayOfStructKeys
void AddMissingProperties(const FConfigFile &InSourceFile)
void CombineFromBuffer(const FString &Buffer, const FString &FileHint)
void SetDouble(const TCHAR *Section, const TCHAR *Key, double Value)
FConfigFile * SourceConfigFile
void ProcessInputFileContents(const FString &Buffer)
static FString GenerateExportedPropertyLine(const FString &PropertyName, const FString &PropertyValue)
void SetFloat(const TCHAR *Section, const TCHAR *Key, float Value)
void ProcessPropertyAndWriteForDefaults(int32 IniCombineThreshold, const TArray< const FConfigValue * > &InCompletePropertyToProcess, FString &OutText, const FString &SectionName, const FString &PropertyName)
bool IsADefaultIniWrite(const FString &Filename, int32 &OutIniCombineThreshold) const
void Dump(FOutputDevice &Ar)
bool GetDouble(const TCHAR *Section, const TCHAR *Key, double &Value) const
bool operator!=(const FConfigFile &Other) const
FConfigFileHierarchy SourceIniHierarchy
bool Combine(const FString &Filename)
bool GetValue(const TCHAR *Section, const TCHAR *Key, bool &Value) const
void AddDynamicLayerToHeirarchy(const FString &Filename)
void ProcessSourceAndCheckAgainstBackup()
static bool OverrideFileFromCommandline(FString &Filename)
int32 GetArray(const TCHAR *Section, const TCHAR *Key, TArray< FString > &Value) const
void WriteToStringInternal(FString &InOutText, bool bIsADefaultIniWrite, int32 IniCombineThreshold, TMap< FString, FString > &InOutSectionTexts, const TArray< FString > &InSectionOrder)
FString SourceProjectConfigDir
void SetArray(const TCHAR *Section, const TCHAR *Key, const TArray< FString > &Value)
void CombineFromBuffer(const FString &Buffer)
bool GetValue(const TCHAR *Section, const TCHAR *Key, int64 &Value) const
void UpdateSections(const TCHAR *DiskFilename, const TCHAR *IniRootName=nullptr, const TCHAR *OverridePlatform=nullptr)
FConfigSection * FindOrAddSection(const FString &Name)
bool GetInt(const TCHAR *Section, const TCHAR *Key, int32 &Value) const
bool Write(const FString &Filename, bool bDoRemoteWrite=true, const FString &PrefixText=FString())
void SaveSourceToBackupFile()
static void OverrideFromCommandline(FConfigFile *File, const FString &Filename)
bool operator==(const FConfigFile &Other) const
bool GetValue(const TCHAR *Section, const TCHAR *Key, FText &Value) const
bool GetInt64(const TCHAR *Section, const TCHAR *Key, int64 &Value) const
bool WriteInternal(const FString &Filename, bool bDoRemoteWrite, TMap< FString, FString > &InOutSectionTexts, const TArray< FString > &InSectionOrder)
bool GetText(const TCHAR *Section, const TCHAR *Key, FText &Value) const
bool HandleArrayOfKeyedStructsCommand(FName Key, FString &&Value)
bool operator!=(const FConfigSection &Other) const
static bool HasQuotes(const FString &Test)
bool operator==(const FConfigSection &Other) const
void MultiFind(const FName Key, TArray< FString, Allocator > &OutValues, const bool bMaintainOrder=false) const
TMap< FName, FString > ArrayOfStructKeys
void MultiFind(const FName Key, TArray< FConfigValue, Allocator > &OutValues, const bool bMaintainOrder=false) const
void HandleAddCommand(FName Key, FString &&Value, bool bAppendValueIfNotArrayOfStructsKeyUsed)
static FString GeneratedConfigDir()
UE_NODISCARD FORCEINLINE const TCHAR * operator*() const UE_LIFETIMEBOUND
FStructuredArchiveSlot GetSlot()
FStructuredArchiveFromArchive(FArchive &Ar)
FArchive & GetUnderlyingArchive() const
FORCEINLINE bool IsLoading() const
void SetGlobalIniStringsFromMembers()
const FString & GetFilename(FName Name)
FKnownConfigFile Files[(uint8) EKnownIniFile::NumKnownFiles]
FConfigFile * GetMutableFile(FName Name)
const FConfigFile * GetFile(FName Name)
void SetBool(const TCHAR *Section, const TCHAR *Key, bool Value, const FString &Filename)
virtual bool ForEachEntry(const FKeyValueSink &Visitor, const TCHAR *Section, const FString &Filename)
virtual void Parse1ToNSectionOfNames(const TCHAR *Section, const TCHAR *KeyOne, const TCHAR *KeyN, TMap< FName, TArray< FName > > &OutMap, const FString &Filename)
void SetText(const TCHAR *Section, const TCHAR *Key, const FText &Value, const FString &Filename)
virtual void DisableFileOperations()
bool EmptySection(const TCHAR *Section, const FString &Filename)
unsigned __int64 GetMaxMemoryUsage()
bool GetSection(const TCHAR *Section, TArray< FString > &Result, const FString &Filename)
void SetString(const TCHAR *Section, const TCHAR *Key, const TCHAR *Value, const FString &Filename)
void SetArray(const TCHAR *Section, const TCHAR *Key, const TArray< FString > &Value, const FString &Filename)
bool GetText(const TCHAR *Section, const TCHAR *Key, FText &Value, const FString &Filename)
static void InitializeConfigSystem()
static bool LoadGlobalIniFile(FString &FinalIniFilename, const TCHAR *BaseIniName, const TCHAR *Platform=NULL, bool bForceReload=false, bool bRequireDefaultIni=false, bool bAllowGeneratedIniWhenCooked=true, bool bAllowRemoteConfig=true, const TCHAR *GeneratedConfigDir= *FPaths::GeneratedConfigDir(), FConfigCacheIni *ConfigSystem=GConfig)
static bool CreateGConfigFromSaved(const wchar_t *Filename)
bool GetValue(const TCHAR *Section, const TCHAR *Key, int32 &Value, const FString &Filename)
int32 GetSingleLineArray(const TCHAR *Section, const TCHAR *Key, TArray< FString > &out_Arr, const FString &Filename)
bool GetBool(const TCHAR *Section, const TCHAR *Key, bool &Value, const FString &Filename)
bool GetDouble(const TCHAR *Section, const TCHAR *Key, double &Value, const FString &Filename)
FConfigFile * Find(const FString &InFilename)
bool GetValue(const TCHAR *Section, const TCHAR *Key, FText &Value, const FString &Filename)
FText GetTextOrDefault(const TCHAR *Section, const TCHAR *Key, const FText &DefaultValue, const FString &Filename)
bool GetSectionNames(const FString &Filename, TArray< FString > &out_SectionNames)
int32 Remove(const FString &Filename)
FString GetConfigFilename(const TCHAR *BaseIniName)
bool GetBoolOrDefault(const TCHAR *Section, const TCHAR *Key, const bool DefaultValue, const FString &Filename)
bool GetColor(const TCHAR *Section, const TCHAR *Key, FColor &Value, const FString &Filename)
FConfigFile * Find(const FString &Filename, bool CreateIfNotFound)
FKnownConfigFiles KnownFiles
static void ClearOtherPlatformConfigs()
void UnloadFile(const FString &Filename)
virtual void Parse1ToNSectionOfStrings(const TCHAR *Section, const TCHAR *KeyOne, const TCHAR *KeyN, TMap< FString, TArray< FString > > &OutMap, const FString &Filename)
void SetVector(const TCHAR *Section, const TCHAR *Key, FVector Value, const FString &Filename)
TArray< FString > GetFilenames()
TMap< FString, FConfigFile * > OtherFiles
void SetSingleLineArray(const TCHAR *Section, const TCHAR *Key, const TArray< FString > &In_Arr, const FString &Filename)
void SaveCurrentStateForBootstrap(const TCHAR *Filename)
bool bAreFileOperationsDisabled
bool GetVector(const TCHAR *Section, const TCHAR *Key, FVector &Value, const FString &Filename)
static FConfigFile * FindOrLoadPlatformConfig(FConfigFile &LocalFile, const TCHAR *IniName, const TCHAR *Platform=NULL)
FConfigCacheIni(EConfigCacheType Type)
static FString NormalizeConfigIniPath(const FString &NonNormalizedPath)
FConfigFile * FindConfigFile(const FString &Filename)
void SerializeStateForBootstrap_Impl(FArchive &Ar)
bool GetVector2D(const TCHAR *Section, const TCHAR *Key, FVector2D &Value, const FString &Filename)
void SetInt(const TCHAR *Section, const TCHAR *Key, int32 Value, const FString &Filename)
bool GetFloat(const TCHAR *Section, const TCHAR *Key, float &Value, const FString &Filename)
static bool LoadExternalIniFile(FConfigFile &ConfigFile, const TCHAR *IniName, const TCHAR *EngineConfigDir, const TCHAR *SourceConfigDir, bool bIsBaseIniName, const TCHAR *Platform=NULL, bool bForceReload=false, bool bWriteDestIni=false, bool bAllowGeneratedIniWhenCooked=true, const TCHAR *GeneratedConfigDir= *FPaths::GeneratedConfigDir())
bool EmptySectionsMatchingString(const TCHAR *SectionString, const FString &Filename)
static bool LoadLocalIniFile(FConfigFile &ConfigFile, const TCHAR *IniName, bool bIsBaseIniName, const TCHAR *Platform=NULL, bool bForceReload=false)
virtual void ShowMemoryUsage(FOutputDevice &Ar)
bool ContainsConfigFile(const FConfigFile *ConfigFile) const
void Serialize(FArchive &Ar)
bool GetValue(const TCHAR *Section, const TCHAR *Key, FString &Value, const FString &Filename)
bool IsKnownConfigName(FName ConfigName)
static FConfigFile * FindPlatformConfig(const wchar_t *IniName, const wchar_t *Platform)
int32 GetArray(const TCHAR *Section, const TCHAR *Key, TArray< FString > &out_Arr, const FString &Filename)
void LoadFile(const FString &InFilename, const FConfigFile *Fallback=NULL, const TCHAR *PlatformString=NULL)
void SetColor(const TCHAR *Section, const TCHAR *Key, FColor Value, const FString &Filename)
FConfigFile & Add(const FString &Filename, const FConfigFile &File)
void Flush(bool bRemoveFromCache, const FString &Filename=TEXT(""))
bool GetVector4(const TCHAR *Section, const TCHAR *Key, FVector4 &Value, const FString &Filename)
bool GetRotator(const TCHAR *Section, const TCHAR *Key, FRotator &Value, const FString &Filename)
bool GetPerObjectConfigSections(const FString &Filename, const FString &SearchClass, TArray< FString > &out_SectionNames, int32 MaxResults=1024)
bool GetInt(const TCHAR *Section, const TCHAR *Key, int32 &Value, const FString &Filename)
static FConfigCacheIni * ForPlatform(FName PlatformName)
void SetFloat(const TCHAR *Section, const TCHAR *Key, float Value, const FString &Filename)
bool GetValue(const TCHAR *Section, const TCHAR *Key, bool &Value, const FString &Filename)
virtual void EnableFileOperations()
FConfigFile * FindConfigFileWithBaseName(FName BaseName)
float GetFloatOrDefault(const TCHAR *Section, const TCHAR *Key, const float DefaultValue, const FString &Filename)
void Dump(FOutputDevice &Ar, const TCHAR *IniName=NULL)
FString GetStringOrDefault(const TCHAR *Section, const TCHAR *Key, const FString &DefaultValue, const FString &Filename)
bool GetValue(const TCHAR *Section, const TCHAR *Key, float &Value, const FString &Filename)
static const FString * GetCustomConfigString()
bool InitializeKnownConfigFiles(const TCHAR *PlatformName, bool bDefaultEngineIniRequired, const TCHAR *OverrideProjectDir=nullptr)
bool AreFileOperationsDisabled()
void Detach(const FString &Filename)
void SetVector2D(const TCHAR *Section, const TCHAR *Key, FVector2D Value, const FString &Filename)
void SetDouble(const TCHAR *Section, const TCHAR *Key, double Value, const FString &Filename)
FString GetStr(const TCHAR *Section, const TCHAR *Key, const FString &Filename)
bool GetString(const TCHAR *Section, const TCHAR *Key, FString &Value, const FString &Filename)
void SetRotator(const TCHAR *Section, const TCHAR *Key, FRotator Value, const FString &Filename)
FConfigSection * GetSectionPrivate(const TCHAR *Section, const bool Force, const bool Const, const FString &Filename)
static void LoadConsoleVariablesFromINI()
void GetConfigFilenames(TArray< FString > &ConfigFilenames)
void SetVector4(const TCHAR *Section, const TCHAR *Key, const FVector4 &Value, const FString &Filename)
bool RemoveKey(const TCHAR *Section, const TCHAR *Key, const FString &Filename)
static FString GetDestIniFilename(const TCHAR *BaseIniName, const TCHAR *PlatformName, const TCHAR *GeneratedConfigDir)
void SetFile(const FString &InFilename, const FConfigFile *NewConfigFile)
virtual ~FConfigCacheIni()
int32 GetIntOrDefault(const TCHAR *Section, const TCHAR *Key, const int32 DefaultValue, const FString &Filename)
static bool InitializeKnownConfigFiles(FConfigContext &Context)
bool DoesSectionExist(const TCHAR *Section, const FString &Filename)
const FString & GetSavedValue() const
static bool CollapseValue(const FString &InExpandedValue, FString &OutCollapsedValue)
friend void operator<<(FStructuredArchive::FSlot Slot, FConfigValue &ConfigSection)
FConfigValue & operator=(FConfigValue &&RHS)
const FString & GetValue() const
FConfigValue(const FString &InValue)
const FString & GetSavedValueForWriting() const
FConfigValue & operator=(const FConfigValue &RHS)
FConfigValue(FString &&InValue)
FConfigValue(FConfigValue &&InConfigValue)
static bool ExpandValue(const FString &InCollapsedValue, FString &OutExpandedValue)
static FString CollapseValue(const FString &InExpandedValue)
FConfigValue(const TCHAR *InValue)
static FString ExpandValue(const FString &InCollapsedValue)
void ExpandValueInternal()
bool operator!=(const FConfigValue &Other) const
bool operator==(const FConfigValue &Other) const
FConfigValue(const FConfigValue &InConfigValue)
static const FString & GetSavedValueForWriting(const FConfigValue &ConfigValue)