Files
jason walter ed799330a4 Create separate program UnrealMultiUserSlateServer
Main implementation by Dominik with build and switchboard support added by me.

#jira UE-147235
#rb Dominik.Peacock
#preflight 6284fa081f474f0660ecb74e

[CL 20264867 by jason walter in ue5-main branch]
2022-05-18 14:02:54 -04: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);
}