class GObjectIntrospection::Loader::VirtualFunctionImplementor
Public Class Methods
Source
# File lib/gobject-introspection/loader.rb, line 831 def initialize(loader_class, gtype_prefix, infos) @loader_class = loader_class @gtype_prefix = gtype_prefix @infos = {} prefix = GLib::VIRTUAL_FUNCTION_IMPLEMENTATION_PREFIX infos.each do |info| name = info.name @infos[:"#{prefix}#{name}"] = info @infos[:"#{prefix}#{gtype_prefix}_#{name}"] = info end end
Public Instance Methods
Source
# File lib/gobject-introspection/loader.rb, line 843 def implement(implementor_gtype, name) info = @infos[name] return false if info.nil? container = info.container vtable_gtype = container.gtype if container.respond_to?(:class_struct) struct = container.class_struct else return false unless implementor_gtype.type_is_a?(vtable_gtype) struct = container.iface_struct end field = struct.find_field(info.name) @loader_class.implement_virtual_function(field, implementor_gtype, vtable_gtype, name.to_s) true end