private IReadBindingHandle GetSingleServerReadBinding(CancellationToken cancellationToken) { var readPreference = _options.ReadPreference ?? _database.Settings.ReadPreference; var selector = new ReadPreferenceServerSelector(readPreference); var server = _cluster.SelectServer(selector, cancellationToken); var binding = new SingleServerReadBinding(server, readPreference, NoCoreSession.NewHandle()); return(new ReadBindingHandle(binding)); }
private async Task <IReadBindingHandle> GetSingleServerReadBindingAsync(CancellationToken cancellationToken) { var readPreference = _options.ReadPreference ?? _database.Settings.ReadPreference; var selector = new ReadPreferenceServerSelector(readPreference); var server = await _cluster.SelectServerAsync(selector, cancellationToken).ConfigureAwait(false); var binding = new SingleServerReadBinding(server, readPreference, NoCoreSession.NewHandle()); return(new ReadBindingHandle(binding)); }
/// <summary> /// Checks whether the server is alive (throws an exception if not). /// </summary> public void Ping() { var messageEncoderSettings = GetMessageEncoderSettings(); var operation = new PingOperation(messageEncoderSettings); var server = GetServer(); using (var binding = new SingleServerReadBinding(server, ReadPreference.PrimaryPreferred)) { operation.Execute(binding, CancellationToken.None); } }