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;
        }
Beispiel #2
0
        private static AbsolutePath CreateRootPath(IAbsFileSystem fileSystem, string subpathSuffix)
        {
            var path = fileSystem.GetTempPath() / "CloudStore" / subpathSuffix;

            return(path);
        }