File: ffi-glib.rb

package info (click to toggle)
ruby-gir-ffi 0.16.1-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 924 kB
  • sloc: ruby: 6,849; makefile: 4
file content (64 lines) | stat: -rw-r--r-- 2,386 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# frozen_string_literal: true

# Ensure GLib is defined by GirFFI itself
raise "The module GLib was already defined elsewhere" if Kernel.const_defined? :GLib

require "gir_ffi/core"

# Set up the GLib module, bypassing the check for existing modules. This also
# creates GLib::Lib.
GirFFI::Builders::ModuleBuilder.new("GLib").generate

require "ffi-glib/array"
require "ffi-glib/byte_array"
require "ffi-glib/bytes"
require "ffi-glib/destroy_notify"
require "ffi-glib/error"
require "ffi-glib/hash_table"
require "ffi-glib/list"
require "ffi-glib/main_loop"
require "ffi-glib/ptr_array"
require "ffi-glib/s_list"
require "ffi-glib/strv"
require "ffi-glib/variant"

# Module representing GLib's GLib namespace.
module GLib
  load_class :HFunc
  load_class :HashFunc
  load_class :EqualFunc
  load_class :Func

  # Module for attaching functions from the glib library. This module is
  # defined by the call to ModuleBuilder#generate above.
  module Lib
    attach_function :g_slist_append, [:pointer, :pointer], :pointer
    attach_function :g_slist_prepend, [:pointer, :pointer], :pointer
    attach_function :g_slist_reverse, [:pointer], :pointer

    attach_function :g_list_append, [:pointer, :pointer], :pointer
    attach_function :g_list_prepend, [:pointer, :pointer], :pointer
    attach_function :g_list_reverse, [:pointer], :pointer

    attach_function :g_hash_table_foreach, [:pointer, HFunc, :pointer], :void
    attach_function :g_hash_table_new, [HashFunc, EqualFunc], :pointer
    attach_function :g_hash_table_insert, [:pointer, :pointer, :pointer], :void

    attach_function :g_byte_array_new, [], :pointer
    attach_function :g_byte_array_append, [:pointer, :pointer, :uint], :pointer

    attach_function :g_bytes_get_data, [:pointer, :pointer], :pointer
    attach_function :g_bytes_new, [:pointer, :size_t], :pointer

    attach_function :g_array_new, [:int, :int, :uint], :pointer
    attach_function :g_array_append_vals, [:pointer, :pointer, :uint], :pointer
    attach_function :g_array_get_element_size, [:pointer], :uint

    attach_function :g_ptr_array_new, [], :pointer
    attach_function :g_ptr_array_add, [:pointer, :pointer], :void
    attach_function :g_ptr_array_foreach, [:pointer, Func, :pointer], :pointer

    attach_function :g_iconv_open, [:pointer, :pointer], :pointer
    attach_function :g_variant_ref_sink, [:pointer], :pointer
  end
end