ConnectionHelpUrl

ConnectionHelpUrl

#Overview

name: ConnectionHelpUrl

The value of this variable can be defined or overridden in .ini config files. 1 .ini config file referencing this setting variable.

It is referenced in 8 C++ source files.

#Summary

#Usage in the C++ source code

The purpose of ConnectionHelpUrl is to provide a URL for additional documentation or help regarding the connection to the revision control server in Unreal Engine’s virtualization system. This variable is used to assist developers when they encounter connection issues with the virtualization revision control server.

This setting variable is primarily used in the Virtualization module of Unreal Engine. It is referenced in the SVirtualizationRevisionControlConnectionDialog and VirtualizationManager classes, which are part of the UE::Virtualization namespace.

The value of this variable is set in the ApplySettingsFromConfigFiles function of the VirtualizationManager class. It reads the value from a configuration file using the key “ConnectionHelpUrl” in the specified ConfigSection.

The ConnectionHelpUrl interacts with other UI elements and error handling mechanisms. It is used to populate a hyperlink in the revision control connection dialog and is included in error messages when connection issues occur.

Developers should be aware that:

  1. This URL is optional and can be left empty.
  2. The URL is not echoed to the log file for security reasons.
  3. It’s used in both the UI (as a clickable hyperlink) and in error messages.

Best practices when using this variable include:

  1. Ensure the URL is up-to-date and points to relevant, helpful documentation.
  2. Consider the security implications of the URL content, as it may be visible to users.
  3. Regularly review and update the URL in the configuration files to maintain its relevance.
  4. Use this URL to provide specific, actionable guidance for resolving common connection issues.

#Setting Variables

#References In INI files

Location: <Workspace>/Engine/Config/BaseEngine.ini:1479, section: [Core.VirtualizationModule]

#References in C++ code

#Callsites

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

#Loc: <Workspace>/Engine/Source/Developer/Virtualization/Private/SVirtualizationRevisionControlConnectionDialog.cpp:92

Scope (from outer to inner):

file
namespace    UE::Virtualization
function     void SRevisionControlConnectionDialog::Construct

Source code excerpt:

	WindowWidget = InArgs._Window;

	const FString ConnectionHelpUrl = FVirtualizationManager::GetConnectionHelpUrl();
	ConfigSectionName = InConfigSectionName;

	FText MessagePt1 = FText::Format(LOCTEXT("VASCMsgPt1", "Failed to connect to the {0} revision control server with the following errors:"), FText::FromStringView(RevisionControlName));
	FText MessagePt2 = FText::Format(LOCTEXT("VASCMsgPt2", "This may prevent you from loading virtualized assets in the future!\nPlease enter the correct {0} revision control settings below:"), FText::FromStringView(RevisionControlName));
	
	const FText PortToolTip = FText::Format(LOCTEXT("PortLabel_Tooltip", "The server and port for your {0} server. Usage ServerName:1234."), FText::FromStringView(RevisionControlName));

#Loc: <Workspace>/Engine/Source/Developer/Virtualization/Private/SVirtualizationRevisionControlConnectionDialog.cpp:241

Scope (from outer to inner):

file
namespace    UE::Virtualization
function     void SRevisionControlConnectionDialog::Construct

Source code excerpt:

			SNew(SHyperlink)
			.Text(LOCTEXT("VASCHelpUrl", "Click here for additional documentation"))
			.ToolTipText(FText::FromString(ConnectionHelpUrl))
			.OnNavigate(this, &SRevisionControlConnectionDialog::OnUrlClicked)
			.Visibility_Lambda([ConnectionHelpUrl] { return !ConnectionHelpUrl.IsEmpty() ? EVisibility::Visible : EVisibility::Hidden; })
		]
		+ SVerticalBox::Slot()
		.Padding(FMargin(0.0f, 16.0f, 16.0f, 16.0f))
		.AutoHeight()
		[
			SNew(SHorizontalBox)

#Loc: <Workspace>/Engine/Source/Developer/Virtualization/Private/SVirtualizationRevisionControlConnectionDialog.cpp:341

Scope (from outer to inner):

file
namespace    UE::Virtualization
function     void SRevisionControlConnectionDialog::OnUrlClicked

Source code excerpt:

void SRevisionControlConnectionDialog::OnUrlClicked() const
{
	const FString ConnectionHelpUrl = FVirtualizationManager::GetConnectionHelpUrl();

	FPlatformProcess::LaunchURL(*ConnectionHelpUrl, nullptr, nullptr);
}

} // namespace UE::Virtualization

