class FDB::Cluster
def self.finalize(ptr)
def self.finalize(ptr) proc do # puts "Destroying cluster #{ptr}" FDBC.fdb_cluster_destroy(ptr) end end
def initialize(cpointer)
def initialize(cpointer) @cpointer = cpointer @options = ClusterOptions.new lambda { |code, param| FDBC.check_error FDBC.fdb_cluster_set_option(cpointer, code, param, param.nil? ? 0 : param.bytesize) } ObjectSpace.define_finalizer(self, self.class.finalize(@cpointer)) end
def open_database(name="DB")
def open_database(name="DB") f = FDBC.fdb_cluster_create_database(@cpointer, name, name.bytesize) dpointer = FFI::MemoryPointer.new :pointer FDBC.check_error FDBC.fdb_future_block_until_ready(f) FDBC.check_error FDBC.fdb_future_get_database(f, dpointer) Database.new dpointer.get_pointer(0) end