class AutoC::Composite::Method
Type-bound C side function
Attributes
type[R]
Public Class Methods
new(type, result, name, parameters, **kws)
click to toggle source
Calls superclass method
# File lib/autoc/composite.rb, line 278 def initialize(type, result, name, parameters, **kws) @type = type super(result.to_value, self.type.identifier(name), parameters, **kws) dependencies << self.type << self.result.to_type # TODO register parameters' types as dependencies end
Public Instance Methods
method_missing(meth, *args)
click to toggle source
# File lib/autoc/composite.rb, line 285 def method_missing(meth, *args) if parameters.has_key?(meth) then parameters[meth] elsif type.respond_to?(meth) then type.send(meth, *args) else meth end end
Private Instance Methods
render_declaration_specifier(stream)
click to toggle source
# File lib/autoc/composite.rb, line 307 def render_declaration_specifier(stream) stream << (inline? ? 'AUTOC_INLINE ' : 'AUTOC_EXTERN ') end
render_function_header(stream)
click to toggle source
# File lib/autoc/composite.rb, line 294 def render_function_header(stream) if public? stream << %{ /** #{type.ingroup} #{@header} */ } else stream << Composite::PRIVATE end end
render_implementation(stream)
click to toggle source
# File lib/autoc/composite.rb, line 311 def render_implementation(stream) render_function_definition(stream) if live? && !inline? end