;; -*- scheme -*-
; virtual function definitions
; define-vfunc is g*mm-specific
; These are hand-written.

; GAction

(define-vfunc get_name
  (of-object "GAction")
  (return-type "const-gchar*")
)

(define-vfunc get_parameter_type
  (of-object "GAction")
  (return-type "const-GVariantType*")
)

(define-vfunc get_state_type
  (of-object "GAction")
  (return-type "const-GVariantType*")
)

(define-vfunc get_state_hint
  (of-object "GAction")
  (return-type "GVariant*")
)

(define-vfunc get_enabled
  (of-object "GAction")
  (return-type "gboolean")
)

(define-vfunc get_state
  (of-object "GAction")
  (return-type "GVariant*")
)

(define-vfunc change_state
  (of-object "GAction")
  (return-type "void")
  (parameters
   '("GVariant*" "value")
  )
)

(define-vfunc activate
  (of-object "GAction")
  (return-type "void")
  (parameters
   '("GVariant*" "parameter")
  )
)

; GActionGroup

(define-vfunc has_action
  (of-object "GActionGroup")
  (return-type "gboolean")
  (parameters
   '("const-gchar*" "action_name")
  )
)

(define-vfunc list_actions
  (of-object "GActionGroup")
  (return-type "gchar**")
)

(define-vfunc get_action_enabled
  (of-object "GActionGroup")
  (return-type "gboolean")
  (parameters
   '("const-gchar*" "action_name")
  )
)

(define-vfunc get_action_parameter_type
  (of-object "GActionGroup")
  (return-type "const-GVariantType*")
  (parameters
   '("const-gchar*" "action_name")
  )
)

(define-vfunc get_action_state_type
  (of-object "GActionGroup")
  (return-type "const-GVariantType*")
  (parameters
   '("const-gchar*" "action_name")
  )
)

(define-vfunc get_action_state_hint
  (of-object "GActionGroup")
  (return-type "GVariant*")
  (parameters
   '("const-gchar*" "action_name")
  )
)

(define-vfunc get_action_state
  (of-object "GActionGroup")
  (return-type "GVariant*")
  (parameters
   '("const-gchar*" "action_name")
  )
)

(define-vfunc change_action_state
  (of-object "GActionGroup")
  (return-type "void")
  (parameters
   '("const-gchar*" "action_name")
   '("GVariant*" "value")
  )
)

(define-vfunc activate_action
  (of-object "GActionGroup")
  (return-type "void")
  (parameters
   '("const-gchar*" "action_name")
   '("GVariant*" "parameter")
  )
)

;GActionMap

(define-vfunc lookup_action
  (of-object "GActionMap")
  (return-type "GAction*")
  (parameters
   '("const-gchar*" "action_name")
  )
)

(define-vfunc add_action
  (of-object "GActionMap")
  (return-type "void")
  (parameters
   '("GAction*" "action")
  )
)

(define-vfunc remove_action
  (of-object "GActionMap")
  (return-type "void")
  (parameters
   '("const-gchar*" "action_name")
  )
)

; GAppInfo

(define-vfunc dup
 (of-object "GAppInfo")
 (return-type "GAppInfo*")
)

(define-vfunc equal
 (of-object "GAppInfo")
 (return-type "gboolean")
 (parameters
  '("GAppInfo*" "appinfo2")
 )
)

(define-vfunc get_id
  (of-object "GAppInfo")
  (return-type "const-char*")
)

(define-vfunc get_name
  (of-object "GAppInfo")
  (return-type "const-char*")
)

(define-vfunc get_description
  (of-object "GAppInfo")
  (return-type "const-char*")
)

(define-vfunc get_executable
  (of-object "GAppInfo")
  (return-type "const-char*")
)

(define-vfunc get_icon
  (of-object "GAppInfo")
  (return-type "GIcon*")
)

(define-vfunc launch
  (of-object "GAppInfo")
  (return-type "gboolean")
 (parameters
  '("GList*" "filenames")
  '("GAppLaunchContext*" "launch_context")
  '("GError**" "error")
 )
)

(define-vfunc supports_uris
  (of-object "GAppInfo")
  (return-type "gboolean")
)

(define-vfunc supports_files
  (of-object "GAppInfo")
  (return-type "gboolean")
)

(define-vfunc launch_uris
  (of-object "GAppInfo")
  (return-type "gboolean")
 (parameters
  '("GList*" "uris")
  '("GAppLaunchContext*" "launch_context")
  '("GError**" "error")
 )
)

