public static Horizon CreateWithDefaultFsConfig(HorizonConfiguration config, IFileSystem rootFileSystem, KeySet keySet) { var horizon = new Horizon(config); HorizonClient fsServerClient = horizon.CreatePrivilegedHorizonClient(); var fsServer = new FileSystemServer(fsServerClient); var defaultObjects = DefaultFsServerObjects.GetDefaultEmulatedCreators(rootFileSystem, keySet, fsServer); var fsServerConfig = new FileSystemServerConfig { DeviceOperator = defaultObjects.DeviceOperator, ExternalKeySet = keySet.ExternalKeySet, FsCreators = defaultObjects.FsCreators, }; FileSystemServerInitializer.InitializeWithConfig(fsServerClient, fsServer, fsServerConfig); HorizonClient bcatServerClient = horizon.CreateHorizonClient(); _ = new BcatServer(bcatServerClient); return(horizon); }
public Horizon(HorizonConfiguration config) { _currentProcessId = InitialProcessCountMax; TickGenerator = config.TickGenerator ?? new DefaultTickGenerator(); ServiceManager = new ServiceManager(); LoaderClient = CreatePrivilegedHorizonClient(); }
private HorizonClient CreateHorizonClientImpl(ProgramLocation location, ReadOnlySpan <byte> accessControlData, ReadOnlySpan <byte> accessControlDescriptor) { HorizonClient client = CreateHorizonClient(); LoaderClient.Fs.RegisterProgram(client.ProcessId.Value, location.ProgramId, location.StorageId, accessControlData, accessControlDescriptor).ThrowIfFailure(); return(client); }
public Result CreateHorizonClient(out HorizonClient client) { Result rc = OpenFileSystemClient(out FileSystemClient fsClient); if (rc.IsFailure()) { client = default; return(rc); } client = new HorizonClient(this, fsClient); return(Result.Success); }
public Horizon(ITimeSpanGenerator timer, FileSystemServerConfig fsServerConfig) { _currentProcessId = InitialProcessCountMax; Time = timer ?? new StopWatchTimeSpanGenerator(); ServiceManager = new ServiceManager(); // ReSharper disable ObjectCreationAsStatement new FileSystemServer(CreatePrivilegedHorizonClient(), fsServerConfig); new BcatServer(CreateHorizonClient()); // ReSharper restore ObjectCreationAsStatement LoaderClient = CreatePrivilegedHorizonClient(); }
public static Horizon CreateWithFsConfig(HorizonConfiguration config, FileSystemServerConfig fsServerConfig) { var horizon = new Horizon(config); HorizonClient fsServerClient = horizon.CreatePrivilegedHorizonClient(); var fsServer = new FileSystemServer(fsServerClient); FileSystemServerInitializer.InitializeWithConfig(fsServerClient, fsServer, fsServerConfig); HorizonClient bcatServerClient = horizon.CreateHorizonClient(); _ = new BcatServer(bcatServerClient); return(horizon); }
public HorizonClient CreateHorizonClient(ProgramId programId, AccessControlBits.Bits fsPermissions) { HorizonClient client = CreateHorizonClient(); var dataHeader = new AccessControlDataHeader(); var descriptor = new AccessControlDescriptor(); descriptor.Version = 1; dataHeader.Version = 1; descriptor.AccessFlags = (ulong)fsPermissions; dataHeader.AccessFlags = (ulong)fsPermissions; LoaderClient.Fs.RegisterProgram(client.ProcessId.Value, programId, StorageId.BuiltInUser, SpanHelpers.AsReadOnlyByteSpan(in dataHeader), SpanHelpers.AsReadOnlyByteSpan(in descriptor)) .ThrowIfFailure(); return(client); }