Sha256: 4e45d092086fd39e2108e2687183cc6e2548a0f93270ad8ec8ca160318406bf1
Contents?: true
Size: 1.24 KB
Versions: 3
Compression:
Stored size: 1.24 KB
Contents
require 'gir_ffi/builders/base_type_builder' require 'gir_ffi/builders/marshalling_method_builder' module GirFFI module Builders # Implements the creation of a closure class for handling a particular # signal. The type will be attached to the appropriate class. class SignalClosureBuilder < BaseTypeBuilder def setup_class setup_constants klass.class_eval marshaller_definition end def setup_method _method nil end def marshaller_definition arg_infos = info.args container_type_info = ReceiverTypeInfo.new(container_info) receiver_info = ReceiverArgumentInfo.new(container_type_info) return_value_info = ReturnValueInfo.new info.return_type MarshallingMethodBuilder.for_signal(receiver_info, arg_infos, return_value_info).method_definition end def klass @klass ||= get_or_define_class container_class, @classname, GObject::RubyClosure end def container_class @container_class ||= Builder.build_class(container_info) end def container_info @container_info ||= info.container end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
gir_ffi-0.7.8 | lib/gir_ffi/builders/signal_closure_builder.rb |
gir_ffi-0.7.7 | lib/gir_ffi/builders/signal_closure_builder.rb |
gir_ffi-0.7.6 | lib/gir_ffi/builders/signal_closure_builder.rb |