class Cassandra::Cluster::ConnectionPool
@private
Public Class Methods
new()
click to toggle source
# File lib/cassandra/cluster/connection_pool.rb 25 def initialize 26 @connections = [] 27 @lock = ::Mutex.new 28 end
Public Instance Methods
add_connections(connections)
click to toggle source
# File lib/cassandra/cluster/connection_pool.rb 30 def add_connections(connections) 31 @lock.synchronize do 32 @connections.concat(connections) 33 connections.each do |connection| 34 connection.on_closed do 35 @lock.synchronize do 36 @connections.delete(connection) 37 end 38 end 39 end 40 end 41 end
connected?()
click to toggle source
# File lib/cassandra/cluster/connection_pool.rb 43 def connected? 44 @lock.synchronize do 45 @connections.any? 46 end 47 end
each_connection(&callback)
click to toggle source
# File lib/cassandra/cluster/connection_pool.rb 68 def each_connection(&callback) 69 return self unless block_given? 70 raise Errors::IOError, 'Not connected' unless connected? 71 @lock.synchronize do 72 @connections.each(&callback) 73 end 74 end
Also aliased as: each
random_connection()
click to toggle source
# File lib/cassandra/cluster/connection_pool.rb 55 def random_connection 56 raise Errors::IOError, 'Not connected' unless connected? 57 @lock.synchronize do 58 @connections.sample 59 end 60 end
size()
click to toggle source
# File lib/cassandra/cluster/connection_pool.rb 62 def size 63 @lock.synchronize do 64 @connections.size 65 end 66 end
snapshot()
click to toggle source
# File lib/cassandra/cluster/connection_pool.rb 49 def snapshot 50 @lock.synchronize do 51 @connections.dup 52 end 53 end