public AsyncUnaryCall <Schema> GetSchema(FlightDescriptor flightDescriptor, Metadata headers = null) { var schemaResult = _client.GetSchemaAsync(flightDescriptor.ToProtocol(), headers); var schema = schemaResult .ResponseAsync .ContinueWith(async schema => FlightMessageSerializer.DecodeSchema((await schemaResult.ResponseAsync.ConfigureAwait(false)).Schema.Memory)) .Unwrap(); return(new AsyncUnaryCall <Schema>( schema, schemaResult.ResponseHeadersAsync, schemaResult.GetStatus, schemaResult.GetTrailers, schemaResult.Dispose)); }
public AsyncUnaryCall <FlightInfo> GetInfo(FlightDescriptor flightDescriptor, Metadata headers = null) { var flightInfoResult = _client.GetFlightInfoAsync(flightDescriptor.ToProtocol(), headers); var flightInfo = flightInfoResult .ResponseAsync .ContinueWith(async flightInfo => new FlightInfo(await flightInfo.ConfigureAwait(false))) .Unwrap(); return(new AsyncUnaryCall <FlightInfo>( flightInfo, flightInfoResult.ResponseHeadersAsync, flightInfoResult.GetStatus, flightInfoResult.GetTrailers, flightInfoResult.Dispose)); }
private async Task SendSchema() { _currentFlightData = new Protocol.FlightData(); if (_flightDescriptor != null) { _currentFlightData.FlightDescriptor = _flightDescriptor.ToProtocol(); } var offset = SerializeSchema(Schema); CancellationTokenSource cancellationTokenSource = new CancellationTokenSource(); await WriteMessageAsync(MessageHeader.Schema, offset, 0, cancellationTokenSource.Token).ConfigureAwait(false); await _clientStreamWriter.WriteAsync(_currentFlightData).ConfigureAwait(false); HasWrittenSchema = true; }