public VfsTree(VfsCasConfiguration configuration) { PathTable = new PathTable(); _configuration = configuration; _root = new VfsDirectoryNode(string.Empty, DateTime.UtcNow, null); _nodeMap[string.Empty] = _root; }
/// <nodoc /> public VirtualizedContentStore(IContentStore innerStore, Logger logger, VfsCasConfiguration configuration) { _logger = logger; _innerStore = innerStore; _configuration = configuration; Tree = new VfsTree(_configuration); }
public VfsContentManager(ILogger logger, VfsCasConfiguration configuration, VfsTree tree, IContentSession contentSession) { _logger = logger; _configuration = configuration; Tree = tree; _contentSession = contentSession; _fileSystem = new PassThroughFileSystem(); _tempDirectory = new DisposableDirectory(_fileSystem, configuration.DataRootPath / "temp"); }
/// <nodoc /> public VfsContentManager(ILogger logger, VfsCasConfiguration configuration, IReadOnlyContentSession placer) { Tree = new VfsTree(configuration); _logger = logger; _configuration = configuration; _placer = placer; _fileSystem = new PassThroughFileSystem(); _tempDirectory = new DisposableDirectory(_fileSystem, configuration.DataRootPath / "temp"); Provider = new VfsProvider(logger, configuration, this); }
public async Task RunAsync(VfsCasConfiguration configuration) { // Create VFS root using (var fileLog = new FileLog((configuration.RootPath / "Bvfs.log").Path)) using (var logger = new Logger(fileLog)) { var fileSystem = new PassThroughFileSystem(logger); var context = new OperationContext(new Context(logger)); // Map junctions into VFS root foreach (var mount in configuration.VirtualizationMounts) { CreateJunction(context, source: mount.Value, target: configuration.VfsMountRootPath / mount.Key); } var clientContentStore = new ServiceClientContentStore( logger, fileSystem, new ServiceClientContentStoreConfiguration( configuration.CacheName, new ServiceClientRpcConfiguration( configuration.BackingGrpcPort), scenario: configuration.Scenario)); // Client is startup/shutdown with wrapping VFS content store using (var server = new LocalContentServer( fileSystem, logger, scenario: "bvfs" + configuration.ServerGrpcPort, path => new VirtualizedContentStore(clientContentStore, logger, configuration), new LocalServerConfiguration( configuration.DataRootPath, new Dictionary <string, AbsolutePath>() { { configuration.CacheName, configuration.ServerRootPath } }, configuration.ServerGrpcPort, fileSystem))) { await server.StartupAsync(context).ThrowIfFailure(); await WaitForTerminationAsync(context); await server.ShutdownAsync(context).ThrowIfFailure(); } } }
/// <nodoc /> public VirtualizedContentStore(IContentStore innerStore, ILogger logger, VfsCasConfiguration configuration) { _logger = logger; _innerStore = innerStore; Configuration = configuration; }