IntegratedPlatformManagementFlags

IntegratedPlatformManagementFlags

#Overview

name: IntegratedPlatformManagementFlags

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 3 C++ source files.

#Summary

#Usage in the C++ source code

The purpose of IntegratedPlatformManagementFlags is to configure management options for integrated platforms within the Epic Online Services (EOS) SDK. This variable is used to set up and control various aspects of integrated platform management in the EOS ecosystem.

This setting variable is primarily used by the EOS Shared plugin, which is part of the online subsystem in Unreal Engine. Specifically, it’s utilized within the EOSSDKManager class, which is responsible for managing the EOS SDK integration with Unreal Engine.

The value of this variable is set in the LoadConfig function of the EOSSDKManager class. It reads configuration data from the engine’s INI file (GEngineIni) under a specific section name. The flags are parsed from strings into EOS_EIntegratedPlatformManagementFlags enum values and combined using bitwise OR operations.

IntegratedPlatformManagementFlags interacts with other variables and structures in the EOS SDK setup process. It’s used as part of the PlatformOptions structure when calling EOS_IntegratedPlatformOptionsContainer_AddOptions.

Developers must be aware that this variable directly affects how the EOS SDK manages integrated platforms. Incorrect configuration could lead to issues with platform integration or unexpected behavior in cross-platform scenarios.

Best practices when using this variable include:

  1. Carefully reviewing the EOS documentation to understand each flag’s purpose and implications.
  2. Only enabling the flags necessary for your project’s requirements to avoid potential conflicts or unnecessary overhead.
  3. Ensuring that the configuration in the INI file is correctly set up and maintained across different build configurations and platforms.
  4. Regularly updating the flags as needed when upgrading the EOS SDK version, as new flags may be introduced or existing ones deprecated.
  5. Testing thoroughly after making changes to these flags, especially in multi-platform environments.

#Setting Variables

#References In INI files

Location: <Workspace>/Projects/Lyra/Config/Custom/SteamEOS/DefaultEngine.ini:85, section: [EOSSDK]

Location: <Workspace>/Projects/Lyra/Config/Custom/SteamEOS/DefaultEngine.ini:86, section: [EOSSDK]

#References in C++ code

#Callsites

This variable is referenced in the following C++ source code:

#Loc: <Workspace>/Engine/Plugins/Online/EOSShared/Source/EOSShared/Private/EOSSDKManager.cpp:473

Scope (from outer to inner):

file
function     void FEOSSDKManager::ApplyIntegratedPlatformOptions

Source code excerpt:

			UE_EOS_CHECK_API_MISMATCH(EOS_INTEGRATEDPLATFORM_OPTIONS_API_LATEST, 1);
			PlatformOptions.Type = GetIntegratedPlatformType();
			PlatformOptions.Flags = IntegratedPlatformManagementFlags;
			PlatformOptions.InitOptions = GetIntegratedPlatformOptions();

			EOS_IntegratedPlatformOptionsContainer_AddOptions AddOptions = {};
			AddOptions.ApiVersion = 1;
			UE_EOS_CHECK_API_MISMATCH(EOS_INTEGRATEDPLATFORMOPTIONSCONTAINER_ADD_API_LATEST, 1);
			AddOptions.Options = &PlatformOptions;

#Loc: <Workspace>/Engine/Plugins/Online/EOSShared/Source/EOSShared/Private/EOSSDKManager.cpp:714

Scope (from outer to inner):

file
function     void FEOSSDKManager::LoadConfig

Source code excerpt:


	TArray<FString> ManagementFlags;
	if (GConfig->GetArray(SectionName, TEXT("IntegratedPlatformManagementFlags"), ManagementFlags, GEngineIni))
	{
		IntegratedPlatformManagementFlags = {};
		for (const FString& ManagementFlagStr : ManagementFlags)
		{
			EOS_EIntegratedPlatformManagementFlags NewManagementFlag = {};
			if (!LexFromString(NewManagementFlag, *ManagementFlagStr))
			{
				UE_LOG(LogEOSSDK, Verbose, TEXT("[%hs] Unable to parse a valid EOS_EIntegratedPlatformManagementFlags value from string: %s"), __FUNCTION__, *ManagementFlagStr);
			}
			
			IntegratedPlatformManagementFlags |= NewManagementFlag;
		}
	}

	SetupTicker();
}

#Loc: <Workspace>/Engine/Plugins/Online/EOSShared/Source/EOSShared/Private/EOSSDKManager.h:152

Scope (from outer to inner):

file
class        class FEOSSDKManager : public IEOSSDKManager, public FSelfRegisteringExec

Source code excerpt:


	/** Management flags passed on as options in integrated platform setup */
	EOS_EIntegratedPlatformManagementFlags IntegratedPlatformManagementFlags = {};
};

struct FEOSPlatformHandle : public IEOSPlatformHandle
{
	FEOSPlatformHandle(FEOSSDKManager& InManager, EOS_HPlatform InPlatformHandle)
		: IEOSPlatformHandle(InPlatformHandle), Manager(InManager)