Files
UnrealEngine/Engine/Source/Programs/UnrealMultiUserServer/Private/UnrealMultiUserServerRun.cpp
2025-05-18 13:04:45 +08:00

34 lines
1.1 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "UnrealMultiUserServerRun.h"
#include "ConcertSettings.h"
#include "ConcertSyncServerLoop.h"
#include "Misc/CommandLine.h"
int32 RunUnrealMultiUserServer(int ArgC, TCHAR* ArgV[])
{
FString Role(TEXT("MultiUser"));
FConcertSyncServerLoopInitArgs ServerLoopInitArgs;
ServerLoopInitArgs.SessionFlags = EConcertSyncSessionFlags::Default_MultiUserSession;
ServerLoopInitArgs.ServiceRole = Role;
ServerLoopInitArgs.ServiceFriendlyName = TEXT("Multi-User Editing Server");
ServerLoopInitArgs.GetServerConfigFunc = [Role]() -> const UConcertServerConfig*
{
UConcertServerConfig* ServerConfig = IConcertSyncServerModule::Get().ParseServerSettings(FCommandLine::Get());
if (ServerConfig->WorkingDir.IsEmpty())
{
ServerConfig->WorkingDir = FPaths::ProjectIntermediateDir() / Role;
}
if (ServerConfig->ArchiveDir.IsEmpty())
{
ServerConfig->ArchiveDir = FPaths::ProjectSavedDir() / Role;
}
return ServerConfig;
};
return ConcertSyncServerLoop(*FCommandLine::BuildFromArgV(nullptr, ArgC, ArgV, nullptr), ServerLoopInitArgs);
}