Sha256: 315fb29c128e1777f6bfb7ff11a5db5afd07388265174ddd1970aa01c29cc9fd
Contents?: true
Size: 1.65 KB
Versions: 2
Compression:
Stored size: 1.65 KB
Contents
require 'ffi' require_relative 'btrieve_const' module Btrieve extend FFI::Library include BtrCodes if( RUBY_PLATFORM.match('mswin|mingw|cygwin')) ffi_lib 'w3btrv7.dll' elsif(RUBY_PLATFORM.match('linux')) ffi_lib 'libpsqlmif.so' else raise Exception.new("Unknown RUBY_PLATFORM #{RUBY_PLATFORM} to perform FFI calls into PSQL.") end attach_function :BTRCALLID, [:int, :pointer, :pointer, :pointer, :pointer, :uchar, :uchar, :pointer], :int def btr_op(session, ops, pos_buffer, data_buffer, key_buffer, key_number, valid_return_codes=[0]) data_length = [data_buffer.size].pack('L') key_length = key_buffer.size result_code = BTRCALLID(ops, pos_buffer, data_buffer, data_length, key_buffer, key_length, key_number, session.client_id) unless valid_return_codes.include?(result_code) p "ops=#{ops} data_buffer.length=#{data_buffer.length} key_buffer=#{key_buffer}, key_buffer.length=#{key_buffer.length}, key_number=#{key_number}, session.client_id=#{session.client_id}" raise Exception.new("PSQL Exception Code #{result_code} - #{EXCEPTION_MESSAGES[result_code]}") end result_code end def self.create_string_buffer(size) 0.chr*(size) end end module Timer def timer(&block) start_time = Time.now yield end_time = Time.now end_time - start_time end def timer2(out=nil, &block) start_time = Time.now out = yield out [Time.now - start_time, out] end end require_relative 'btrieve_session' require_relative 'btrieve_table' require_relative 'btrieve_schema' require_relative 'btrieve_meta' require_relative 'btrieve_record' require_relative 'btrieve_model' require_relative 'fos_code'
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
beezwax-0.1.1 | lib/btrieve/btrieve_core.rb |
beezwax-0.1.0 | lib/btrieve/btrieve_core.rb |