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(&callback)
Alias for: each_connection
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