(define-vfunc should_show
  (of-object "GAppInfo")
  (return-type "gboolean")
)

(define-vfunc set_as_default_for_type
  (of-object "GAppInfo")
  (return-type "gboolean")
  (parameters
  '("const-char*" "content_type")
  '("GError**" "error")
  )
)

(define-vfunc set_as_default_for_extension
  (of-object "GAppInfo")
  (return-type "gboolean")
  (parameters
   '("const-char*" "extension")
   '("GError**" "error")
  )
)

(define-vfunc add_supports_type
  (of-object "GAppInfo")
  (return-type "gboolean")
  (parameters
   '("const-char*" "content_type")
   '("GError**" "error")
  )
)

(define-vfunc can_remove_supports_type
  (of-object "GAppInfo")
  (return-type "gboolean")
)

(define-vfunc remove_supports_type
  (of-object "GAppInfo")
  (return-type "gboolean")
  (parameters
   '("const-char*" "content_type")
   '("GError**" "error")
  )
)

; GApplication

(define-vfunc local_command_line
  (of-object "GApplication")
  (return-type "gboolean")
  (parameters
   '("gchar***" "arguments")
   '("int*" "exit_status")
  )
)

(define-vfunc before_emit
  (of-object "GApplication")
  (return-type "void")
  (parameters
   '("GVariant*" "platform_data")
  )
)

(define-vfunc after_emit
  (of-object "GApplication")
  (return-type "void")
  (parameters
   '("GVariant*" "platform_data")
  )
)

(define-vfunc add_platform_data
  (of-object "GApplication")
  (return-type "void")
  (parameters
   '("GVariantBuilder*" "builder")
  )
)

(define-vfunc quit_mainloop
  (of-object "GApplication")
  (return-type "void")
)

(define-vfunc run_mainloop
  (of-object "GApplication")
  (return-type "void")
)

(define-vfunc shutdown
  (of-object "GApplication")
  (return-type "void")
)

; GAsyncInitable

(define-vfunc init_async
  (of-object "GAsyncInitable")
  (return-type "void")
  (parameters
   '("int" "io_priority")
   '("GCancellable*" "cancellable")
   '("GAsyncReadyCallback" "callback")
   '("gpointer" "user_data")
  )
)

(define-vfunc init_finish
  (of-object "GAsyncInitable")
  (return-type "gboolean")
  (parameters
   '("GAsyncResult*" "res")
   '("GError**" "error")
  )
)

; GAsyncResult

(define-vfunc get_source_object
  (of-object "GAsyncResult")
  (return-type "GObject*")
)

; GBufferedInputStream

(define-vfunc fill
 (of-object "GBufferedInputStream")
 (return-type "gssize")
 (parameters
  '("gssize" "count")
  '("GCancellable*" "cancellable")
  '("GError**" "error")
 )
)

(define-vfunc fill_async
 (of-object "GBufferedInputStream")
 (return-type "void")
 (parameters
  '("gssize" "count")
  '("int" "io_priority")
  '("GCancellable*" "cancellable")
  '("GAsyncReadyCallback" "callback")
  '("gpointer" "user_data")
 )
)

(define-vfunc fill_finish
 (of-object "GBufferedInputStream")
 (return-type "gssize")
 (parameters
  '("GAsyncResult*" "result")
  '("GError**" "error")
 )
)

; GConverter

(define-vfunc convert
  (of-object "GConverter")
  (return-type "GConverterResult")
  (parameters
   '("const-void*" "inbuf")
   '("gsize" "inbuf_size")
   '("void*" "outbuf")
   '("gsize" "outbuf_size")
   '("GConverterFlags" "flags")
   '("gsize*" "bytes_read")
   '("gsize*" "bytes_written")
   '("GError**" "error")
  )
)

(define-vfunc reset
  (of-object "GConverter")
  (return-type "void")
)

; GDBusInterface

(define-vfunc get_info
  (of-object "GDBusInterface")
  (return-type "GDBusInterfaceInfo*")
)

(define-vfunc get_object
  (of-object "GDBusInterface")
  (return-type "GDBusObject*")
)

(define-vfunc set_object
  (of-object "GDBusInterface")
  (return-type "void")
  (parameters
   '("GDBusObject*" "object")
  )
)

(define-vfunc dup_object
  (of-object "GDBusInterface")
  (return-type "GDBusObject*")
)

; GDBusObject

