bShouldSerializeMissingBulkBuildDataIni
bShouldSerializeMissingBulkBuildDataIni
#Overview
name: bShouldSerializeMissingBulkBuildDataIni
The value of this variable can be defined or overridden in .ini config files. 2
.ini config files referencing this setting variable.
It is referenced in 1
C++ source file.
#Summary
#Setting Variables
#References In INI files
Location: <Workspace>/Engine/Config/BaseInstallBundle.ini:8, section: [InstallBundleSource.Bulk.MiscSettings]
- INI Section:
InstallBundleSource.Bulk.MiscSettings
- Raw value:
false
- Is Array:
False
Location: <Workspace>/Engine/Config/Android/BaseAndroidInstallBundle.ini:5, section: [InstallBundleSource.Bulk.MiscSettings]
- INI Section:
InstallBundleSource.Bulk.MiscSettings
- Raw value:
true
- Is Array:
False
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Plugins/Experimental/DefaultInstallBundleManager/Source/Private/InstallBundleSourceBulk.cpp:399
Scope (from outer to inner):
file
function void FInstallBundleSourceBulk::AsyncInit_MakeBundlesForBulkBuild
lambda-function
Source code excerpt:
if (!bDidLoadAllFilesFromMetadata)
{
bool bShouldSerializeMissingBulkBuildDataIni = false;
if (!GConfig->GetBool(TEXT("InstallBundleSource.Bulk.MiscSettings"), TEXT("bShouldSerializeMissingBulkBuildDataIni"), bShouldSerializeMissingBulkBuildDataIni, GInstallBundleIni))
{
bShouldSerializeMissingBulkBuildDataIni = false;
}
if (bShouldSerializeMissingBulkBuildDataIni)
{
SerializeBulkBuildBundleMetadata(BulkBuildBundles);
}
}
LOG_SOURCE_BULK(Display, TEXT("Finished Making Bundles for Bulk Build"));
InitStepResult = EAsyncInitStepResult::Done;
});
}
bool FInstallBundleSourceBulk::TryLoadBulkBuildBundleMetadata(TArray<FString>& InOutFileList, TMap<FName, TArray<FString>>& InOutBulkBuildBundles)
{
FBulkBuildBundleMapJsonInfo LoadedBuildInfo;
//Always prioritize loading from the LocalCache
if (!LoadedBuildInfo.LoadFromFile(FBulkBuildBundleMapJsonInfo::GetBulkBuildBundleInfoLocalCachedPath()))
{
//If there is no local cache look for a cooked one
LoadedBuildInfo.LoadFromFile(FBulkBuildBundleMapJsonInfo::GetBulkBuildBundleInfoCookedPath());
}
if (!LoadedBuildInfo.IsEmpty())
{
return LoadedBuildInfo.AppendEntriesToBulkBuildBundleMap(InOutFileList, InOutBulkBuildBundles);
}
return false;
}
void FInstallBundleSourceBulk::SerializeBulkBuildBundleMetadata(const TMap<FName, TArray<FString>>& BulkBuildBundles)
{
FBulkBuildBundleMapJsonInfo JsonBulkBuildInfo(BulkBuildBundles);
if (!JsonBulkBuildInfo.IsEmpty())
{
FStringView FilePath = FBulkBuildBundleMapJsonInfo::GetBulkBuildBundleInfoLocalCachedPath();
const bool bSuccess = JsonBulkBuildInfo.SaveToFile(FilePath);
LOG_SOURCE_BULK(Display, TEXT("Saving BulkBuildBundle Cache to %.*s . bSuccess:%s"), FilePath.Len(), FilePath.GetData(), *LexToString(bSuccess));
}
}
EInstallBundleInstallState FInstallBundleSourceBulk::GetBundleInstallState(FName BundleName)
{
return EInstallBundleInstallState::UpToDate;
}
FInstallBundleSourceInitInfo FInstallBundleSourceBulk::Init(
TSharedRef<InstallBundleUtil::FContentRequestStatsMap> InRequestStats,
TSharedPtr<IAnalyticsProviderET> InAnalyticsProvider,
TSharedPtr<InstallBundleUtil::PersistentStats::FPersistentStatContainerBase> PersistentStatsContainer)
{
AnalyticsProvider = MoveTemp(InAnalyticsProvider);
//Ignoring PersistentStatsContainer as we currently don't care about any stats for this bulk source
FInstallBundleSourceInitInfo InitInfo;
return InitInfo;
}
void FInstallBundleSourceBulk::AsyncInit(FInstallBundleSourceInitDelegate Callback)
{
check(OnInitCompleteCallback.IsBound() == false);
OnInitCompleteCallback = MoveTemp(Callback);
if (InitState == EInstallBundleManagerInitState::Failed)
{
InitState = EInstallBundleManagerInitState::NotInitialized;
bRetryInit = true;
}
}
void FInstallBundleSourceBulk::AsyncInit_QueryBundleInfo(FInstallBundleSourceQueryBundleInfoDelegate Callback)
{
check(InitState == EInstallBundleManagerInitState::Succeeded);
FInstallBundleSourceBundleInfoQueryResult ResultInfo;
const FConfigFile* InstallBundleConfig = GConfig->FindConfigFile(GInstallBundleIni);
if (InstallBundleConfig)
{
for (const TPair<FString, FConfigSection>& Pair : *InstallBundleConfig)
{
const FString& Section = Pair.Key;
FInstallBundleSourcePersistentBundleInfo BundleInfo;
if(!InstallBundleManagerUtil::LoadBundleSourceBundleInfoFromConfig(GetSourceType(), *InstallBundleConfig, Section, BundleInfo))
continue;
BundleInfo.BundleContentState = GetBundleInstallState(BundleInfo.BundleName);
FName BundleName = BundleInfo.BundleName;
ResultInfo.SourceBundleInfoMap.Add(BundleName, MoveTemp(BundleInfo));
}
}
Callback.ExecuteIfBound(AsShared(), MoveTemp(ResultInfo));
}
EInstallBundleManagerInitState FInstallBundleSourceBulk::GetInitState() const
{
return InitState;
}
FString FInstallBundleSourceBulk::GetContentVersion() const
{
return InstallBundleUtil::GetAppVersion();
}
TSet<FName> FInstallBundleSourceBulk::GetBundleDependencies(FName InBundleName, TSet<FName>* SkippedUnknownBundles /*= nullptr*/) const
{
return InstallBundleManagerUtil::GetBundleDependenciesFromConfig(InBundleName, SkippedUnknownBundles);
}
void FInstallBundleSourceBulk::GetContentState(TArrayView<const FName> BundleNames, EInstallBundleGetContentStateFlags Flags, FInstallBundleGetContentStateDelegate Callback)
{
FInstallBundleCombinedContentState State;
State.CurrentVersion.Add(GetSourceType(), InstallBundleUtil::GetAppVersion());
for (const FName& BundleName : BundleNames)
{
if(!BulkBuildBundles.Contains(BundleName))
continue;
LOG_SOURCE_BULK(Verbose, TEXT("Requesting Content State for %s"), *BundleName.ToString());
FInstallBundleContentState& IndividualBundleState = State.IndividualBundleStates.Add(BundleName);
IndividualBundleState.State = GetBundleInstallState(BundleName);
IndividualBundleState.Version.Add(GetSourceType(), InstallBundleUtil::GetAppVersion());
}
for (TPair<FName, FInstallBundleContentState>& Pair : State.IndividualBundleStates)
{
Pair.Value.Weight = 1.0f / State.IndividualBundleStates.Num();
}
Callback.ExecuteIfBound(MoveTemp(State));
}
void FInstallBundleSourceBulk::RequestUpdateContent(FRequestUpdateContentBundleContext Context)
{
LOG_SOURCE_BULK_OVERRIDE(Context.LogVerbosityOverride, Display, TEXT("Requesting Bundle %s"), *Context.BundleName.ToString());
FInstallBundleSourceUpdateContentResultInfo ResultInfo;
ResultInfo.BundleName = Context.BundleName;
ResultInfo.Result = EInstallBundleResult::OK;
TArray<FString>* BundleFileList = BulkBuildBundles.Find(Context.BundleName);
if (BundleFileList)
{
ResultInfo.ContentPaths = *BundleFileList;
}
#if PLATFORM_IOS
for (const FString& Path : ResultInfo.ContentPaths)
{
if (Path.EndsWith(TEXT(".metallib")))
{