private async Task <bool> ReadCoreAsync(CancellationToken cancellationToken) { this.AssertNotDisposed(); if (this.stream != null) { await this.stream.DisposeAsync(cancellationToken); } this.stream = await MessageDecodingStream.CreateAsync( this.readBuffer, this.discardBuffer, this.OnOutOfFrameByteReceived, cancellationToken); return(this.stream.Message != null); }
private async Task DisposeCoreAsync(CancellationToken cancellationToken) { try { if (this.stream != null) { await this.stream.DisposeAsync(cancellationToken); } } finally { this.disposed = true; this.stream = null; } }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////// internal static async Task <MessageDecodingStream> CreateAsync( ReadBuffer rawBuffer, byte[] discardBuffer, Action <byte> outOfFrameByteReceived, CancellationToken cancellationToken) { var result = new MessageDecodingStream(rawBuffer, discardBuffer, outOfFrameByteReceived); var newMessage = await S101Message.ReadFromAsync(result.deframedBuffer, cancellationToken); if ((newMessage != null) && newMessage.CanHaveMultiplePackets && ((newMessage.PacketFlags & PacketFlags.FirstPacket) == 0)) { throw new S101Exception(string.Format( CultureInfo.InvariantCulture, "Missing {0} flag in first packet.", PacketFlags.FirstPacket)); } result.message = newMessage; return(result); }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////// internal static async Task<MessageDecodingStream> CreateAsync( ReadBuffer rawBuffer, byte[] discardBuffer, Action<byte> outOfFrameByteReceived, CancellationToken cancellationToken) { var result = new MessageDecodingStream(rawBuffer, discardBuffer, outOfFrameByteReceived); var newMessage = await S101Message.ReadFromAsync(result.deframedBuffer, cancellationToken); if ((newMessage != null) && newMessage.CanHaveMultiplePackets && ((newMessage.PacketFlags & PacketFlags.FirstPacket) == 0)) { throw new S101Exception(string.Format( CultureInfo.InvariantCulture, "Missing {0} flag in first packet.", PacketFlags.FirstPacket)); } result.message = newMessage; return result; }
private async Task<bool> ReadCoreAsync(CancellationToken cancellationToken) { this.AssertNotDisposed(); if (this.stream != null) { await this.stream.DisposeAsync(cancellationToken); } this.stream = await MessageDecodingStream.CreateAsync( this.readBuffer, this.discardBuffer, this.OnOutOfFrameByteReceived, cancellationToken); return this.stream.Message != null; }
private async Task DisposeCoreAsync(CancellationToken cancellationToken) { try { if (this.stream != null) { await this.stream.DisposeAsync(cancellationToken); } } finally { this.disposed = true; this.stream = null; } }