Files
UnrealEngineUWP/Engine/Source/Programs/UnrealFileServer/Private/UnrealFileServer.cpp
Ben Marsh 13d012685f Merging copyright update from 4.19 branch.
#rb none
#rnx
#jira

[CL 3818977 by Ben Marsh in Staging-4.19 branch]
2018-01-02 15:30:26 -05:00

71 lines
1.7 KiB
C++

// Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.
#include "UnrealFileServer.h"
#include "DirectoryWatcherModule.h"
#include "RequiredProgramMainCPPInclude.h"
#include "INetworkFileServer.h"
#include "INetworkFileSystemModule.h"
#include "IDirectoryWatcher.h"
#include "SocketSubsystem.h"
IMPLEMENT_APPLICATION(UnrealFileServer, "UnrealFileServer");
/**
* Application entry point
*
* @param ArgC Command-line argument count
* @param ArgV Argument strings
*/
INT32_MAIN_INT32_ARGC_TCHAR_ARGV()
{
// start up the main loop
GEngineLoop.PreInit(ArgC, ArgV);
check(GConfig && GConfig->IsReadyForUse());
#if PLATFORM_WINDOWS
// hide the console window, if desired
if (FParse::Param(FCommandLine::Get(), TEXT("HIDDEN")))
{
ShowWindow(GetConsoleWindow(), SW_HIDE);
}
#endif
// start the listening thread
INetworkFileServer* NetworkFileServer = FModuleManager::LoadModuleChecked<INetworkFileSystemModule>("NetworkFileSystem")
.CreateNetworkFileServer(false);
// loop while the server does the rest
double LastTime = FPlatformTime::Seconds();
while (!GIsRequestingExit)
{
// let some time pass
FPlatformProcess::Sleep(1.0f);
double Now = FPlatformTime::Seconds();
float DeltaSeconds = LastTime - Now;
LastTime = Now;
// @todo: Put me into an FTicker that is created when the DW module is loaded
FDirectoryWatcherModule& DirectoryWatcherModule = FModuleManager::Get().LoadModuleChecked<FDirectoryWatcherModule>(TEXT("DirectoryWatcher"));
DirectoryWatcherModule.Get()->Tick(Now - LastTime);
GLog->FlushThreadedLogs();
LastTime = Now;
}
// shutdown the server
NetworkFileServer->Shutdown();
delete NetworkFileServer;
// Shutdown sockets layer
ISocketSubsystem::ShutdownAllSystems();
return 0;
}