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