class GRCommons::Fiddley::MemoryPointer

Attributes

size[R]

Public Class Methods

new(type, num = 1) click to toggle source
# File lib/gr_commons/fiddley.rb, line 185
def initialize(type, num = 1)
  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/gr_commons/fiddley.rb, line 359
def get_bytes(offset, len)
  @ptr[offset, len]
end
get_string(offset, len = nil) click to toggle source
# File lib/gr_commons/fiddley.rb, line 379
def get_string(offset, len = nil)
  @ptr[offset, len || @size - offset]
end
put_bytes(offset, str, idx = 0, len = str.bytesize - idx) click to toggle source
# File lib/gr_commons/fiddley.rb, line 351
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/gr_commons/fiddley.rb, line 367
def put_string(offset, str)
  @ptr[offset, str.bytesize] = str
end
read_bytes(len) click to toggle source
# File lib/gr_commons/fiddley.rb, line 363
def read_bytes(len)
  get_bytes(0, len)
end
read_pointer() click to toggle source

added NOTE: Return Fiddle::Pointer. Not MemoryPointer.

# File lib/gr_commons/fiddley.rb, line 389
def read_pointer
  to_ptr.ptr
end
read_string(len = nil) click to toggle source
# File lib/gr_commons/fiddley.rb, line 383
def read_string(len = nil)
  get_string(0, len)
end
to_ptr() click to toggle source
# File lib/gr_commons/fiddley.rb, line 197
def to_ptr
  @ptr
end
write_bytes(str, idx = 0, len = nil) click to toggle source
# File lib/gr_commons/fiddley.rb, line 355
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/gr_commons/fiddley.rb, line 371
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/gr_commons/fiddley.rb, line 375
def write_string_length(str, len)
  put_string(0, str[0, len])
end