(define-vfunc get_object_path
  (of-object "GDBusObject")
  (return-type "const-gchar*")
)

(define-vfunc get_interfaces
  (of-object "GDBusObject")
  (return-type "GList*")
)

(define-vfunc get_interface
  (of-object "GDBusObject")
  (return-type "GDBusInterface*")
  (parameters
   '("const-gchar*" "interface_name")
  )
)

; GDrive

(define-vfunc get_name
  (of-object "GDrive")
  (return-type "char*")
)

(define-vfunc has_volumes
  (of-object "GDrive")
  (return-type "gboolean")
)

(define-vfunc is_automounted
  (of-object "GDrive")
  (return-type "gboolean")
)

(define-vfunc can_mount
  (of-object "GDrive")
  (return-type "gboolean")
)

(define-vfunc can_eject
  (of-object "GDrive")
  (return-type "gboolean")
)

; GFile

(define-vfunc dup
  (of-object "GFile")
  (return-type "GFile*")
)

(define-vfunc hash
  (of-object "GFile")
  (return-type "guint")
)

(define-vfunc get_basename
  (of-object "GFile")
  (return-type "char*")
)

(define-vfunc get_path
  (of-object "GFile")
  (return-type "char*")
)

(define-vfunc get_uri
  (of-object "GFile")
  (return-type "char*")
)

(define-vfunc get_parse_name
  (of-object "GFile")
  (return-type "char*")
)

(define-vfunc get_parent
  (of-object "GFile")
  (return-type "GFile*")
)

(define-vfunc get_child_for_display_name
  (of-object "GFile")
  (return-type "GFile*")
  (parameters
   '("const-char*" "display_name")
   '("GError**" "error")
  )
)

(define-vfunc has_prefix
  (of-object "GFile")
  (return-type "gboolean")
  (parameters
   '("GFile*" "prefix")
  )
)

(define-vfunc get_relative_path
  (of-object "GFile")
  (return-type "char*")
  (parameters
   '("GFile*" "descendant")
  )
)

(define-vfunc resolve_relative_path
  (of-object "GFile")
  (return-type "GFile*")
  (parameters
   '("const-char*" "relative_path")
  )
)

(define-vfunc is_native
  (of-object "GFile")
  (return-type "gboolean")
)

(define-vfunc has_uri_scheme
  (of-object "GFile")
  (return-type "gboolean")
  (parameters
   '("const-char*" "uri_scheme")
  )
)

; GIcon

(define-vfunc hash
  (of-object "GIcon")
  (return-type "guint")
)

; GInitable

(define-vfunc init
  (of-object "GInitable")
  (return-type "gboolean")
  (parameters
    '("GCancellable*" "cancellable")
    '("GError**" "error")
  )
)

; GLoadableIcon

(define-vfunc load
 (of-object "GLoadableIcon")
 (return-type "GInputStream*")
 (parameters
  '("int" "size")
  '("char**" "type")
  '("GCancellable*" "cancellable")
  '("GError**" "error")
 )
)

(define-vfunc load_async
 (of-object "GLoadableIcon")
 (return-type "void")
 (parameters
  '("int" "size")
  '("GCancellable*" "cancellable")
  '("GAsyncReadyCallback" "callback")
  '("gpointer" "user_data")
 )
)

(define-vfunc load_finish
 (of-object "GLoadableIcon")
 (return-type "GInputStream*")
 (parameters
  '("GAsyncResult*" "res")
  '("char**" "type")
  '("GError**" "error")
 )
)

; GPollableInputStream

(define-vfunc can_poll
  (of-object "GPollableInputStream")
  (return-type "gboolean")
)

(define-vfunc is_readable
  (of-object "GPollableInputStream")
  (return-type "gboolean")
)

(define-vfunc create_source
  (of-object "GPollableInputStream")
  (return-type "GSource*")
  (parameters
   '("GCancellable*" "cancellable")
  )
)

(define-vfunc read_nonblocking
  (of-object "GPollableInputStream")
  (return-type "gssize")
  (parameters
   '("void*" "buffer")
   '("gsize" "count")
   '("GError**" "error")
  )
)

; GPollableOutputStream

(define-vfunc can_poll
  (of-object "GPollableOutputStream")
  (return-type "gboolean")
)

(define-vfunc is_writable
  (of-object "GPollableOutputStream")
  (return-type "gboolean")
)

