Module: Libcall::Fiddley::DSL
- Defined in:
- lib/libcall/fiddley.rb
Overview
Small helper methods intended for use inside callback blocks
Class Method Summary collapse
-
.char(p) ⇒ Object
Typed short-hands.
- .cstr(p) ⇒ Object
- .double(p) ⇒ Object
- .float(p) ⇒ Object
- .int(p) ⇒ Object
- .long(p) ⇒ Object
- .long_long(p) ⇒ Object
- .ptr(x) ⇒ Object
- .read(type, p) ⇒ Object
- .short(p) ⇒ Object
- .uchar(p) ⇒ Object
- .uint(p) ⇒ Object
- .ulong(p) ⇒ Object
- .ulong_long(p) ⇒ Object
- .ushort(p) ⇒ Object
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
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) |