public void StartDuplexStreaming() { var clientStreamWriter = new HttpContentClientStreamWriter <TRequest, TResponse>(this); var content = new PushStreamContent <TRequest, TResponse>(clientStreamWriter); StartDuplexStreamingCore(clientStreamWriter, content); }
private void CreateWriter(HttpRequestMessage message) { RequestGrpcEncoding = GrpcProtocolHelpers.GetRequestEncoding(message.Headers); ClientStreamWriter = new HttpContentClientStreamWriter <TRequest, TResponse>(this); message.Content = new PushStreamContent <TRequest, TResponse>(ClientStreamWriter, GrpcProtocolConstants.GrpcContentTypeHeaderValue); }
public void StartDuplexStreamingCore(HttpContentClientStreamWriter <TRequest, TResponse> clientStreamWriter, HttpContent content) { var timeout = GetTimeout(); var message = CreateHttpRequestMessage(timeout); SetWriter(message, clientStreamWriter, content); ClientStreamReader = new HttpContentClientStreamReader <TRequest, TResponse>(this); _ = RunCall(message, timeout); }
internal void StartClientStreamingCore(HttpContentClientStreamWriter <TRequest, TResponse> clientStreamWriter, HttpContent content) { _responseTcs = new TaskCompletionSource <TResponse>(TaskCreationOptions.RunContinuationsAsynchronously); var timeout = GetTimeout(); var message = CreateHttpRequestMessage(timeout); SetWriter(message, clientStreamWriter, content); _ = RunCall(message, timeout); }
private HttpContentClientStreamWriter <TRequest, TResponse> CreateWriter(HttpRequestMessage message) { _writeStreamTcs = new TaskCompletionSource <Stream>(TaskCreationOptions.RunContinuationsAsynchronously); _completeTcs = new TaskCompletionSource <bool>(TaskCreationOptions.RunContinuationsAsynchronously); message.Content = new PushStreamContent( (stream) => { _writeStreamTcs.TrySetResult(stream); return(_completeTcs.Task); }, GrpcProtocolConstants.GrpcContentTypeHeaderValue); var writer = new HttpContentClientStreamWriter <TRequest, TResponse>(this, _writeStreamTcs.Task, _completeTcs); return(writer); }
private void CreateWriter(HttpRequestMessage message) { ClientStreamWriter = new HttpContentClientStreamWriter <TRequest, TResponse>(this, message); message.Content = new PushStreamContent <TRequest, TResponse>(ClientStreamWriter, GrpcProtocolConstants.GrpcContentTypeHeaderValue); }
private void SetWriter(HttpRequestMessage message, HttpContentClientStreamWriter <TRequest, TResponse> clientStreamWriter, HttpContent content) { RequestGrpcEncoding = GrpcProtocolHelpers.GetRequestEncoding(message.Headers); ClientStreamWriter = clientStreamWriter; message.Content = content; }
public PushStreamContent(HttpContentClientStreamWriter <TRequest, TResponse> streamWriter, MediaTypeHeaderValue mediaType) { Headers.ContentType = mediaType; _streamWriter = streamWriter; }