Beispiel #1
0
        private ReadOnlySpan <byte> CompressMessage(ReadOnlySpan <byte> messageData)
        {
            Debug.Assert(_compressionProvider != null, "Compression provider is not null to get here.");

            GrpcServerLog.CompressingMessage(_serverCallContext.Logger, _compressionProvider.EncodingName);

            var output = new NonDisposableMemoryStream();

            // Compression stream must be disposed before its content is read.
            // GZipStream writes final Adler32 at the end of the stream on dispose.
            using (var compressionStream = _compressionProvider.CreateCompressionStream(output, _serverCallContext.Options.ResponseCompressionLevel))
            {
                compressionStream.Write(messageData);
            }

            return(output.GetBuffer().AsSpan(0, (int)output.Length));
        }
 public void DoesNotWriteNameIfKindIsNotCustom()
 {
     var circumstanceToWrite = new InsulinCircumstance();
     circumstanceToWrite.Kind = InsulinCircumstanceKind.Exercise;
     var storage = new InsulinCircumstanceBinaryStorage();
     var stream = new NonDisposableMemoryStream();
     var streamProvider = new Mock<BinaryStreamProvider>();
     streamProvider.Setup(p => p.GetOutputStream(It.IsAny<string>())).Returns(new OutputStreamStub(stream));
     storage.StreamProvider = streamProvider.Object;
     storage.Save(new List<InsulinCircumstance> { circumstanceToWrite });
     stream.Position = 0;
     using (var reader = new StreamReader(stream))
     {
         var result = reader.ReadToEnd();
         Assert.IsFalse(result.Contains(Translations.Exercise));
     }
     stream.Dispose();
 }
        private ReadOnlySpan <byte> CompressMessage(ReadOnlySpan <byte> messageData)
        {
            CompatibilityHelpers.Assert(_compressionProvider != null, "Compression provider is not null to get here.");

            GrpcCallLog.CompressingMessage(_call.Logger, _compressionProvider.EncodingName);

            var output = new NonDisposableMemoryStream();

            // Compression stream must be disposed before its content is read.
            // GZipStream writes final Adler32 at the end of the stream on dispose.
            using (var compressionStream = _compressionProvider.CreateCompressionStream(output, CompressionLevel.Fastest))
            {
#if !NETSTANDARD2_0
                compressionStream.Write(messageData);
#else
                var array = messageData.ToArray();
                compressionStream.Write(array, 0, array.Length);
#endif
            }

            return(output.GetBuffer().AsSpan(0, (int)output.Length));
        }