2020-10-05 12:25:39 -07:00
|
|
|
|
using LibHac.Common.Keys;
|
|
|
|
|
using LibHac.Fs;
|
2020-06-09 22:55:59 -07:00
|
|
|
|
using LibHac.Fs.Fsa;
|
2020-08-07 11:45:11 -07:00
|
|
|
|
using LibHac.FsSrv;
|
2020-02-13 17:21:24 -07:00
|
|
|
|
|
|
|
|
|
namespace LibHac.Tests.Fs.FileSystemClientTests
|
|
|
|
|
{
|
|
|
|
|
public static class FileSystemServerFactory
|
|
|
|
|
{
|
2021-05-30 16:29:42 -07:00
|
|
|
|
private static Horizon CreateHorizonImpl(bool sdCardInserted, out IFileSystem rootFs)
|
2020-02-13 17:21:24 -07:00
|
|
|
|
{
|
2020-04-02 21:57:08 -07:00
|
|
|
|
rootFs = new InMemoryFileSystem();
|
2021-04-28 18:24:59 -07:00
|
|
|
|
var keySet = new KeySet();
|
2021-05-16 22:52:27 -07:00
|
|
|
|
|
|
|
|
|
var horizon = new Horizon(new HorizonConfiguration());
|
|
|
|
|
|
|
|
|
|
HorizonClient fsServerClient = horizon.CreatePrivilegedHorizonClient();
|
|
|
|
|
var fsServer = new FileSystemServer(fsServerClient);
|
|
|
|
|
|
|
|
|
|
var defaultObjects = DefaultFsServerObjects.GetDefaultEmulatedCreators(rootFs, keySet, fsServer);
|
2020-02-13 17:21:24 -07:00
|
|
|
|
|
|
|
|
|
defaultObjects.SdCard.SetSdCardInsertionStatus(sdCardInserted);
|
|
|
|
|
|
|
|
|
|
var config = new FileSystemServerConfig();
|
|
|
|
|
config.FsCreators = defaultObjects.FsCreators;
|
|
|
|
|
config.DeviceOperator = defaultObjects.DeviceOperator;
|
|
|
|
|
config.ExternalKeySet = new ExternalKeySet();
|
|
|
|
|
|
2021-05-16 22:52:27 -07:00
|
|
|
|
FileSystemServerInitializer.InitializeWithConfig(fsServerClient, fsServer, config);
|
2021-05-30 16:29:42 -07:00
|
|
|
|
return horizon;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static FileSystemClient CreateClientImpl(bool sdCardInserted, out IFileSystem rootFs)
|
|
|
|
|
{
|
|
|
|
|
Horizon horizon = CreateHorizonImpl(sdCardInserted, out rootFs);
|
2020-02-13 17:21:24 -07:00
|
|
|
|
|
2020-08-25 23:03:48 -07:00
|
|
|
|
HorizonClient horizonClient = horizon.CreatePrivilegedHorizonClient();
|
2020-08-23 14:37:08 -07:00
|
|
|
|
|
|
|
|
|
return horizonClient.Fs;
|
2020-02-13 17:21:24 -07:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static FileSystemClient CreateClient(bool sdCardInserted)
|
|
|
|
|
{
|
2020-08-23 14:37:08 -07:00
|
|
|
|
return CreateClientImpl(sdCardInserted, out _);
|
2020-04-02 21:57:08 -07:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static FileSystemClient CreateClient(out IFileSystem rootFs)
|
|
|
|
|
{
|
2020-08-23 14:37:08 -07:00
|
|
|
|
return CreateClientImpl(false, out rootFs);
|
2020-02-13 17:21:24 -07:00
|
|
|
|
}
|
2021-05-30 16:29:42 -07:00
|
|
|
|
|
|
|
|
|
public static Horizon CreateHorizonServer()
|
|
|
|
|
{
|
|
|
|
|
return CreateHorizonImpl(true, out _);
|
|
|
|
|
}
|
2020-02-13 17:21:24 -07:00
|
|
|
|
}
|
|
|
|
|
}
|