class Cql::Client::ConnectionManager

@private

Public Class Methods

new() click to toggle source
# File lib/cql/client/connection_manager.rb, line 9
def initialize
  @connections = []
  @lock = Mutex.new
end

Public Instance Methods

add_connections(connections) click to toggle source
# File lib/cql/client/connection_manager.rb, line 14
def add_connections(connections)
  @lock.synchronize do
    @connections.concat(connections)
    connections.each do |connection|
      connection.on_closed do
        @lock.synchronize do
          @connections.delete(connection)
        end
      end
    end
  end
end
connected?() click to toggle source
# File lib/cql/client/connection_manager.rb, line 27
def connected?
  @lock.synchronize do
    @connections.any?
  end
end
each(&callback)
Alias for: each_connection
each_connection(&callback) click to toggle source
# File lib/cql/client/connection_manager.rb, line 46
def each_connection(&callback)
  return self unless block_given?
  raise NotConnectedError unless connected?
  @lock.synchronize do
    @connections.each(&callback)
  end
end
Also aliased as: each
random_connection() click to toggle source
# File lib/cql/client/connection_manager.rb, line 39
def random_connection
  raise NotConnectedError unless connected?
  @lock.synchronize do
    @connections.sample
  end
end
snapshot() click to toggle source
# File lib/cql/client/connection_manager.rb, line 33
def snapshot
  @lock.synchronize do
    @connections.dup
  end
end