示例#1
0
        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));
        }
示例#2
0
        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));
        }
示例#3
0
        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;
        }