Make LineSeparatedHttpContent public (#549)

This allows the community to provide custom implementations of the Watch algorithm.
This commit is contained in:
Frederik Carlier
2021-02-01 15:28:28 -08:00
committed by GitHub
parent 4e58609159
commit 6acdac256d

View File

@@ -142,7 +142,7 @@ namespace k8s
} }
} }
internal class LineSeparatedHttpContent : HttpContent public class LineSeparatedHttpContent : HttpContent
{ {
private readonly HttpContent _originContent; private readonly HttpContent _originContent;
private readonly CancellationToken _cancellationToken; private readonly CancellationToken _cancellationToken;
@@ -154,15 +154,16 @@ namespace k8s
_cancellationToken = cancellationToken; _cancellationToken = cancellationToken;
} }
internal PeekableStreamReader StreamReader { get; private set; } public TextReader StreamReader { get; private set; }
protected override async Task SerializeToStreamAsync(Stream stream, TransportContext context) protected override async Task SerializeToStreamAsync(Stream stream, TransportContext context)
{ {
_originStream = await _originContent.ReadAsStreamAsync().ConfigureAwait(false); _originStream = await _originContent.ReadAsStreamAsync().ConfigureAwait(false);
StreamReader = new PeekableStreamReader(new CancelableStream(_originStream, _cancellationToken)); var reader = new PeekableStreamReader(new CancelableStream(_originStream, _cancellationToken));
StreamReader = reader;
var firstLine = await StreamReader.PeekLineAsync().ConfigureAwait(false); var firstLine = await reader.PeekLineAsync().ConfigureAwait(false);
var writer = new StreamWriter(stream); var writer = new StreamWriter(stream);