private async Task <CursorBatch <TDocument> > GetNextBatchAsync() { using (var connection = await _connectionSource.GetConnectionAsync(Timeout.InfiniteTimeSpan, CancellationToken.None)) { var protocol = CreateGetMoreProtocol(); return(await protocol.ExecuteAsync(connection, _timeout, _cancellationToken)); } }
protected async Task <TCommandResult> ExecuteCommandAsync( IConnectionSource connectionSource, ReadPreference readPreference, TimeSpan timeout, CancellationToken cancellationToken) { var slidingTimeout = new SlidingTimeout(timeout); using (var connection = await connectionSource.GetConnectionAsync(slidingTimeout, cancellationToken)) { var protocol = CreateProtocol(connectionSource.ServerDescription, readPreference); return(await protocol.ExecuteAsync(connection, slidingTimeout, cancellationToken)); } }
public static async Task <TResult> ExecuteAsync <TResult>( this IWireProtocol <TResult> protocol, IConnectionSource connectionSource, TimeSpan timeout = default(TimeSpan), CancellationToken cancellationToken = default(CancellationToken)) { Ensure.IsNotNull(protocol, "protocol"); var slidingTimeout = new SlidingTimeout(timeout); using (var connection = await connectionSource.GetConnectionAsync(slidingTimeout, cancellationToken)) { return(await protocol.ExecuteAsync(connection, slidingTimeout, cancellationToken)); } }
// static methods public static IConnectionHandle GetConnection(this IConnectionSource connectionSource, TimeSpan timeout = default(TimeSpan), CancellationToken cancellationToken = default(CancellationToken)) { return(connectionSource.GetConnectionAsync(timeout, cancellationToken).GetAwaiter().GetResult()); }