1 #ifndef __GITESTTYPES_H__
2 #define __GITESTTYPES_H__
4 #ifndef _GI_DISABLE_CAIRO
5 #include <cairo-gobject.h>
7 #include <glib-object.h>
13 #include "gitestmacros.h"
16 void regress_set_abort_on_error (gboolean abort_on_error);
20 gboolean regress_test_boolean (gboolean in);
23 gboolean regress_test_boolean_true (gboolean in);
26 gboolean regress_test_boolean_false (gboolean in);
29 gint8 regress_test_int8 (gint8 in);
32 guint8 regress_test_uint8 (guint8 in);
35 gint16 regress_test_int16 (gint16 in);
38 guint16 regress_test_uint16 (guint16 in);
41 gint32 regress_test_int32 (gint32 in);
44 guint32 regress_test_uint32 (guint32 in);
47 gint64 regress_test_int64 (gint64 in);
50 guint64 regress_test_uint64 (guint64 in);
53 gshort regress_test_short (gshort in);
56 gushort regress_test_ushort (gushort in);
59 gint regress_test_int (gint in);
62 guint regress_test_uint (guint in);
65 glong regress_test_long (glong in);
68 gulong regress_test_ulong (gulong in);
71 gssize regress_test_ssize (gssize in);
74 gsize regress_test_size (gsize in);
77 gfloat regress_test_float (gfloat in);
80 gdouble regress_test_double (gdouble in);
83 gunichar regress_test_unichar (gunichar in);
86 time_t regress_test_timet (time_t in);
89 GType regress_test_gtype (GType in);
93 const char *regress_test_utf8_const_return (void);
96 char *regress_test_utf8_nonconst_return (void);
99 void regress_test_utf8_const_in (const char *in);
102 void regress_test_utf8_out (char **out);
105 void regress_test_utf8_inout (char **inout);
108 GSList *regress_test_filename_return (void);
111 void regress_test_utf8_null_in (char *in);
114 void regress_test_utf8_null_out (char **char_out);
116 /* in arguments after out arguments */
118 void regress_test_int_out_utf8 (int *length, const char *in);
120 /* multiple output arguments */
123 void regress_test_multi_double_args (gdouble in, gdouble *one, gdouble *two);
126 void regress_test_utf8_out_out (char **out0, char **out1);
129 char *regress_test_utf8_out_nonconst_return (char **out);
131 /* non-basic-types */
134 gboolean regress_test_strv_in (char **arr);
137 int regress_test_array_int_in (int n_ints, int *ints);
140 void regress_test_array_int_out (int *n_ints, int **ints);
143 void regress_test_array_int_inout (int *n_ints, int **ints);
146 int regress_test_array_gint8_in (int n_ints, gint8 *ints);
149 int regress_test_array_gint16_in (int n_ints, gint16 *ints);
152 gint32 regress_test_array_gint32_in (int n_ints, gint32 *ints);
155 gint64 regress_test_array_gint64_in (int n_ints, gint64 *ints);
158 char *regress_test_array_gtype_in (int n_types, GType *types);
161 char **regress_test_strv_out_container (void);
164 char **regress_test_strv_out (void);
167 const char * const * regress_test_strv_out_c (void);
170 void regress_test_strv_outarg (char ***retp);
173 int regress_test_array_fixed_size_int_in (int *ints);
176 void regress_test_array_fixed_size_int_out (int **ints);
179 int *regress_test_array_fixed_size_int_return (void);
183 int *regress_test_array_int_full_out(int *len);
186 int *regress_test_array_int_none_out(int *len);
189 void regress_test_array_int_null_in (int *arr, int len);
192 void regress_test_array_int_null_out (int **arr, int *len);
197 const GList *regress_test_glist_nothing_return (void);
200 GList *regress_test_glist_nothing_return2 (void);
203 GList *regress_test_glist_container_return (void);
206 GList *regress_test_glist_everything_return (void);
209 void regress_test_glist_nothing_in (const GList *in);
212 void regress_test_glist_nothing_in2 (GList *in);
215 void regress_test_glist_null_in(GSList *in);
218 void regress_test_glist_null_out(GSList **out_list);
222 const GSList *regress_test_gslist_nothing_return (void);
225 GSList *regress_test_gslist_nothing_return2 (void);
228 GSList *regress_test_gslist_container_return (void);
231 GSList *regress_test_gslist_everything_return (void);
234 void regress_test_gslist_nothing_in (const GSList *in);
237 void regress_test_gslist_nothing_in2 (GSList *in);
240 void regress_test_gslist_null_in(GSList *in);
243 void regress_test_gslist_null_out(GSList **out_list);
247 const GHashTable *regress_test_ghash_null_return (void);
250 const GHashTable *regress_test_ghash_nothing_return (void);
253 GHashTable *regress_test_ghash_nothing_return2 (void);
256 GHashTable *regress_test_ghash_gvalue_return (void);
259 void regress_test_ghash_gvalue_in (GHashTable *hash);
262 GHashTable *regress_test_ghash_container_return (void);
265 GHashTable *regress_test_ghash_everything_return (void);
268 void regress_test_ghash_null_in (const GHashTable *in);
271 void regress_test_ghash_null_out (const GHashTable **out);
274 void regress_test_ghash_nothing_in (const GHashTable *in);
277 void regress_test_ghash_nothing_in2 (GHashTable *in);
280 GHashTable *regress_test_ghash_nested_everything_return (void);
283 GHashTable *regress_test_ghash_nested_everything_return2 (void);
287 GPtrArray *regress_test_garray_container_return (void);
290 GPtrArray *regress_test_garray_full_return (void);
296 int regress_test_closure (GClosure *closure);
299 int regress_test_closure_one_arg (GClosure *closure, int arg);
302 GVariant *regress_test_closure_variant (GClosure *closure, GVariant* arg);
306 int regress_test_int_value_arg(const GValue *v);
309 const GValue *regress_test_value_return(int i);
311 /* foreign structs */
312 #ifndef _GI_DISABLE_CAIRO
314 cairo_t *regress_test_cairo_context_full_return (void);
317 void regress_test_cairo_context_none_in (cairo_t *context);
321 cairo_surface_t *regress_test_cairo_surface_none_return (void);
324 cairo_surface_t *regress_test_cairo_surface_full_return (void);
327 void regress_test_cairo_surface_none_in (cairo_surface_t *surface);
330 void regress_test_cairo_surface_full_out (cairo_surface_t **surface);
333 /* versioning (deprecated, since, stability) */
335 void regress_test_versioning (void);
339 GVariant *regress_test_gvariant_i (void);
342 GVariant *regress_test_gvariant_s (void);
345 GVariant *regress_test_gvariant_asv (void);
348 GVariant *regress_test_gvariant_v (void);
351 GVariant *regress_test_gvariant_as (void);
355 #define NUM_REGRESS_FOO
359 * @REGRESS_TEST_VALUE1: value 1
360 * @REGRESS_TEST_VALUE2: value 2
362 * By purpose, not all members have documentation
368 REGRESS_TEST_VALUE3 = -1,
369 REGRESS_TEST_VALUE4 = '0'
374 REGRESS_TEST_UNSIGNED_VALUE1 = 1,
375 REGRESS_TEST_UNSIGNED_VALUE2 = 0x80000000
376 } RegressTestEnumUnsigned;
380 REGRESS_TEST_FLAG1 = 1 << 0,
381 REGRESS_TEST_FLAG2 = 1 << 1,
382 REGRESS_TEST_FLAG3 = 1 << 2,
386 GType regress_test_enum_get_type (void) G_GNUC_CONST;
387 #define REGRESS_TEST_TYPE_ENUM (regress_test_enum_get_type ())
390 GType regress_test_enum_unsigned_get_type (void) G_GNUC_CONST;
391 #define REGRESS_TEST_TYPE_ENUM_UNSIGNED (regress_test_enum_unsigned_get_type ())
394 GType regress_test_flags_get_type (void) G_GNUC_CONST;
395 #define REGRESS_TEST_TYPE_FLAGS (regress_test_flags_get_type ())
399 REGRESS_TEST_REFERENCE_0 = 2 + 2,
400 REGRESS_TEST_REFERENCE_1 = 1 + 1,
401 REGRESS_TEST_REFERENCE_2 = 6 * 9,
402 REGRESS_TEST_REFERENCE_3 = REGRESS_TEST_REFERENCE_1 + REGRESS_TEST_REFERENCE_1,
403 REGRESS_TEST_REFERENCE_4 = REGRESS_TEST_REFERENCE_2 * REGRESS_TEST_REFERENCE_3,
404 REGRESS_TEST_REFERENCE_5 = ~REGRESS_TEST_REFERENCE_4,
405 } RegressTestReferenceEnum;
407 /* this is not registered with GType */
410 REGRESS_TEST_EVALUE1,
411 REGRESS_TEST_EVALUE2 = 42,
412 REGRESS_TEST_EVALUE3 = '0'
413 } RegressTestEnumNoGEnum;
416 const gchar * regress_test_enum_param(RegressTestEnum e);
419 const gchar * regress_test_unsigned_enum_param(RegressTestEnumUnsigned e);
423 void regress_global_get_flags_out (RegressTestFlags *v);
429 REGRESS_TEST_ERROR_CODE1 = 1,
430 REGRESS_TEST_ERROR_CODE2 = 2,
431 REGRESS_TEST_ERROR_CODE3 = 3
435 GType regress_test_error_get_type (void);
438 GQuark regress_test_error_quark (void);
440 /* Test weird names, with and without
441 c_symbol_prefix given by a GType
445 REGRESS_TEST_ABC_ERROR_CODE1 = 1,
446 REGRESS_TEST_ABC_ERROR_CODE2 = 2,
447 REGRESS_TEST_ABC_ERROR_CODE3 = 3
448 } RegressTestABCError;
451 GType regress_test_abc_error_get_type (void);
454 GQuark regress_test_abc_error_quark (void);
458 REGRESS_TEST_OTHER_ERROR_CODE1 = 1,
459 REGRESS_TEST_OTHER_ERROR_CODE2 = 2,
460 REGRESS_TEST_OTHER_ERROR_CODE3 = 3
461 } RegressTestOtherError;
463 /* This returns a GType for RegressTestOtherError.
464 The difference is intentional, although it
465 is mainly meant for capitalization problems.
468 GType regress_test_unconventional_error_get_type (void);
471 GQuark regress_test_unconventional_error_quark (void);
475 REGRESS_TEST_DEF_ERROR_CODE0 = 0,
476 REGRESS_TEST_DEF_ERROR_CODE1 = 1,
477 REGRESS_TEST_DEF_ERROR_CODE2 = 2
478 } RegressTestDEFError;
481 GQuark regress_test_def_error_quark (void);
483 /* the scanner used to have problem
484 with two uppercase letter right after
485 the identifier prefix, that's why
486 we break the RegressTest convention */
489 REGRESS_ATEST_ERROR_CODE0 = 0,
490 REGRESS_ATEST_ERROR_CODE1 = 1,
491 REGRESS_ATEST_ERROR_CODE2 = 2
495 GQuark regress_atest_error_quark (void);
500 #define REGRESS_NEGATIVE_INT_CONSTANT -42
501 #define REGRESS_INT_CONSTANT 4422
502 #define REGRESS_DOUBLE_CONSTANT 44.22
503 #define REGRESS_STRING_CONSTANT "Some String"
504 #define REGRESS_Mixed_Case_Constant 4423
505 #define REGRESS_BOOL_CONSTANT TRUE
506 #define REGRESS_G_GINT64_CONSTANT (G_GINT64_CONSTANT (1000))
507 #define REGRESS_GUINT64_CONSTANT ((guint64) -1)
509 typedef guint64 RegressTestTypeGUInt64;
510 #define REGRESS_GUINT64_CONSTANTA ((RegressTestTypeGUInt64) -1)
513 typedef struct _RegressTestStructA RegressTestStructA;
514 typedef struct _RegressTestStructB RegressTestStructB;
515 typedef struct _RegressTestStructC RegressTestStructC;
516 typedef struct _RegressTestStructD RegressTestStructD;
517 typedef struct _RegressTestStructF RegressTestStructF;
519 struct _RegressTestStructA
524 RegressTestEnum some_enum;
528 void regress_test_struct_a_clone (RegressTestStructA *a,
529 RegressTestStructA *a_out);
532 void regress_test_struct_a_parse (RegressTestStructA *a_out, const gchar *string);
534 struct _RegressTestStructB
537 RegressTestStructA nested_a;
541 void regress_test_struct_b_clone (RegressTestStructB *b,
542 RegressTestStructB *b_out);
544 /* This one has a non-basic member */
545 struct _RegressTestStructC
551 /* This one has annotated fields */
553 * RegressTestStructD:
554 * @array1: (array zero-terminated=1):
555 * @array2: (array zero-terminated=1) (element-type RegressTestObj):
556 * @field: (type RegressTestObj):
557 * @list: (element-type RegressTestObj):
558 * @garray: (element-type RegressTestObj):
561 struct _RegressTestStructD
563 RegressTestStructA **array1;
570 /* This one has an array of anonymous unions, inspired by GValue */
571 struct RegressTestStructE
587 /* This one has members with const or volatile modifiers. */
588 struct _RegressTestStructF
590 volatile gint ref_count;
592 const gint *const data2;
593 const gint *const *const data3;
594 const gint **const* data4;
595 volatile gint *const data5;
596 const gint *volatile data6;
599 /* plain-old-data boxed types */
600 typedef struct _RegressTestSimpleBoxedA RegressTestSimpleBoxedA;
601 typedef struct _RegressTestSimpleBoxedB RegressTestSimpleBoxedB;
603 struct _RegressTestSimpleBoxedA
608 RegressTestEnum some_enum;
611 /* Intentionally uses _get_gtype */
613 GType regress_test_simple_boxed_a_get_gtype (void);
616 RegressTestSimpleBoxedA *regress_test_simple_boxed_a_copy (RegressTestSimpleBoxedA *a);
619 gboolean regress_test_simple_boxed_a_equals (RegressTestSimpleBoxedA *a,
620 RegressTestSimpleBoxedA *other_a);
623 const RegressTestSimpleBoxedA *regress_test_simple_boxed_a_const_return (void);
626 struct _RegressTestSimpleBoxedB
629 RegressTestSimpleBoxedA nested_a;
634 GType regress_test_simple_boxed_b_get_type (void);
637 RegressTestSimpleBoxedB *regress_test_simple_boxed_b_copy (RegressTestSimpleBoxedB *b);
640 #define REGRESS_TEST_TYPE_BOXED (regress_test_boxed_get_type())
642 typedef struct _RegressTestBoxed RegressTestBoxed;
643 typedef struct _RegressTestBoxedPrivate RegressTestBoxedPrivate;
645 struct _RegressTestBoxed
648 RegressTestSimpleBoxedA nested_a;
650 RegressTestBoxedPrivate *priv;
654 GType regress_test_boxed_get_type (void);
657 RegressTestBoxed *regress_test_boxed_new (void);
660 RegressTestBoxed *regress_test_boxed_new_alternative_constructor1 (int i);
663 RegressTestBoxed *regress_test_boxed_new_alternative_constructor2 (int i, int j);
666 RegressTestBoxed *regress_test_boxed_new_alternative_constructor3 (char *s);
670 RegressTestBoxed *regress_test_boxed_copy (RegressTestBoxed *boxed);
673 gboolean regress_test_boxed_equals (RegressTestBoxed *boxed,
674 RegressTestBoxed *other);
678 void regress_test_boxeds_not_a_method (RegressTestBoxed *boxed);
681 void regress_test_boxeds_not_a_static (void);
683 typedef struct _RegressTestBoxedB RegressTestBoxedB;
685 struct _RegressTestBoxedB
693 GType regress_test_boxed_b_get_type (void);
696 RegressTestBoxedB *regress_test_boxed_b_new (gint8 some_int8, glong some_long);
699 RegressTestBoxedB *regress_test_boxed_b_copy (RegressTestBoxedB *boxed);
701 typedef struct _RegressTestBoxedC RegressTestBoxedC;
703 struct _RegressTestBoxedC
710 GType regress_test_boxed_c_get_type (void);
713 RegressTestBoxedC *regress_test_boxed_c_new (void);
715 typedef struct _RegressTestBoxedD RegressTestBoxedD;
719 GType regress_test_boxed_d_get_type (void);
723 RegressTestBoxedD *regress_test_boxed_d_new (const char *a_string, int a_int);
726 RegressTestBoxedD *regress_test_boxed_d_copy (RegressTestBoxedD *boxed);
729 void regress_test_boxed_d_free (RegressTestBoxedD *boxed);
733 int regress_test_boxed_d_get_magic (RegressTestBoxedD *boxed);
736 #define REGRESS_TEST_TYPE_OBJ (regress_test_obj_get_type ())
737 #define REGRESS_TEST_OBJECT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), REGRESS_TEST_TYPE_OBJ, RegressTestObj))
738 #define REGRESS_TEST_IS_OBJECT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), REGRESS_TEST_TYPE_OBJ))
739 #define REGRESS_TEST_OBJ_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), REGRESS_TEST_TYPE_OBJ, RegressTestObjClass))
741 typedef struct _RegressTestObj RegressTestObj;
742 typedef struct _RegressTestObjClass RegressTestObjClass;
746 * @bare: (allow-none):
748 struct _RegressTestObj
750 GObject parent_instance;
753 RegressTestBoxed *boxed;
754 GHashTable *hash_table;
763 void (*function_ptr) (void);
766 typedef void (*RegressTestExternallyDefinedCallback) (RegressTestObj *obj, int someint);
768 struct _RegressTestObjClass
770 GObjectClass parent_class;
772 int (*matrix) (RegressTestObj *obj, const char *somestr);
775 * RegressTestObjClass::allow_none_vfunc:
776 * @two: (allow-none): Another object
778 void (*allow_none_vfunc) (RegressTestObj *obj, RegressTestObj *two);
781 guint test_signal_with_static_scope_arg;
783 RegressTestExternallyDefinedCallback complex_vfunc;
785 /* Should be replaced with simple "gpointer" and not be callback */
786 void (*_regress_reserved1) (void);
787 void (*_regress_reserved2) (void);
791 GType regress_test_obj_get_type (void);
794 RegressTestObj* regress_test_obj_new (RegressTestObj *obj);
797 RegressTestObj* regress_constructor (void);
800 RegressTestObj* regress_test_obj_new_from_file (const char *x, GError **error);
803 void regress_test_obj_set_bare (RegressTestObj *obj, GObject *bare);
806 void regress_test_obj_emit_sig_with_obj (RegressTestObj *obj);
809 void regress_test_obj_emit_sig_with_foreign_struct (RegressTestObj *obj);
812 void regress_test_obj_emit_sig_with_int64 (RegressTestObj *obj);
815 void regress_test_obj_emit_sig_with_uint64 (RegressTestObj *obj);
818 int regress_test_obj_instance_method (RegressTestObj *obj);
821 void regress_test_obj_instance_method_full (RegressTestObj *obj);
824 double regress_test_obj_static_method (int x);
827 void regress_forced_method (RegressTestObj *obj);
831 void regress_test_array_fixed_out_objects (RegressTestObj ***objs);
835 void regress_test_obj_torture_signature_0 (RegressTestObj *obj,
844 gboolean regress_test_obj_torture_signature_1 (RegressTestObj *obj,
855 gboolean regress_test_obj_skip_return_val (RegressTestObj *obj,
867 gboolean regress_test_obj_skip_return_val_no_out (RegressTestObj *obj,
873 gboolean regress_test_obj_skip_param (RegressTestObj *obj,
885 gboolean regress_test_obj_skip_out_param (RegressTestObj *obj,
897 gboolean regress_test_obj_skip_inout_param (RegressTestObj *obj,
909 int regress_test_obj_do_matrix (RegressTestObj *obj, const char *somestr);
913 void regress_func_obj_null_in (RegressTestObj *obj);
916 void regress_test_obj_null_out (RegressTestObj **obj);
919 #define REGRESS_TEST_TYPE_SUB_OBJ (regress_test_sub_obj_get_type ())
920 #define REGRESS_TEST_SUB_OBJECT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), REGRESS_TEST_TYPE_SUB_OBJ, RegressTestSubObj))
921 #define REGRESS_TEST_IS_SUB_OBJECT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), REGRESS_TEST_TYPE_SUB_OBJ))
922 #define REGRESS_TEST_SUB_OBJ_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), REGRESS_TEST_TYPE_SUB_OBJ, RegressTestSubObjClass))
924 typedef struct _RegressTestSubObj RegressTestSubObj;
925 typedef struct _RegressTestSubObjClass RegressTestSubObjClass;
927 struct _RegressTestSubObj
929 RegressTestObj parent_instance;
932 struct _RegressTestSubObjClass
934 RegressTestObjClass parent_class;
939 GType regress_test_sub_obj_get_type (void);
942 RegressTestObj* regress_test_sub_obj_new (void);
945 void regress_test_sub_obj_unset_bare (RegressTestSubObj *obj);
948 int regress_test_sub_obj_instance_method (RegressTestSubObj *obj);
950 /* fundamental object */
951 #define REGRESS_TEST_TYPE_FUNDAMENTAL_OBJECT (regress_test_fundamental_object_get_type())
952 #define REGRESS_TEST_IS_FUNDAMENTAL_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), REGRESS_TEST_TYPE_FUNDAMENTAL_OBJECT))
953 #define REGRESS_TEST_IS_FUNDAMENTAL_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), REGRESS_TEST_TYPE_FUNDAMENTAL_OBJECT))
954 #define REGRESS_TEST_FUNDAMENTAL_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), REGRESS_TEST_TYPE_FUNDAMENTAL_OBJECT, RegressTestFundamentalObjectClass))
955 #define REGRESS_TEST_FUNDAMENTAL_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), REGRESS_TEST_TYPE_FUNDAMENTAL_OBJECT, RegressTestFundamentalObject))
956 #define REGRESS_TEST_FUNDAMENTAL_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), REGRESS_TEST_TYPE_FUNDAMENTAL_OBJECT, RegressTestFundamentalObjectClass))
957 #define REGRESS_TEST_FUNDAMENTAL_OBJECT_CAST(obj) ((RegressTestFundamentalObject*)(obj))
959 typedef struct _RegressTestFundamentalObject RegressTestFundamentalObject;
960 typedef struct _RegressTestFundamentalObjectClass RegressTestFundamentalObjectClass;
962 * RegressTestFundamentalObjectCopyFunction:
964 * Returns: (transfer full):
966 typedef RegressTestFundamentalObject * (*RegressTestFundamentalObjectCopyFunction) (const RegressTestFundamentalObject *obj);
967 typedef void (*RegressTestFundamentalObjectFinalizeFunction) (RegressTestFundamentalObject *obj);
970 struct _RegressTestFundamentalObject {
971 GTypeInstance instance;
976 struct _RegressTestFundamentalObjectClass {
977 GTypeClass type_class;
979 RegressTestFundamentalObjectCopyFunction copy;
980 RegressTestFundamentalObjectFinalizeFunction finalize;
984 GType regress_test_fundamental_object_get_type (void);
987 RegressTestFundamentalObject* regress_test_fundamental_object_ref (RegressTestFundamentalObject *fundamental_object);
990 void regress_test_fundamental_object_unref (RegressTestFundamentalObject *fundamental_object);
992 #define REGRESS_TEST_VALUE_HOLDS_FUNDAMENTAL_OBJECT(value) (G_VALUE_HOLDS(value, REGRESS_TEST_TYPE_FUNDAMENTAL_OBJECT))
995 void regress_test_value_set_fundamental_object (GValue *value, RegressTestFundamentalObject *fundamental_object);
998 RegressTestFundamentalObject* regress_test_value_get_fundamental_object (const GValue *value);
1000 typedef struct _RegressTestFundamentalSubObject RegressTestFundamentalSubObject;
1001 typedef struct _RegressTestFundamentalSubObjectClass RegressTestFundamentalSubObjectClass;
1003 struct _RegressTestFundamentalSubObject
1005 RegressTestFundamentalObject fundamental_object;
1009 struct _RegressTestFundamentalSubObjectClass {
1010 RegressTestFundamentalObjectClass fundamental_object_class;
1015 GType regress_test_fundamental_sub_object_get_type(void);
1019 RegressTestFundamentalSubObject *
1020 regress_test_fundamental_sub_object_new (const char *data);
1023 typedef void (*RegressTestSimpleCallback) (void);
1024 typedef int (*RegressTestCallback) (void);
1025 typedef int (*RegressTestCallbackUserData) (gpointer user_data);
1027 * RegressTestCallbackHashtable:
1028 * @data: (element-type utf8 gint): a hash table; will be modified
1030 typedef void (*RegressTestCallbackHashtable) (GHashTable *data);
1031 typedef void (*RegressTestCallbackGError) (const GError *error);
1033 * RegressTestCallbackOwnedGError:
1034 * @error: (transfer full): GError instance; must be freed by the callback
1036 typedef void (*RegressTestCallbackOwnedGError) (GError *error);
1038 * RegressTestCallbackFull:
1039 * @foo: the investment rate
1040 * @bar: how much money
1041 * @path: (type filename): Path to file
1043 typedef int (*RegressTestCallbackFull) (int foo, double bar, char *path);
1045 * RegressTestCallbackArray:
1046 * @one: (array length=one_length):
1048 * @two: (array length=two_length) (element-type utf8):
1051 typedef int (*RegressTestCallbackArray) (int *one, gsize one_length, const char** two, int two_length);
1053 * RegressTestCallbackArrayInOut:
1054 * @ints: (inout) (array length=length):
1057 typedef void (* RegressTestCallbackArrayInOut) (int **ints, int *length);
1060 void regress_test_simple_callback (RegressTestSimpleCallback callback);
1063 int regress_test_callback (RegressTestCallback callback);
1066 int regress_test_multi_callback (RegressTestCallback callback);
1069 int regress_test_array_callback (RegressTestCallbackArray callback);
1072 int regress_test_array_inout_callback (RegressTestCallbackArrayInOut callback);
1075 int regress_test_callback_user_data (RegressTestCallbackUserData callback,
1076 gpointer user_data);
1079 int regress_test_callback_destroy_notify (RegressTestCallbackUserData callback,
1081 GDestroyNotify notify);
1084 int regress_test_callback_destroy_notify_no_user_data (RegressTestCallbackUserData callback,
1085 GDestroyNotify notify);
1088 int regress_test_callback_thaw_notifications (void);
1092 void regress_test_callback_async (RegressTestCallbackUserData callback, gpointer user_data);
1095 int regress_test_callback_thaw_async (void);
1099 void regress_test_async_ready_callback (GAsyncReadyCallback callback);
1103 void regress_test_obj_instance_method_callback (RegressTestObj *obj, RegressTestCallback callback);
1106 void regress_test_obj_static_method_callback (RegressTestCallback callback);
1109 RegressTestObj *regress_test_obj_new_callback (RegressTestCallbackUserData callback,
1111 GDestroyNotify notify);
1114 void regress_test_hash_table_callback (GHashTable *data, RegressTestCallbackHashtable callback);
1117 void regress_test_gerror_callback (RegressTestCallbackGError callback);
1120 void regress_test_null_gerror_callback (RegressTestCallbackGError callback);
1123 void regress_test_owned_gerror_callback (RegressTestCallbackOwnedGError callback);
1127 void regress_test_skip_unannotated_callback (RegressTestCallback callback);
1129 typedef struct _RegressTestInterface RegressTestInterface;
1132 #define REGRESS_TEST_TYPE_INTERFACE (regress_test_interface_get_type ())
1133 #define REGRESS_TEST_INTERFACE(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), REGRESS_TEST_TYPE_INTERFACE, RegressTestInterface))
1134 #define REGRESS_TEST_IS_INTERFACE(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), REGRESS_TEST_TYPE_INTERFACE))
1135 #define REGRESS_TEST_INTERFACE_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), REGRESS_TEST_TYPE_INTERFACE, RegressTestInterfaceIface))
1137 typedef struct _RegressTestInterfaceIface RegressTestInterfaceIface;
1139 struct _RegressTestInterfaceIface {
1140 GTypeInterface base_iface;
1144 GType regress_test_interface_get_type (void) G_GNUC_CONST;
1146 /* gobject with non-standard prefix */
1147 #define REGRESS_TEST_TYPE_WI_802_1X (regress_test_wi_802_1x_get_type ())
1148 #define REGRESS_TEST_WI_802_1X(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), REGRESS_TEST_TYPE_WI_802_1X, RegressTestWi8021x))
1149 #define REGRESS_TEST_IS_WI_802_1X(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), REGRESS_TEST_TYPE_WI_802_1X))
1150 #define REGRESS_TEST_WI_802_1X_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), REGRESS_TEST_TYPE_WI_802_1X, RegressTestWi8021xClass))
1154 GObject parent_instance;
1157 } RegressTestWi8021x;
1161 GObjectClass parent_class;
1162 } RegressTestWi8021xClass;
1166 GType regress_test_wi_802_1x_get_type (void);
1169 RegressTestWi8021x* regress_test_wi_802_1x_new (void);
1172 gboolean regress_test_wi_802_1x_get_testbool (RegressTestWi8021x *obj);
1175 void regress_test_wi_802_1x_set_testbool (RegressTestWi8021x *obj, gboolean v);
1178 int regress_test_wi_802_1x_static_method (int x);
1180 /* floating gobject */
1181 #define REGRESS_TEST_TYPE_FLOATING (regress_test_floating_get_type ())
1182 #define REGRESS_TEST_FLOATING(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), REGRESS_TEST_TYPE_FLOATING, RegressTestFloating))
1183 #define REGRESS_TEST_IS_FLOATING(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), REGRESS_TEST_TYPE_FLOATING))
1184 #define REGRESS_TEST_FLOATING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), REGRESS_TEST_TYPE_FLOATING, RegressTestFloatingClass))
1188 GInitiallyUnowned parent_instance;
1189 } RegressTestFloating;
1193 GInitiallyUnownedClass parent_class;
1194 } RegressTestFloatingClass;
1198 GType regress_test_floating_get_type (void);
1201 RegressTestFloating* regress_test_floating_new (void);
1203 /* Function signature torture tests */
1206 void regress_test_torture_signature_0 (int x,
1214 gboolean regress_test_torture_signature_1 (int x,
1223 void regress_test_torture_signature_2 (int x,
1224 RegressTestCallbackUserData callback,
1226 GDestroyNotify notify,
1235 GValue *regress_test_date_in_gvalue (void);
1238 GValue *regress_test_strv_in_gvalue (void);
1242 GObject * _regress_this_is_a_private_symbol (void);
1246 void regress_test_multiline_doc_comments (void);
1249 void regress_test_nested_parameter (int a);
1252 * RegressSkippedStructure: (skip)
1254 * This should be skipped, and moreover, all function which
1261 } RegressSkippedStructure;
1265 void regress_random_function_with_skipped_structure (int x,
1266 RegressSkippedStructure *foo,
1272 * Like telepathy-glib's TpIntset.
1275 typedef struct _RegressIntset RegressIntset;
1278 * RegressIntsetAlias: (skip)
1280 * Compatibility typedef, like telepathy-glib's TpIntSet
1283 typedef RegressIntset RegressIntsetAlias;
1286 * RegressPtrArrayAlias:
1288 * Typedef'd GPtrArray for some reason
1290 typedef GPtrArray RegressPtrArrayAlias;
1294 void regress_introspectable_via_alias (RegressPtrArrayAlias *data);
1297 * RegressVaListAlias:
1299 * Typedef'd va_list for additional reasons
1301 typedef va_list RegressVaListAlias;
1305 void regress_not_introspectable_via_alias (RegressVaListAlias ok);
1308 * RegressAliasedTestBoxed:
1310 * Typedef TestBoxed to test caller-allocates correctness
1312 typedef RegressTestBoxed RegressAliasedTestBoxed;
1316 void regress_aliased_caller_alloc (RegressAliasedTestBoxed *boxed);
1318 /* private testing */
1321 gint this_is_public_before;
1323 gint this_is_private;
1325 gint this_is_public_after;
1326 } RegressTestPrivateStruct;
1329 REGRESS_TEST_PUBLIC_ENUM_BEFORE = 1 << 0,
1331 REGRESS_TEST_PRIVATE_ENUM = 1 << 1,
1333 REGRESS_TEST_PUBLIC_ENUM_AFTER = 1 << 2,
1334 } RegressTestPrivateEnum;
1339 } RegressTestStructFixedArray;
1343 void regress_test_struct_fixed_array_frob (RegressTestStructFixedArray *str);
1347 } RegressLikeXklConfigItem;
1351 void regress_like_xkl_config_item_set_name (RegressLikeXklConfigItem *self,
1354 #define REGRESS_UTF8_CONSTANT "const \xe2\x99\xa5 utf8"
1357 #define REGRESS_TEST_GNUC_EXTENSION_STMT(foo) (G_GNUC_EXTENSION ({ int x[10]; x[5] = 42; x[5]; }))
1360 /* https://bugzilla.gnome.org/show_bug.cgi?id=662888 */
1361 #define REGRESS_LONG_STRING_CONSTANT \
1362 "TYPE,VALUE,ENCODING,CHARSET,LANGUAGE,DOM,INTL,POSTAL,PARCEL," \
1363 "HOME,WORK,PREF,VOICE,FAX,MSG,CELL,PAGER,BBS,MODEM,CAR,ISDN,VIDEO," \
1364 "AOL,APPLELINK,ATTMAIL,CIS,EWORLD,INTERNET,IBMMAIL,MCIMAIL," \
1365 "POWERSHARE,PRODIGY,TLX,X400,GIF,CGM,WMF,BMP,MET,PMB,DIB,PICT,TIFF," \
1366 "PDF,PS,JPEG,QTIME,MPEG,MPEG2,AVI,WAVE,AIFF,PCM,X509,PGP"
1369 void regress_has_parameter_named_attrs (int foo,
1370 gpointer attributes);
1380 } RegressLikeGnomeKeyringPasswordSchema;
1382 /* Ensure we ignore symbols that start with _; in particular we don't
1383 * want to issue a namespace warning.
1385 #define _DONTSCANTHIS 1
1387 /* https://bugzilla.gnome.org/show_bug.cgi?id=685022 */
1388 #define REGRESS_MININT64 ((gint64) G_GINT64_CONSTANT(0x8000000000000000))
1389 #define REGRESS_MAXUINT64 (G_GINT64_CONSTANT(0xffffffffffffffffU))
1391 /* https://bugzilla.gnome.org/show_bug.cgi?id=698367 */
1392 #ifndef __GI_SCANNER__
1393 #define REGRESS_DONTSCANTHIS 1
1395 #define REGRESS_GI_SCANNER_ELSE 3
1398 #ifdef __GI_SCANNER__
1399 #define REGRESS_GI_SCANNER_IFDEF 3
1403 /* This struct is one pattern by which padding can be consumed, if
1404 * you're willing to take a hard dependency on anonymous unions. */
1409 RegressLikeGnomeKeyringPasswordSchema *a[2];
1413 } RegressAnAnonymousUnion;
1415 #endif /* __GITESTTYPES_H__ */