public void RunCompleted(long statementId, string[] fields, IResponsePipelineError error)
        {
            _statementId = statementId;
            _fields      = fields;

            UpdateState(State.RunCompleted);
        }
        public void OnFailure(string code, string message)
        {
            LogFailure(code, message);
            var handler = Dequeue();

            _error = new ResponsePipelineError(ErrorExtensions.ParseServerException(code, message));
            handler.OnFailure(_error);
        }
        private Func <Task> WrapAdvanceFunc(Func <Task> advanceFunc)
        {
            return(async() =>
            {
                if (CheckAndUpdateState(State.RecordsRequested, State.RunCompleted))
                {
                    if (_cancellationSource.IsCancellationRequested)
                    {
                        await _cancelFunction(this, _statementId).ConfigureAwait(false);
                    }
                    else
                    {
                        await _moreFunction(this, _statementId, _batchSize).ConfigureAwait(false);
                    }
                }

                if (CurrentState < State.Completed)
                {
                    try
                    {
                        await advanceFunc().ConfigureAwait(false);
                    }
                    catch (ProtocolException)
                    {
                        throw;
                    }
                    catch (Exception exc)
                    {
                        _pendingError = new ResponsePipelineError(exc);

                        // Ensure that current state is updated and is recognized as Completed
                        UpdateState(State.Completed);
                    }
                }

                if (CurrentState == State.Completed && _resourceHandler != null)
                {
                    await _resourceHandler.OnResultConsumedAsync().ConfigureAwait(false);
                }
            });
        }
Beispiel #4
0
 public override void OnFailure(IResponsePipelineError error)
 {
 }
 public override void OnFailure(IResponsePipelineError error)
 {
     _streamBuilder.RunCompleted(NoStatementId, null, error);
 }
 public override void OnFailure(IResponsePipelineError error)
 {
     _streamBuilder.PullCompleted(false, error);
 }
Beispiel #7
0
 public virtual void OnFailure(IResponsePipelineError error)
 {
 }
 public ResponsePipeline(ILogger logger)
 {
     _handlers = new ConcurrentQueue <IResponseHandler>();
     _logger   = logger;
     _error    = null;
 }
 public void PullCompleted(bool hasMore, IResponsePipelineError error)
 {
     UpdateState(hasMore ? State.RunCompleted : State.Completed);
 }