public void TestSetup() { content = new byte[157381]; new Random(Guid.NewGuid().GetHashCode()).NextBytes(content); stream = new MemoryStream(content, 0, content.Length); message = new HttpResponseMessage { Content = new System.Net.Http.StreamContent(stream) { Headers = { ContentLength = content.Length } } }; cancellation = new CancellationTokenSource(); maxBodySize = null; useStreaming = false; reader = new BodyReader(len => new byte[len], _ => useStreaming, () => maxBodySize, new ConsoleLog()); }
public void UseCustomDeserializer() { var mockObject = new { Id = 100 }; var mockDeserialized = new { Id = 100 }; var mockBodySerializer = Substitute.For <IBodySerializer>(); mockBodySerializer.ContentType.Returns(new ContentType("application/fake")); mockBodySerializer.Serialize(mockObject).Returns(new byte[] { 200 }); var mockBodyDeserializer = Substitute.For <IBodyDeserializer>(); mockBodyDeserializer.ContentType.Returns(new ContentType("application/fake")); mockBodyDeserializer.Deserialize(Arg.Any <byte[]>(), mockObject.GetType()).Returns(mockDeserialized); var message = new Message(); BodyWriter.Default.WriteBody(message, mockObject, mockBodySerializer); var bodyReader = new BodyReader(); bodyReader.RegisterDeserializer(mockBodyDeserializer); var deserializedBody = bodyReader.ReadBody(message, mockObject.GetType()); Assert.AreEqual(mockObject, deserializedBody); }
public IAsyncOperation <BodyFrameReader> OpenBodyFrameReaderAsync() { return(Task.Run(async() => { if (BodyReader == null) { if (Type == SensorType.NetworkClient) { BodyReader = new BodyFrameReader(this, _networkClient); } else { var bodyIndexSourceInfo = _sourceGroup.SourceInfos.Where(si => si.SourceKind == MediaFrameSourceKind.Custom); foreach (var sourceInfo in bodyIndexSourceInfo) { MediaFrameSource customSource; if (_mediaCapture.FrameSources.TryGetValue(sourceInfo.Id, out customSource) && customSource.CurrentFormat.MajorType == "Perception" && customSource.CurrentFormat.Subtype == PoseTrackingSubType) { var bodyMediaReader = await _mediaCapture.CreateFrameReaderAsync(customSource); BodyReader = new BodyFrameReader(this, bodyMediaReader); break; } } } } await BodyReader?.OpenAsync(); return BodyReader; }).AsAsyncOperation()); }
public IAsyncAction CloseAsync() { return(Task.Run(async() => { await BodyIndexReader?.CloseAsync(); BodyIndexReader?.Dispose(); BodyIndexReader = null; await BodyReader?.CloseAsync(); BodyReader?.Dispose(); BodyReader = null; await ColorReader?.CloseAsync(); ColorReader?.Dispose(); ColorReader = null; await DepthReader?.CloseAsync(); DepthReader?.Dispose(); DepthReader = null; AudioReader?.Close(); AudioReader?.Dispose(); AudioReader = null; _mediaCapture?.Dispose(); _mediaCapture = null; _networkClient?.CloseConnection(); _networkClient = null; _networkServer?.CloseConnection(); _networkServer = null; }).AsAsyncAction()); }
private IList <RouteValue> ReadPropertiesFromBodyContent(HttpRequestBase request, BodyFormat bodyFormat) { var body = GetRequestBody(request); var bodyReader = new BodyReader(); return(bodyReader.ReadBody(body, bodyFormat)); }
private void ReadPropertiesFromBodyContent(HttpRequestBase request, Dictionary <string, string> actualProps) { var body = GetRequestBody(request); if (!string.IsNullOrEmpty(body)) { var bodyReader = new BodyReader(); bodyReader.ReadBody(body, actualProps); } }
public MultiPartStream(string boundary) { var boundryLength = Encoding.GetByteCount(boundary); var boundaryBytes = new byte[BoundaryPrefix.Length + boundryLength]; BoundaryPrefix.CopyTo(boundaryBytes, 0); Encoding.GetBytes(boundary, 0, boundary.Length, boundaryBytes, BoundaryPrefix.Length); var body = new BodyReader(boundaryBytes, (bytes, lines, bodyStartPosition, bodyLength) => OnPartReady(ReadPart(bytes, lines, bodyStartPosition, bodyLength))); state = new HeaderReader(boundaryBytes, body); }
public void Test_References() { const string raw = "1 0 obj\n25\nendobj\n2 0 obj\n1 0 R\nendobj"; var stream = new MemoryStream(Encoding.ASCII.GetBytes(raw)); var reader = new BodyReader(stream, null); var body = reader.Read(); var obj = body.GetIndirectObject(2, 0) as ReferenceObject; Assert.IsNotNull(obj); Assert.AreEqual(25, ((IntegerObject) obj.Value).Value); stream.Dispose(); }
public void Test_StreamReaderWithLengthInReference() { const string raw = "1 0 obj\n2\nendobj\n2 0 obj\n<</Length 1 0 R>>\nstream\r\nHi\r\nendstream\r\nendobj"; var stream = new MemoryStream(Encoding.ASCII.GetBytes(raw)); var reader = new BodyReader(stream, null); var body = reader.Read(); var obj = body.GetIndirectObject(2, 0) as StreamObject; Assert.IsNotNull(obj); var streamContents = Encoding.ASCII.GetString(obj.Value); Assert.AreEqual("Hi", streamContents); stream.Dispose(); }
/// <inheritdoc cref="NativeTransport" /> public NativeTransport([NotNull] NativeTransportSettings settings, [NotNull] ILog log) { this.settings = settings ?? throw new ArgumentNullException(nameof(settings)); this.log = log ?? throw new ArgumentNullException(nameof(log)); clientProvider = new HttpClientProvider(settings, this.log); timeoutProvider = new TimeoutProvider(settings.RequestAbortTimeout, this.log); errorHandler = new ErrorHandler(this.log); bodyReader = new BodyReader( settings.BufferFactory, len => settings.UseResponseStreaming(len), () => settings.MaxResponseBodySize, this.log); }
public void Test_SimpleRead() { const string raw = "1 0 obj\n1\nendobj\n2 0 obj\n(test)\nendobj\n\n"; var stream = new MemoryStream(Encoding.ASCII.GetBytes(raw)); var reader = new BodyReader(stream, null); var body = reader.Read(); var obj = body.GetIndirectObject(1, 0); Assert.IsNotNull(obj); Assert.AreEqual(1u, obj.Number); Assert.AreEqual(0u, obj.Generation); Assert.AreEqual(1, ((IntegerObject) obj).Value); obj = body.GetIndirectObject(2, 0); Assert.IsNotNull(obj); Assert.AreEqual(2u, obj.Number); Assert.AreEqual(0u, obj.Generation); Assert.AreEqual("test", ((StringObject) obj).Value); stream.Dispose(); }