Module: Oinky::Internal

Extended by:
FFI::Library
Defined in:
lib/oinky.rb

Overview

All of the C library interface is hidden within this internal module. The clean object-oriented lifetime-managed interface is built above this.

Defined Under Namespace

Classes: ColumnDefn, CursorBase, DB_string, IndexColumnDefn, OinkyDateTime, OinkyUnpackedDateTime, Variant, VariantSet

Constant Summary collapse

NkyTypeCodes =
FFI::Enum.new([
 :variant, 0,
 :bit, 1,
 :int8, 2,
 :int16, 3,
 :int32, 4,
 :int64, 5,
 :datetime, 6,
 :string, 7,
 :uint8, 8,
 :uint16, 9,
 :uint32, 10,
 :uint64, 11,
 :float32, 12,
 :float64, 13
])

Class Method Summary collapse

Class Method Details

.make_hash(src, keys) ⇒ Object



369
370
371
372
373
# File 'lib/oinky.rb', line 369

def self.make_hash(src, keys)
  h = ExHash.new
  keys.each {|k| h[k] = src[k] }
  h
end

.prepare_pack(db) ⇒ Object



52
53
54
55
56
# File 'lib/oinky.rb', line 52

def self.prepare_pack(db)
  res = FFI::MemoryPointer.new :size_t
  wrap_oinky(oinky_db_prepare_pack(db, res))
  res.read_int
end

.wrap_oinky(err) ⇒ Object



58
59
60
61
62
63
# File 'lib/oinky.rb', line 58

def self.wrap_oinky(err)
  if err < 0
    raise OinkyException.new(err, convert_oinky_error(err))
  end
  nil
end