Beispiel #1
0
 /// <summary>
 /// Constructor with complete control that does not perform any validation.
 /// </summary>
 internal ResultStream(
     SpannerClient client,
     ReadOrQueryRequest request,
     Session session,
     CallSettings callSettings,
     int maxBufferSize,
     RetrySettings retrySettings)
 {
     _buffer        = new LinkedList <PartialResultSet>();
     _client        = GaxPreconditions.CheckNotNull(client, nameof(client));
     _request       = GaxPreconditions.CheckNotNull(request, nameof(request));
     _session       = GaxPreconditions.CheckNotNull(session, nameof(session));
     _callSettings  = callSettings;
     _maxBufferSize = GaxPreconditions.CheckArgumentRange(maxBufferSize, nameof(maxBufferSize), 1, 10_000);
     _retrySettings = GaxPreconditions.CheckNotNull(retrySettings, nameof(retrySettings));
 }
Beispiel #2
0
        /// <summary>
        /// Creates a <see cref="ReliableStreamReader"/> for the given request
        /// </summary>
        /// <param name="request">The read request. Must not be null. The request will be modified with session and transaction details
        /// from this object. If this object's <see cref="TransactionId"/> is null, the request's transaction is not modified.</param>
        /// <param name="callSettings">If not null, applies overrides to this RPC call.</param>
        /// <returns>A <see cref="ReliableStreamReader"/> for the streaming read request.</returns>
        internal ReliableStreamReader ExecuteReadOrQueryStreamReader(ReadOrQueryRequest request, CallSettings callSettings)
        {
            CheckNotDisposed();
            GaxPreconditions.CheckNotNull(request, nameof(request));
            if (TransactionId != null)
            {
                request.Transaction = new TransactionSelector {
                    Id = TransactionId
                };
            }
            request.SessionAsSessionName = SessionName;
            SpannerClientImpl.ApplyResourcePrefixHeaderFromSession(ref callSettings, request.Session);

            ResultStream stream = new ResultStream(Client, request, _session, callSettings);

            return(new ReliableStreamReader(stream, Client.Settings.Logger));
        }
Beispiel #3
0
 /// <summary>
 /// Constructor for normal usage, with default buffer size, backoff settings and jitter.
 /// </summary>
 internal ResultStream(SpannerClient client, ReadOrQueryRequest request, Session session, CallSettings callSettings)
     : this(client, request, session, callSettings, DefaultMaxBufferSize, s_defaultRetrySettings)
 {
 }
Beispiel #4
0
 /// <summary>
 /// Creates a <see cref="ReliableStreamReader"/> for the given request.
 /// </summary>
 /// <param name="request">The query request. Must not be null. The request will be modified with session and transaction details
 /// from this object. If this object's <see cref="TransactionId"/> is null, the request's transaction is not modified.</param>
 /// <param name="callSettings">If not null, applies overrides to this RPC call.</param>
 /// <returns>A <see cref="ReliableStreamReader"/> for the streaming SQL request.</returns>
 public ReliableStreamReader ExecuteSqlStreamReader(ExecuteSqlRequest request, CallSettings callSettings) =>
 ExecuteReadOrQueryStreamReader(ReadOrQueryRequest.FromRequest(request), callSettings);