Object
@param [Type] type type of data to read from pointer's contents @param [Symbol] reader method to send to self to read type @param [Numeric] length @return [Array] Read an array of type of length length. @example
ptr.read_array_of_type(TYPE_UINT8, :get_uint8, 4) # -> [1, 2, 3, 4]
# File lib/ffi/pointer.rb, line 94 def read_array_of_type(type, reader, length) ary = [] size = FFI.type_size(type) tmp = self length.times { |j| ary << tmp.send(reader) tmp += size unless j == length-1 # avoid OOB } ary end
@param [nil,Numeric] len length of string to return @return [String] Read pointer's contents as a string, or the first len bytes of the equivalent string if len is not nil.
# File lib/ffi/pointer.rb, line 38 def read_string(len=nil) if len get_bytes(0, len) else get_string(0) end end
@param [Numeric] len length of string to return @return [String] Read the first len bytes of pointer's contents as a string.
Same as:
ptr.read_string(len) # with len not nil
# File lib/ffi/pointer.rb, line 52 def read_string_length(len) get_bytes(0, len) end
@return [String] Read pointer's contents as a string.
Same as:
ptr.read_string # with no len
# File lib/ffi/pointer.rb, line 61 def read_string_to_null get_string(0) end
@param [Type] type type of data to write to pointer's contents @param [Symbol] writer method to send to self to write type @param [Array] ary @return [self] Write ary in pointer's contents as type. @example
ptr.write_array_of_type(TYPE_UINT8, :put_uint8, [1, 2, 3 ,4])
# File lib/ffi/pointer.rb, line 112 def write_array_of_type(type, writer, ary) size = FFI.type_size(type) tmp = self ary.each_with_index {|i, j| tmp.send(writer, i) tmp += size unless j == ary.length-1 # avoid OOB } self end
@param [String] str string to write @param [Numeric] len length of string to return @return [self] Write str in pointer's contents, or first len bytes if len is not nil.
# File lib/ffi/pointer.rb, line 81 def write_string(str, len=nil) len = str.bytesize unless len # Write the string data without NUL termination put_bytes(0, str, 0, len) end
@param [String] str string to write @param [Numeric] len length of string to return @return [self] Write len first bytes of str in pointer's contents.
Same as:
ptr.write_string(str, len) # with len not nil
# File lib/ffi/pointer.rb, line 72 def write_string_length(str, len) put_bytes(0, str, 0, len) end
Generated with the Darkfish Rdoc Generator 2.