public GrpcContentServer( ILogger logger, Capabilities serviceCapabilities, ISessionHandler <IContentSession> sessionHandler, IReadOnlyDictionary <string, IContentStore> storesByName, LocalServerConfiguration?localServerConfiguration = null) { Contract.RequiresNotNull(storesByName); _serviceCapabilities = serviceCapabilities; _contentStoreByCacheName = storesByName; _bufferSize = localServerConfiguration?.BufferSizeForGrpcCopies ?? ContentStore.Grpc.GrpcConstants.DefaultBufferSizeBytes; _gzipSizeBarrier = localServerConfiguration?.GzipBarrierSizeForGrpcCopies ?? (_bufferSize * 8); _ongoingPushCountLimit = localServerConfiguration?.ProactivePushCountLimit ?? LocalServerConfiguration.DefaultProactivePushCountLimit; _traceGrpcOperations = localServerConfiguration?.TraceGrpcOperations ?? false; _pool = new ByteArrayPool(_bufferSize); ContentSessionHandler = sessionHandler; _fileSystem = localServerConfiguration?.FileSystem ?? new PassThroughFileSystem(); _workingDirectory = (localServerConfiguration?.DataRootPath ?? _fileSystem.GetTempPath()) / "GrpcContentServer"; GrpcAdapter = new ContentServerAdapter(this); Logger = logger; }
private static AbsolutePath CreateRootPath(IAbsFileSystem fileSystem, string subpathSuffix) { var path = fileSystem.GetTempPath() / "CloudStore" / subpathSuffix; return(path); }