private async Task <NonSeekableStream> WriteMessageCoreAsync( S101Message message, CancellationToken cancellationToken) { this.AssertNotDisposed(); if (message == null) { throw new ArgumentNullException(nameof(message)); } if ((this.stream != null) && this.stream.CanWrite) { throw new InvalidOperationException( "DisposeAsync() has not been called on the payload stream of the previous message."); } this.stream = await MessageEncodingStream.CreateAsync(this.writeBuffer, message, cancellationToken); if (!message.CanHavePayload) { await this.stream.DisposeAsync(cancellationToken); this.stream = null; } return(this.stream); }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////// internal static async Task <MessageEncodingStream> CreateAsync( WriteBuffer rawBuffer, S101Message message, CancellationToken cancellationToken) { message.PacketFlags = PacketFlags.FirstPacket | (message.CanHaveMultiplePackets ? PacketFlags.None : PacketFlags.LastPacket); var framingStream = await FramingStream.CreateAsync(rawBuffer, cancellationToken); var result = new MessageEncodingStream(message, rawBuffer, framingStream); await message.WriteToAsync(result.unframedBuffer, cancellationToken); return(result); }
private async Task DisposeCoreAsync(CancellationToken cancellationToken) { try { if (this.stream != null) { await this.stream.DisposeAsync(cancellationToken); } } finally { this.disposed = true; this.stream = null; } }
private async Task DisposeCoreAsync(CancellationToken cancellationToken) { try { if (this.stream != null) { await this.stream.DisposeAsync(cancellationToken); } } finally { this.disposed = true; this.stream = null; } }
private async Task<NonSeekableStream> WriteMessageCoreAsync( S101Message message, CancellationToken cancellationToken) { this.AssertNotDisposed(); if (message == null) { throw new ArgumentNullException(nameof(message)); } if ((this.stream != null) && this.stream.CanWrite) { throw new InvalidOperationException( "DisposeAsync() has not been called on the payload stream of the previous message."); } this.stream = await MessageEncodingStream.CreateAsync(this.writeBuffer, message, cancellationToken); if (!message.CanHavePayload) { await this.stream.DisposeAsync(cancellationToken); this.stream = null; } return this.stream; }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////// internal static async Task<MessageEncodingStream> CreateAsync( WriteBuffer rawBuffer, S101Message message, CancellationToken cancellationToken) { message.PacketFlags = PacketFlags.FirstPacket | (message.CanHaveMultiplePackets ? PacketFlags.None : PacketFlags.LastPacket); var framingStream = await FramingStream.CreateAsync(rawBuffer, cancellationToken); var result = new MessageEncodingStream(message, rawBuffer, framingStream); await message.WriteToAsync(result.unframedBuffer, cancellationToken); return result; }