class GLib::Strv

Extra methods for GLib::Strv. The bulk is defined in `gir_ffi-base/glib/strv.rb`

Represents a null-terminated array of strings. GLib uses this construction, but does not provide any actual functions for this class.

Constants

POINTER_SIZE

Public Class Methods

from(it) click to toggle source
# File lib/ffi-glib/strv.rb, line 8
def self.from(it)
  case it
  when nil
    nil
  when FFI::Pointer
    wrap it
  when self
    it
  else
    from_enumerable it
  end
end
from_enumerable(enum) click to toggle source
# File lib/ffi-glib/strv.rb, line 21
def self.from_enumerable(enum)
  wrap GirFFI::InPointer.from_array :utf8, enum
end
new(ptr) click to toggle source
# File lib/gir_ffi-base/glib/strv.rb, line 11
def initialize(ptr)
  @ptr = ptr
end
wrap(ptr) click to toggle source
# File lib/gir_ffi-base/glib/strv.rb, line 27
def self.wrap(ptr)
  new ptr
end

Public Instance Methods

==(other) click to toggle source
# File lib/ffi-glib/strv.rb, line 4
def ==(other)
  to_a == other.to_a
end
each() { |read_string| ... } click to toggle source
# File lib/gir_ffi-base/glib/strv.rb, line 19
def each
  return if @ptr.null?
  reset_iterator
  while (ptr = next_ptr)
    yield ptr.read_string
  end
end
to_ptr() click to toggle source
# File lib/gir_ffi-base/glib/strv.rb, line 15
def to_ptr
  @ptr
end

Private Instance Methods

next_ptr() click to toggle source
# File lib/gir_ffi-base/glib/strv.rb, line 37
def next_ptr
  ptr = @ptr.get_pointer @offset
  @offset += POINTER_SIZE
  ptr unless ptr.null?
end
reset_iterator() click to toggle source
# File lib/gir_ffi-base/glib/strv.rb, line 33
def reset_iterator
  @offset = 0
end