Module: Traildb

Extended by:
FFI::Library
Defined in:
lib/traildb.rb,
lib/traildb/version.rb

Defined Under Namespace

Classes: TdbEvent, TdbOptValue, TrailDB, TrailDBConstructor, TrailDBCursor, TrailDBError, TrailDBEventFilter

Constant Summary collapse

TDB_OPT_EVENT_FILTER =
101
VERSION =
"0.1.1"

Class Method Summary collapse

Class Method Details

.tdb_item_field(item) ⇒ Object


112
113
114
115
116
117
118
# File 'lib/traildb.rb', line 112

def self.tdb_item_field(item)
  if tdb_item_is32(item)
    tdb_item_field32(item)
  else
    (item & 127) | (((item >> 8) & 127) << 7)
  end
end

.tdb_item_field32(item) ⇒ Object


109
# File 'lib/traildb.rb', line 109

def self.tdb_item_field32(item); item & 127 end

.tdb_item_is32(item) ⇒ Object


108
# File 'lib/traildb.rb', line 108

def self.tdb_item_is32(item); (item & 128) == 0 end

.tdb_item_val(item) ⇒ Object


120
121
122
123
124
125
126
# File 'lib/traildb.rb', line 120

def self.tdb_item_val(item)
  if tdb_item_is32(item)
    tdb_item_val32(item)
  else
    item >> 16
  end
end

.tdb_item_val32(item) ⇒ Object

UINT32_MAX


110
# File 'lib/traildb.rb', line 110

def self.tdb_item_val32(item); (item >> 8) & 4294967295 end

.uuid_hex(uuid) ⇒ Object


92
93
94
95
96
97
98
# File 'lib/traildb.rb', line 92

def self.uuid_hex(uuid)
  if uuid.is_a? FFI::Pointer
    ary = uuid.read_bytes(16).unpack("NnnnnN")
    uuid = "%08x-%04x-%04x-%04x-%04x%08x" % ary
  end
  uuid
end

.uuid_raw(uuid) ⇒ Object


100
101
102
103
104
105
106
# File 'lib/traildb.rb', line 100

def self.uuid_raw(uuid)
  if uuid.is_a? String
    ptr = FFI::MemoryPointer.new(:uint8, 16)
    uuid = ptr.write_bytes(uuid.scan(/[0-9a-f]{2}/).map{|x|x.to_i(16)}.pack('C*'))
  end
  uuid
end