(define-vfunc create_source
  (of-object "GPollableOutputStream")
  (return-type "GSource*")
  (parameters
   '("GCancellable*" "cancellable")
  )
)

(define-vfunc write_nonblocking
  (of-object "GPollableOutputStream")
  (return-type "gssize")
  (parameters
   '("const-void*" "buffer")
   '("gsize" "count")
   '("GError**" "error")
  )
)

; GRemoteActionGroup

(define-vfunc activate_action_full
 (of-object "GRemoteActionGroup")
 (return-type "void")
 (parameters
  '("const-gchar*" "action_name")
  '("GVariant*" "parameter")
  '("GVariant*" "platform_data")
 )
)

(define-vfunc change_action_state_full
 (of-object "GRemoteActionGroup")
 (return-type "void")
 (parameters
  '("const-gchar*" "action_name")
  '("GVariant*" "value")
  '("GVariant*" "platform_data")
 )
)

; GSocketControlMessage

(define-vfunc deserialize
 (of-object "GSocketControlMessage")
 (return-type "GSocketControlMessage*")
 (parameters
  '("int" "level")
  '("int" "type")
  '("gsize" "size")
  '("gpointer" "data")
 )
)

(define-vfunc get_size
 (of-object "GSocketControlMessage")
 (return-type "gsize")
)

(define-vfunc get_level
 (of-object "GSocketControlMessage")
 (return-type "int")
)

(define-vfunc get_type
 (of-object "GSocketControlMessage")
 (return-type "int")
)

(define-vfunc serialize
 (of-object "GSocketControlMessage")
 (return-type "void")
 (parameters
  '("gpointer" "data")
 )
)

; GTlsCertificate

(define-vfunc verify
  (of-object "GTlsCertificate")
  (return-type "GTlsCertificateFlags")
  (parameters
   '("GSocketConnectable*" "identity")
   '("GTlsCertificate*" "trusted_ca")
  )
)

; GTlsConnection

(define-vfunc handshake
  (of-object "GTlsConnection")
  (return-type "gboolean")
  (parameters
   '("GCancellable*" "cancellable")
   '("GError**" "error")
  )
)

(define-vfunc handshake_async
  (of-object "GTlsConnection")
  (return-type "void")
  (parameters
   '("int" "io_priority")
   '("GCancellable*" "cancellable")
   '("GAsyncReadyCallback" "callback")
   '("gpointer" "user_data")
  )
)

(define-vfunc handshake_finish
  (of-object "GTlsConnection")
  (return-type "gboolean")
  (parameters
   '("GAsyncResult*" "result")
   '("GError**" "error")
  )
)

; GTlsDatabase

(define-vfunc verify_chain
  (of-object "GTlsDatabase")
  (return-type "GTlsCertificateFlags")
  (parameters
   '("GTlsCertificate*" "chain")
   '("const-gchar*" "purpose")
   '("GSocketConnectable*" "identity")
   '("GTlsInteraction*" "interaction")
   '("GTlsDatabaseVerifyFlags" "flags")
   '("GCancellable*" "cancellable")
   '("GError**" "error")
  )
)

(define-vfunc verify_chain_async
  (of-object "GTlsDatabase")
  (return-type "void")
  (parameters
   '("GTlsCertificate*" "chain")
   '("const-gchar*" "purpose")
   '("GSocketConnectable*" "identity")
   '("GTlsInteraction*" "interaction")
   '("GTlsDatabaseVerifyFlags" "flags")
   '("GCancellable*" "cancellable")
   '("GAsyncReadyCallback" "callback")
   '("gpointer" "user_data")
  )
)

(define-vfunc verify_chain_finish
  (of-object "GTlsDatabase")
  (return-type "GTlsCertificateFlags")
  (parameters
   '("GAsyncResult*" "result")
   '("GError**" "error")
  )
)

(define-vfunc create_certificate_handle
  (of-object "GTlsDatabase")
  (return-type "gchar*")
  (parameters
   '("GTlsCertificate*" "certificate")
  )
)

(define-vfunc lookup_certificate_for_handle
  (of-object "GTlsDatabase")
  (return-type "GTlsCertificate*")
  (parameters
   '("const-gchar*" "handle")
   '("GTlsInteraction*" "interaction")
   '("GTlsDatabaseLookupFlags" "flags")
   '("GCancellable*" "cancellable")
   '("GError**" "error")
  )
)

