
;; Objects for namespace GModule

(define-object Module
  (in-module "GModule")
  (c-name "GModule")
  (gtype-id "G_TYPE_MODULE")
)


;; Functions for namespace GModule

(define-function g_module_build_path
  (c-name "g_module_build_path")
  (return-type "gchar*")
  (parameters
    '("const-gchar*" "directory")
    '("const-gchar*" "module_name")
  )
)

(define-function g_module_error
  (c-name "g_module_error")
  (return-type "const-gchar*")
)

(define-function g_module_error_quark
  (c-name "g_module_error_quark")
  (return-type "GQuark")
)

(define-function g_module_supported
  (c-name "g_module_supported")
  (return-type "gboolean")
)

(define-function g_module_build_path
  (c-name "g_module_build_path")
  (return-type "gchar*")
  (parameters
    '("const-gchar*" "directory")
    '("const-gchar*" "module_name")
  )
)

(define-function g_module_error
  (c-name "g_module_error")
  (return-type "const-gchar*")
)

(define-function g_module_error_quark
  (c-name "g_module_error_quark")
  (return-type "GQuark")
)

(define-function g_module_open
  (c-name "g_module_open")
  (return-type "GModule*")
  (parameters
    '("const-gchar*" "file_name")
    '("GModuleFlags" "flags")
  )
)

(define-function g_module_open_full
  (c-name "g_module_open_full")
  (return-type "GModule*")
  (parameters
    '("const-gchar*" "file_name")
    '("GModuleFlags" "flags")
    '("GError**" "error")
  )
)

(define-function g_module_supported
  (c-name "g_module_supported")
  (return-type "gboolean")
)

(define-method close
  (of-object "GModule")
  (c-name "g_module_close")
  (return-type "gboolean")
)

(define-method make_resident
  (of-object "GModule")
  (c-name "g_module_make_resident")
  (return-type "none")
)

(define-method name
  (of-object "GModule")
  (c-name "g_module_name")
  (return-type "const-gchar*")
)

(define-method symbol
  (of-object "GModule")
  (c-name "g_module_symbol")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "symbol_name")
    '("gpointer*" "symbol")
  )
)

