Example #1
0
        private async Task ProduceEndAwaited()
        {
            ProduceStart(appCompleted: true);

            // Force flush
            await SocketOutput.WriteAsync(_emptyData);

            await WriteSuffix();
        }
Example #2
0
        public async Task WriteAsyncAwaited(ArraySegment <byte> data, CancellationToken cancellationToken)
        {
            await ProduceStartAndFireOnStarting();

            if (_autoChunk)
            {
                if (data.Count == 0)
                {
                    return;
                }
                await WriteChunkedAsync(data, cancellationToken);
            }
            else
            {
                await SocketOutput.WriteAsync(data, cancellationToken : cancellationToken);
            }
        }
Example #3
0
        public Task WriteAsync(ArraySegment <byte> data, CancellationToken cancellationToken)
        {
            if (!HasResponseStarted)
            {
                return(WriteAsyncAwaited(data, cancellationToken));
            }

            if (_autoChunk)
            {
                if (data.Count == 0)
                {
                    return(TaskUtilities.CompletedTask);
                }
                return(WriteChunkedAsync(data, cancellationToken));
            }
            else
            {
                return(SocketOutput.WriteAsync(data, cancellationToken: cancellationToken));
            }
        }
Example #4
0
 private Task WriteChunkedResponseSuffix()
 {
     return(SocketOutput.WriteAsync(_endChunkedResponseBytes));
 }
Example #5
0
 private Task WriteChunkedAsync(ArraySegment <byte> data, CancellationToken cancellationToken)
 {
     return(SocketOutput.WriteAsync(data, chunk: true, cancellationToken: cancellationToken));
 }
Example #6
0
        public async Task FlushAsync(CancellationToken cancellationToken)
        {
            await ProduceStartAndFireOnStarting();

            await SocketOutput.WriteAsync(_emptyData, cancellationToken : cancellationToken);
        }