class Fiddley::MemoryPointer
Attributes
size[R]
Public Class Methods
new(type, num = 1, clear = true)
click to toggle source
# File lib/fiddley/memory_pointer.rb, line 12 def initialize(type, num = 1, clear = true) if num.is_a?(Fiddle::Pointer) @ptr = num @size = @ptr.size else @size = type2size(type) * num @ptr = Fiddle::Pointer.malloc(@size) end end
Public Instance Methods
get_bytes(offset, len)
click to toggle source
# File lib/fiddley/memory_pointer.rb, line 106 def get_bytes(offset, len) @ptr[offset, len] end
get_string(offset, len = nil)
click to toggle source
# File lib/fiddley/memory_pointer.rb, line 126 def get_string(offset, len = nil) @ptr[offset, len ? len : @size - offset] end
put_bytes(offset, str, idx = 0, len = str.bytesize - idx)
click to toggle source
# File lib/fiddley/memory_pointer.rb, line 98 def put_bytes(offset, str, idx = 0, len = str.bytesize - idx) @ptr[offset, len] = str[idx, len] end
put_string(offset, str)
click to toggle source
# File lib/fiddley/memory_pointer.rb, line 114 def put_string(offset, str) @ptr[offset, str.bytesize] = str end
read_bytes(len)
click to toggle source
# File lib/fiddley/memory_pointer.rb, line 110 def read_bytes(len) get_bytes(0, len) end
read_string(len = nil)
click to toggle source
# File lib/fiddley/memory_pointer.rb, line 130 def read_string(len = nil) get_string(0, len) end
to_ptr()
click to toggle source
# File lib/fiddley/memory_pointer.rb, line 24 def to_ptr @ptr end
write_bytes(str, idx = 0, len = nil)
click to toggle source
# File lib/fiddley/memory_pointer.rb, line 102 def write_bytes(str, idx = 0, len = nil) put_bytes(0, str, idx, len) end
write_string(str, len = nil)
click to toggle source
# File lib/fiddley/memory_pointer.rb, line 118 def write_string(str, len = nil) put_string(0, len ? str[0, len] : str) end
write_string_length(str, len)
click to toggle source
# File lib/fiddley/memory_pointer.rb, line 122 def write_string_length(str, len) put_string(0, str[0, len]) end