Module: Libcall::Fiddley::DSL

Defined in:
lib/libcall/fiddley.rb

Overview

Small helper methods intended for use inside callback blocks

Class Method Summary collapse

Class Method Details

.char(p) ⇒ Object

Typed short-hands



29
# File 'lib/libcall/fiddley.rb', line 29

def char(p) = read(:char, p)

.cstr(p) ⇒ Object



41
# File 'lib/libcall/fiddley.rb', line 41

def cstr(p) = read(:string, p)

.double(p) ⇒ Object



40
# File 'lib/libcall/fiddley.rb', line 40

def double(p) = read(:double, p)

.float(p) ⇒ Object



39
# File 'lib/libcall/fiddley.rb', line 39

def float(p) = read(:float, p)

.int(p) ⇒ Object



33
# File 'lib/libcall/fiddley.rb', line 33

def int(p) = read(:int, p)

.long(p) ⇒ Object



35
# File 'lib/libcall/fiddley.rb', line 35

def long(p) = read(:long, p)

.long_long(p) ⇒ Object



37
# File 'lib/libcall/fiddley.rb', line 37

def long_long(p) = read(:long_long, p)

.ptr(x) ⇒ Object



15
16
17
# File 'lib/libcall/fiddley.rb', line 15

def ptr(x)
  Fiddle::Pointer.new(Integer(x))
end

.read(type, p) ⇒ Object

Raises:



19
20
21
22
23
24
25
26
# File 'lib/libcall/fiddley.rb', line 19

def read(type, p)
  t = type.is_a?(Symbol) ? type : type.to_s
  t_sym = Libcall::TypeMap.lookup(t) || (type.is_a?(Symbol) ? type : nil)
  raise Libcall::Error, "unknown read type: #{type}" unless t_sym

  pp = p.is_a?(Fiddle::Pointer) ? p : Fiddle::Pointer.new(Integer(p))
  Libcall::TypeMap.read_output_pointer(pp, t_sym)
end

.short(p) ⇒ Object



31
# File 'lib/libcall/fiddley.rb', line 31

def short(p) = read(:short, p)

.uchar(p) ⇒ Object



30
# File 'lib/libcall/fiddley.rb', line 30

def uchar(p) = read(:uchar, p)

.uint(p) ⇒ Object



34
# File 'lib/libcall/fiddley.rb', line 34

def uint(p) = read(:uint, p)

.ulong(p) ⇒ Object



36
# File 'lib/libcall/fiddley.rb', line 36

def ulong(p) = read(:ulong, p)

.ulong_long(p) ⇒ Object



38
# File 'lib/libcall/fiddley.rb', line 38

def ulong_long(p) = read(:ulong_long, p)

.ushort(p) ⇒ Object



32
# File 'lib/libcall/fiddley.rb', line 32

def ushort(p) = read(:ushort, p)