(define-vfunc lookup_certificate_for_handle_async
  (of-object "GTlsDatabase")
  (return-type "void")
  (parameters
   '("const-gchar*" "handle")
   '("GTlsInteraction*" "interaction")
   '("GTlsDatabaseLookupFlags" "flags")
   '("GCancellable*" "cancellable")
   '("GAsyncReadyCallback" "callback")
   '("gpointer" "user_data")
  )
)

(define-vfunc lookup_certificate_for_handle_finish
  (of-object "GTlsDatabase")
  (return-type "GTlsCertificate*")
  (parameters
   '("GAsyncResult*" "result")
   '("GError**" "error")
  )
)

(define-vfunc lookup_certificate_issuer
  (of-object "GTlsDatabase")
  (return-type "GTlsCertificate*")
  (parameters
   '("GTlsCertificate*" "certificate")
   '("GTlsInteraction*" "interaction")
   '("GTlsDatabaseLookupFlags" "flags")
   '("GCancellable*" "cancellable")
   '("GError**" "error")
  )
)

(define-vfunc lookup_certificate_issuer_async
  (of-object "GTlsDatabase")
  (return-type "void")
  (parameters
   '("GTlsCertificate*" "certificate")
   '("GTlsInteraction*" "interaction")
   '("GTlsDatabaseLookupFlags" "flags")
   '("GCancellable*" "cancellable")
   '("GAsyncReadyCallback" "callback")
   '("gpointer" "user_data")
  )
)

(define-vfunc lookup_certificate_issuer_finish
  (of-object "GTlsDatabase")
  (return-type "GTlsCertificate*")
  (parameters
   '("GAsyncResult*" "result")
   '("GError**" "error")
  )
)

(define-vfunc lookup_certificates_issued_by
  (of-object "GTlsDatabase")
  (return-type "GList*")
  (parameters
   '("GByteArray*" "issuer_raw_dn")
   '("GTlsInteraction*" "interaction")
   '("GTlsDatabaseLookupFlags" "flags")
   '("GCancellable*" "cancellable")
   '("GError**" "error")
  )
)

(define-vfunc lookup_certificates_issued_by_async
  (of-object "GTlsDatabase")
  (return-type "void")
  (parameters
   '("GByteArray*" "issuer_raw_dn")
   '("GTlsInteraction*" "interaction")
   '("GTlsDatabaseLookupFlags" "flags")
   '("GCancellable*" "cancellable")
   '("GAsyncReadyCallback" "callback")
   '("gpointer" "user_data")
  )
)

(define-vfunc lookup_certificates_issued_by_finish
  (of-object "GTlsDatabase")
  (return-type "GList*")
  (parameters
   '("GAsyncResult*" "result")
   '("GError**" "error")
  )
)

; GTlsInteraction

(define-vfunc ask_password
  (of-object "GTlsInteraction")
  (return-type "GTlsInteractionResult")
  (parameters
   '("GTlsPassword*" "password")
   '("GCancellable*" "cancellable")
   '("GError**" "error")
  )
)

(define-vfunc ask_password_async
  (of-object "GTlsInteraction")
  (return-type "void")
  (parameters
   '("GTlsPassword*" "password")
   '("GCancellable*" "cancellable")
   '("GAsyncReadyCallback" "callback")
   '("gpointer" "user_data")
  )
)

(define-vfunc ask_password_finish
  (of-object "GTlsInteraction")
  (return-type "GTlsInteractionResult")
  (parameters
   '("GAsyncResult*" "result")
   '("GError**" "error")
  )
)

; GTlsPassword

(define-vfunc get_value
  (of-object "GTlsPassword")
  (return-type "const-guchar*")
  (parameters
   '("gsize*" "length")
  )
)

(define-vfunc set_value
  (of-object "GTlsPassword")
  (return-type "void")
  (parameters
   '("guchar*" "value")
   '("gssize" "length")
   '("GDestroyNotify" "destroy")
  )
)

(define-vfunc get_default_warning
  (of-object "GTlsPassword")
  (return-type "const-gchar*")
)

; GVolume

(define-vfunc get_name
 (of-object "GVolume")
 (return-type "char*")
)

(define-vfunc get_icon
 (of-object "GVolume")
 (return-type "GIcon*")
)

(define-vfunc get_uuid
 (of-object "GVolume")
 (return-type "char*")
)

(define-vfunc get_drive
 (of-object "GVolume")
 (return-type "GDrive*")
)

(define-vfunc get_mount
 (of-object "GVolume")
 (return-type "GMount*")
)

