/// <summary>
        ///     Deregisters the value buffer cursor described by valueBufferCursor.
        /// </summary>
        /// <param name="valueBufferCursor"> The value buffer cursor. </param>
        public virtual void DeregisterValueBufferCursor([NotNull] IValueBufferCursor valueBufferCursor)
        {
            Check.NotNull(valueBufferCursor, nameof(valueBufferCursor));

            Connection.ActiveCursor = null;

            _activeQueries.Remove(valueBufferCursor);
        }
Example #2
0
        public virtual void RegisterValueBufferCursor([NotNull] IValueBufferCursor valueBufferCursor)
        {
            Check.NotNull(valueBufferCursor, nameof(valueBufferCursor));

            if (!Connection.IsMultipleActiveResultSetsEnabled &&
                _activeQueries.Count > 0)
            {
                _activeQueries.Last().BufferAll();
            }

            _activeQueries.Add(valueBufferCursor);
        }
Example #3
0
        public virtual void DeregisterValueBufferCursor([NotNull] IValueBufferCursor valueBufferCursor)
        {
            Check.NotNull(valueBufferCursor, nameof(valueBufferCursor));

            _activeQueries.Remove(valueBufferCursor);

            var index = _activeIncludeQueries.IndexOf(valueBufferCursor);

            if (index >= 0)
            {
                _activeIncludeQueries[index] = null;
            }
        }
Example #4
0
        private void AddBufferCursorToIncludeQueriesList(IValueBufferCursor valueBufferCursor, int includeQueryIndex)
        {
            if (includeQueryIndex > _activeIncludeQueries.Count)
            {
                var missingEntries = includeQueryIndex - _activeIncludeQueries.Count;
                for (var i = 0; i < missingEntries; i++)
                {
                    _activeIncludeQueries.Add(null);
                }
            }

            _activeIncludeQueries[includeQueryIndex - 1] = valueBufferCursor;
        }
Example #5
0
        public virtual async Task RegisterValueBufferCursorAsync(
            [NotNull] IValueBufferCursor valueBufferCursor, CancellationToken cancellationToken)
        {
            Check.NotNull(valueBufferCursor, nameof(valueBufferCursor));

            if (!Connection.IsMultipleActiveResultSetsEnabled &&
                _activeQueries.Count > 0)
            {
                await _activeQueries.Last().BufferAllAsync(cancellationToken);
            }

            _activeQueries.Add(valueBufferCursor);
        }
        private void AddBufferCursorToIncludeQueriesList(IValueBufferCursor valueBufferCursor, int includeQueryIndex)
        {
            if (includeQueryIndex > _activeIncludeQueries.Count)
            {
                var missingEntries = includeQueryIndex - _activeIncludeQueries.Count;
                for (var i = 0; i < missingEntries; i++)
                {
                    _activeIncludeQueries.Add(null);
                }
            }

            _activeIncludeQueries[includeQueryIndex - 1] = valueBufferCursor;
        }
        /// <summary>
        ///     Asynchronously registers a value buffer cursor.
        /// </summary>
        /// <param name="valueBufferCursor"> The value buffer cursor. </param>
        /// <param name="cancellationToken"> The cancellation token. </param>
        /// <returns>
        ///     A Task.
        /// </returns>
        public virtual async Task RegisterValueBufferCursorAsync(
            [NotNull] IValueBufferCursor valueBufferCursor,
            CancellationToken cancellationToken)
        {
            Check.NotNull(valueBufferCursor, nameof(valueBufferCursor));

            if (Connection.ActiveCursor != null &&
                !Connection.IsMultipleActiveResultSetsEnabled)
            {
                await Connection.ActiveCursor.BufferAllAsync(cancellationToken);
            }

            Connection.ActiveCursor = valueBufferCursor;

            _activeQueries.Add(valueBufferCursor);
        }
Example #8
0
        public virtual void RegisterValueBufferCursor([NotNull] IValueBufferCursor valueBufferCursor, int?queryIndex)
        {
            Check.NotNull(valueBufferCursor, nameof(valueBufferCursor));

            if (!Connection.IsMultipleActiveResultSetsEnabled &&
                _activeQueries.Count > 0)
            {
                _activeQueries.Last().BufferAll();
            }

            _activeQueries.Add(valueBufferCursor);

            if (queryIndex.HasValue && queryIndex.Value > 0)
            {
                AddBufferCursorToIncludeQueriesList(valueBufferCursor, queryIndex.Value);
            }
        }
Example #9
0
        public virtual async Task RegisterValueBufferCursorAsync(
            [NotNull] IValueBufferCursor valueBufferCursor, int?queryIndex, CancellationToken cancellationToken)
        {
            Check.NotNull(valueBufferCursor, nameof(valueBufferCursor));

            if (!Connection.IsMultipleActiveResultSetsEnabled &&
                _activeQueries.Count > 0)
            {
                await _activeQueries.Last().BufferAllAsync(cancellationToken);
            }

            _activeQueries.Add(valueBufferCursor);

            if (queryIndex.HasValue && queryIndex.Value > 0)
            {
                AddBufferCursorToIncludeQueriesList(valueBufferCursor, queryIndex.Value);
            }
        }