#undef LOCTEXT_NAMESPACE

#Loc: <Workspace>/Engine/Source/Developer/Virtualization/Private/VirtualizationManager.cpp:529

Scope (from outer to inner):

file
namespace    UE::Virtualization

Source code excerpt:

} //namespace Profiling

FString FVirtualizationManager::ConnectionHelpUrl;

FVirtualizationManager::FVirtualizationManager()
	: bAllowPackageVirtualization(true)
	, CachingPolicy(ECachingPolicy::AlwaysCache)
	, MinPayloadLength(0)
	, BackendGraphName(TEXT("ContentVirtualizationBackendGraph_None"))

#Loc: <Workspace>/Engine/Source/Developer/Virtualization/Private/VirtualizationManager.cpp:1210

Scope (from outer to inner):

file
namespace    UE::Virtualization
function     void FVirtualizationManager::ApplySettingsFromConfigFiles

Source code excerpt:

	
	{
		ConfigFile.GetString(ConfigSection, TEXT("ConnectionHelpUrl"), ConnectionHelpUrl);
		// This value is not echoed to the log file
	}

	{
		ConfigFile.GetBool(ConfigSection, TEXT("ForceCachingOnPull"), bForceCachingOnPull);
		UE_LOG(LogVirtualization, Display, TEXT("\tForceCachingOnPull : %s"), bForceCachingOnPull ? TEXT("true") : TEXT("false"));

#Loc: <Workspace>/Engine/Source/Developer/Virtualization/Private/VirtualizationManager.cpp:2338

Scope (from outer to inner):

file
namespace    UE::Virtualization
function     FString FVirtualizationManager::GetConnectionHelpUrl

Source code excerpt:

FString FVirtualizationManager::GetConnectionHelpUrl()
{
	return ConnectionHelpUrl;
}

} // namespace UE::Virtualization

#undef UE_INLINE_ALLOCATION_COUNT
#undef LOCTEXT_NAMESPACE

#Loc: <Workspace>/Engine/Source/Developer/Virtualization/Private/VirtualizationManager.h:344

Scope (from outer to inner):

file
namespace    UE::Virtualization
class        class FVirtualizationManager final : public IVirtualizationSystem

Source code excerpt:


	/** Optional url used to augment connection failure error messages */
	static FString ConnectionHelpUrl;

	/** The number of times to retry pulling when errors are encountered in an unattended process, values <0 disable the system */
	int32 UnattendedRetryCount = 0;

	/** The how long (in seconds) to wait after payload pulling errors before retrying. Does nothing if 'UnattendedRetryCount' is disabled */
	int32 UnattendedRetryTimer = 0;

#Loc: <Workspace>/Engine/Source/Developer/Virtualization/Private/VirtualizationSourceControlBackend.cpp:1254

Scope (from outer to inner):

file
function     void FSourceControlBackend::OnConnectionError

Source code excerpt:

	TokenizedMsg->AddToken(FTextToken::Create(UserMessage));

	FString ConnectionHelpUrl = FVirtualizationManager::GetConnectionHelpUrl();
	if (!ConnectionHelpUrl.IsEmpty())
	{
		TokenizedMsg->AddToken(FURLToken::Create(ConnectionHelpUrl, LOCTEXT("URL", "Additional connection help")));
	}

	if (::IsInGameThread())
	{
		// If we are on the game thread we can post the error message immediately