class GObject::Closure
Overrides for GClosure, GObject’s base class for closure objects.
To create Closure
objects wrapping Ruby code, use {RubyClosure}.
Public Instance Methods
invoke(return_value, param_values)
click to toggle source
@override
This override of invoke ensures the return value location can be passed in as the first argument, which is needed to ensure the GValue is initialized with the proper type.
@param [GObject::Value] return_value The GValue to store the return
value, or nil if no return value is expected.
@param [Array] param_values the closure parameters.
# File lib/ffi-gobject/closure.rb, line 31 def invoke(return_value, param_values) rval = Value.from(return_value) n_params = param_values.length params = GirFFI::SizedArray.from(Value, -1, param_values) Lib.g_closure_invoke self, rval, n_params, params, nil rval.get_value end
set_marshal(marshal)
click to toggle source
@override
@param [Proc] marshal The marshaller to use for this closure object
# File lib/ffi-gobject/closure.rb, line 17 def set_marshal(marshal) callback = ClosureMarshal.from marshal Lib.g_closure_set_marshal self, callback end
store_pointer(ptr)
click to toggle source
Calls superclass method
# File lib/ffi-gobject/closure.rb, line 39 def store_pointer(ptr) # NOTE: Call C functions directly to avoid extra argument conversion Lib.g_closure_ref ptr Lib.g_closure_sink ptr super end