(define-vfunc can_mount
 (of-object "GVolume")
 (return-type "gboolean")
)

(define-vfunc can_eject
 (of-object "GVolume")
 (return-type "gboolean")
)

(define-vfunc mount_fn
 (of-object "GVolume")
 (return-type "void")
 (parameters
  '("GMountMountFlags" "flags")
  '("GMountOperation*" "mount_operation")
  '("GCancellable*" "cancellable")
  '("GAsyncReadyCallback" "callback")
  '("gpointer" "user_data")
 )
)

(define-vfunc mount_finish
 (of-object "GVolume")
 (return-type "gboolean")
 (parameters
  '("GAsyncResult*" "result")
  '("GError**" "error")
 )
)


(define-vfunc eject
 (of-object "GVolume")
 (return-type "void")
 (parameters
  '("GMountUnmountFlags" "flags")
  '("GCancellable*" "cancellable")
  '("GAsyncReadyCallback" "callback")
  '("gpointer" "user_data")
 )
)

(define-vfunc eject_finish
 (of-object "GVolume")
 (return-type "gboolean")
 (parameters
  '("GAsyncResult*" "result")
  '("GError**" "error")
 )
)

(define-vfunc get_identifier
 (of-object "GVolume")
 (return-type "char*")
 (parameters
  '("const-char*" "kind")
 )
)

(define-vfunc enumerate_identifiers
 (of-object "GVolume")
 (return-type "char**")
)

(define-vfunc should_automount
 (of-object "GVolume")
 (return-type "gboolean")
)


; GVolumeMonitor

; This doesn't even take a GVolumeMonitor.
; Maybe it is not a real vfunc. murrayc.
(define-vfunc is_supported
 (of-object "GVolumeMonitor")
 (return-type "gboolean")
)

(define-vfunc get_connected_drives
 (of-object "GVolumeMonitor")
 (return-type "GList*")
)

(define-vfunc get_connected_drives
 (of-object "GVolumeMonitor")
 (return-type "GList*")
)

(define-vfunc get_volumes
 (of-object "GVolumeMonitor")
 (return-type "GList*")
)

(define-vfunc get_mounts
 (of-object "GVolumeMonitor")
 (return-type "GList*")
)

(define-vfunc get_volume_for_uuid
 (of-object "GVolumeMonitor")
 (return-type "GVolume*")
 (parameters
  '("const-char*" "uuid")
 )
)

(define-vfunc get_mount_for_uuid
 (of-object "GVolumeMonitor")
 (return-type "GMount*")
 (parameters
  '("const-char*" "uuid")
 )
)

; This doesn't take a GVolumeMonitor.
; Maybe it is not a real vfunc. murrayc
(define-vfunc adopt_orphan_mount
 (of-object "GVolumeMonitor")
 (return-type "GVolume*")
 (parameters
  '("GMount*" "mount")
 )
)

; GPermission

(define-vfunc acquire
 (of-object "GPermission")
 (return-type "gboolean")
 (parameters
  '("GCancellable*" "cancellable")
  '("GError**" "error")
 )
)

(define-vfunc acquire_async
 (of-object "GPermission")
 (return-type "void")
 (parameters
  '("GCancellable*" "cancellable")
  '("GAsyncReadyCallback" "callback")
  '("gpointer" "user_data")
 )
)

(define-vfunc acquire_finish
 (of-object "GPermission")
 (return-type "gboolean")
 (parameters
  '("GAsyncResult*" "result")
  '("GError**" "error")
 )
)

(define-vfunc release
 (of-object "GPermission")
 (return-type "gboolean")
 (parameters
  '("GCancellable*" "cancellable")
  '("GError**" "error")
 )
)

(define-vfunc release_async
 (of-object "GPermission")
 (return-type "void")
 (parameters
  '("GCancellable*" "cancellable")
  '("GAsyncReadyCallback" "callback")
  '("gpointer" "user_data")
 )
)

(define-vfunc release_finish
 (of-object "GPermission")
 (return-type "gboolean")
 (parameters
  '("GAsyncResult*" "result")
  '("GError**" "error")
 )
)

; GListModel
(define-vfunc get_item_type
  (of-object "GListModel")
  (return-type "GType")
)

(define-vfunc get_n_items
  (of-object "GListModel")
  (return-type "guint")
)

(define-vfunc get_item
  (of-object "GListModel")
  (return-type "gpointer")
  (parameters
   '("guint" "position")
  )
)
