示例#1
0
        /// <summary>
        /// Creates a new instance using a request and the statement.
        /// </summary>
        public RequestHandler(IInternalSession session, Serializer serializer, IRequest request, IStatement statement)
        {
            _tcs        = new TaskCompletionSource <RowSet>();
            _session    = session ?? throw new ArgumentNullException(nameof(session));
            _request    = request;
            Serializer  = serializer ?? throw new ArgumentNullException(nameof(session));
            Statement   = statement;
            Policies    = _session.Cluster.Configuration.Policies;
            RetryPolicy = Policies.ExtendedRetryPolicy;

            if (statement?.RetryPolicy != null)
            {
                RetryPolicy = statement.RetryPolicy.Wrap(Policies.ExtendedRetryPolicy);
            }

            _queryPlan = RequestHandler.GetQueryPlan(session, statement, Policies).GetEnumerator();
        }
示例#2
0
        /// <summary>
        /// Creates a new instance using a request, the statement and the execution profile.
        /// </summary>
        public RequestHandler(IInternalSession session, Serializer serializer, IRequest request, IStatement statement, IRequestOptions requestOptions)
        {
            _tcs           = new TaskCompletionSource <RowSet>();
            _session       = session ?? throw new ArgumentNullException(nameof(session));
            _request       = request;
            Serializer     = serializer ?? throw new ArgumentNullException(nameof(session));
            Statement      = statement;
            RequestOptions = requestOptions ?? throw new ArgumentNullException(nameof(requestOptions));

            RetryPolicy = RequestOptions.RetryPolicy;

            if (statement?.RetryPolicy != null)
            {
                RetryPolicy = statement.RetryPolicy.Wrap(RetryPolicy);
            }

            _queryPlan = RequestHandler.GetQueryPlan(session, statement, RequestOptions.LoadBalancingPolicy).GetEnumerator();
        }
示例#3
0
        /// <summary>
        /// Creates a new instance using a request, the statement and the execution profile.
        /// </summary>
        public RequestHandler(
            IInternalSession session, ISerializer serializer, IRequest request, IStatement statement, IRequestOptions requestOptions)
        {
            _session              = session ?? throw new ArgumentNullException(nameof(session));
            _requestObserver      = session.ObserverFactory.CreateRequestObserver();
            _requestResultHandler = new TcsMetricsRequestResultHandler(_requestObserver);
            _request              = request;
            Serializer            = serializer ?? throw new ArgumentNullException(nameof(session));
            Statement             = statement;
            RequestOptions        = requestOptions ?? throw new ArgumentNullException(nameof(requestOptions));

            RetryPolicy = RequestOptions.RetryPolicy;

            if (statement?.RetryPolicy != null)
            {
                RetryPolicy = statement.RetryPolicy.Wrap(RetryPolicy);
            }

            _queryPlan = RequestHandler.GetQueryPlan(session, statement, RequestOptions.LoadBalancingPolicy).GetEnumerator();
        }