mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-09-06 07:58:44 +02:00
[gifunctioninfo] Move out to another file
Move out GIFunctionInfo to gifunctioninfo.[ch]
This commit is contained in:
@@ -27,7 +27,9 @@
|
||||
#include <glib-object.h>
|
||||
#include <gmodule.h>
|
||||
#include <girepository/gibaseinfo.h>
|
||||
#include <girepository/gifunctioninfo.h>
|
||||
#include <girepository/gitypelib.h>
|
||||
#include <girepository/gitypes.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
@@ -143,93 +145,6 @@ void gi_cclosure_marshal_generic (GClosure *closure,
|
||||
gpointer invocation_hint,
|
||||
gpointer marshal_data);
|
||||
|
||||
/* GIFunctionInfo */
|
||||
|
||||
#define GI_IS_FUNCTION_INFO(info) \
|
||||
(g_base_info_get_type((GIBaseInfo*)info) == GI_INFO_TYPE_FUNCTION)
|
||||
|
||||
/**
|
||||
* GIFunctionInfoFlags:
|
||||
* @GI_FUNCTION_IS_METHOD: is a method.
|
||||
* @GI_FUNCTION_IS_CONSTRUCTOR: is a constructor.
|
||||
* @GI_FUNCTION_IS_GETTER: is a getter of a #GIPropertyInfo.
|
||||
* @GI_FUNCTION_IS_SETTER: is a setter of a #GIPropertyInfo.
|
||||
* @GI_FUNCTION_WRAPS_VFUNC: represents a virtual function.
|
||||
* @GI_FUNCTION_THROWS: the function may throw an error.
|
||||
*
|
||||
* Flags for a #GIFunctionInfo struct.
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
GI_FUNCTION_IS_METHOD = 1 << 0,
|
||||
GI_FUNCTION_IS_CONSTRUCTOR = 1 << 1,
|
||||
GI_FUNCTION_IS_GETTER = 1 << 2,
|
||||
GI_FUNCTION_IS_SETTER = 1 << 3,
|
||||
GI_FUNCTION_WRAPS_VFUNC = 1 << 4,
|
||||
GI_FUNCTION_THROWS = 1 << 5
|
||||
} GIFunctionInfoFlags;
|
||||
|
||||
const gchar * g_function_info_get_symbol (GIFunctionInfo *info);
|
||||
GIFunctionInfoFlags g_function_info_get_flags (GIFunctionInfo *info);
|
||||
GIPropertyInfo * g_function_info_get_property (GIFunctionInfo *info);
|
||||
GIVFuncInfo * g_function_info_get_vfunc (GIFunctionInfo *info);
|
||||
|
||||
typedef union
|
||||
{
|
||||
gboolean v_boolean;
|
||||
gint8 v_int8;
|
||||
guint8 v_uint8;
|
||||
gint16 v_int16;
|
||||
guint16 v_uint16;
|
||||
gint32 v_int32;
|
||||
guint32 v_uint32;
|
||||
gint64 v_int64;
|
||||
guint64 v_uint64;
|
||||
gfloat v_float;
|
||||
gdouble v_double;
|
||||
gshort v_short;
|
||||
gushort v_ushort;
|
||||
gint v_int;
|
||||
guint v_uint;
|
||||
glong v_long;
|
||||
gulong v_ulong;
|
||||
gssize v_ssize;
|
||||
gsize v_size;
|
||||
gchar * v_string;
|
||||
gpointer v_pointer;
|
||||
} GArgument;
|
||||
|
||||
#define G_INVOKE_ERROR (g_invoke_error_quark ())
|
||||
GQuark g_invoke_error_quark (void);
|
||||
|
||||
/**
|
||||
* GInvokeError:
|
||||
* @G_INVOKE_ERROR_FAILED: invokation failed, unknown error.
|
||||
* @G_INVOKE_ERROR_SYMBOL_NOT_FOUND: symbol couldn't be found in any of the
|
||||
* libraries associated with the typelib of the function.
|
||||
* @G_INVOKE_ERROR_ARGUMENT_MISMATCH: the arguments provided didn't match
|
||||
* the expected arguments for the functions type signature.
|
||||
*
|
||||
* An error occuring while invoking a function via
|
||||
* g_function_info_invoke().
|
||||
*/
|
||||
|
||||
typedef enum
|
||||
{
|
||||
G_INVOKE_ERROR_FAILED,
|
||||
G_INVOKE_ERROR_SYMBOL_NOT_FOUND,
|
||||
G_INVOKE_ERROR_ARGUMENT_MISMATCH
|
||||
} GInvokeError;
|
||||
|
||||
gboolean g_function_info_invoke (GIFunctionInfo *info,
|
||||
const GArgument *in_args,
|
||||
int n_in_args,
|
||||
const GArgument *out_args,
|
||||
int n_out_args,
|
||||
GArgument *return_value,
|
||||
GError **error);
|
||||
|
||||
|
||||
/* GICallableInfo */
|
||||
|
||||
#define GI_IS_CALLABLE_INFO(info) \
|
||||
|
Reference in New Issue
Block a user