1 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*-
2 * vim: tabstop=4 shiftwidth=4 expandtab
5 #include <glib-object.h>
7 #ifndef __GI_MARSHALLING_TESTS_H__
8 #define __GI_MARSHALLING_TESTS_H__
10 typedef struct _GIMarshallingTestsSimpleStruct GIMarshallingTestsSimpleStruct;
11 typedef struct _GIMarshallingTestsBoxedStruct GIMarshallingTestsBoxedStruct;
15 #define GI_MARSHALLING_TESTS_CONSTANT_NUMBER 42
16 #define GI_MARSHALLING_TESTS_CONSTANT_UTF8 "const \xe2\x99\xa5 utf8"
21 gboolean gi_marshalling_tests_boolean_return_true (void);
22 gboolean gi_marshalling_tests_boolean_return_false (void);
24 void gi_marshalling_tests_boolean_in_true (gboolean bool_);
25 void gi_marshalling_tests_boolean_in_false (gboolean bool_);
27 void gi_marshalling_tests_boolean_out_true (gboolean *bool_);
28 void gi_marshalling_tests_boolean_out_false (gboolean *bool_);
30 void gi_marshalling_tests_boolean_inout_true_false (gboolean *bool_);
31 void gi_marshalling_tests_boolean_inout_false_true (gboolean *bool_);
36 gint8 gi_marshalling_tests_int8_return_max (void);
37 gint8 gi_marshalling_tests_int8_return_min (void);
39 void gi_marshalling_tests_int8_in_max (gint8 int8);
40 void gi_marshalling_tests_int8_in_min (gint8 int8);
42 void gi_marshalling_tests_int8_out_max (gint8 *int8);
43 void gi_marshalling_tests_int8_out_min (gint8 *int8);
45 void gi_marshalling_tests_int8_inout_max_min (gint8 *int8);
46 void gi_marshalling_tests_int8_inout_min_max (gint8 *int8);
49 guint8 gi_marshalling_tests_uint8_return (void);
51 void gi_marshalling_tests_uint8_in (guint8 uint8);
53 void gi_marshalling_tests_uint8_out (guint8 *uint8);
54 void gi_marshalling_tests_uint8_inout (guint8 *uint8);
57 gint16 gi_marshalling_tests_int16_return_max (void);
58 gint16 gi_marshalling_tests_int16_return_min (void);
60 void gi_marshalling_tests_int16_in_max (gint16 int16);
61 void gi_marshalling_tests_int16_in_min (gint16 int16);
63 void gi_marshalling_tests_int16_out_max (gint16 *int16);
64 void gi_marshalling_tests_int16_out_min (gint16 *int16);
66 void gi_marshalling_tests_int16_inout_max_min (gint16 *int16);
67 void gi_marshalling_tests_int16_inout_min_max (gint16 *int16);
70 guint16 gi_marshalling_tests_uint16_return (void);
72 void gi_marshalling_tests_uint16_in (guint16 uint16);
74 void gi_marshalling_tests_uint16_out (guint16 *uint16);
75 void gi_marshalling_tests_uint16_inout (guint16 *uint16);
78 gint32 gi_marshalling_tests_int32_return_max (void);
79 gint32 gi_marshalling_tests_int32_return_min (void);
81 void gi_marshalling_tests_int32_in_max (gint32 int32);
82 void gi_marshalling_tests_int32_in_min (gint32 int32);
84 void gi_marshalling_tests_int32_out_max (gint32 *int32);
85 void gi_marshalling_tests_int32_out_min (gint32 *int32);
87 void gi_marshalling_tests_int32_inout_max_min (gint32 *int32);
88 void gi_marshalling_tests_int32_inout_min_max (gint32 *int32);
91 guint32 gi_marshalling_tests_uint32_return (void);
93 void gi_marshalling_tests_uint32_in (guint32 uint32);
95 void gi_marshalling_tests_uint32_out (guint32 *uint32);
96 void gi_marshalling_tests_uint32_inout (guint32 *uint32);
99 gint64 gi_marshalling_tests_int64_return_max (void);
100 gint64 gi_marshalling_tests_int64_return_min (void);
102 void gi_marshalling_tests_int64_in_max (gint64 int64);
103 void gi_marshalling_tests_int64_in_min (gint64 int64);
105 void gi_marshalling_tests_int64_out_max (gint64 *int64);
106 void gi_marshalling_tests_int64_out_min (gint64 *int64);
108 void gi_marshalling_tests_int64_inout_max_min (gint64 *int64);
109 void gi_marshalling_tests_int64_inout_min_max (gint64 *int64);
112 guint64 gi_marshalling_tests_uint64_return (void);
114 void gi_marshalling_tests_uint64_in (guint64 uint64);
116 void gi_marshalling_tests_uint64_out (guint64 *uint64);
117 void gi_marshalling_tests_uint64_inout (guint64 *uint64);
120 gshort gi_marshalling_tests_short_return_max (void);
121 gshort gi_marshalling_tests_short_return_min (void);
123 void gi_marshalling_tests_short_in_max (gshort short_);
124 void gi_marshalling_tests_short_in_min (gshort short_);
126 void gi_marshalling_tests_short_out_max (gshort *short_);
127 void gi_marshalling_tests_short_out_min (gshort *short_);
129 void gi_marshalling_tests_short_inout_max_min (gshort *short_);
130 void gi_marshalling_tests_short_inout_min_max (gshort *short_);
133 gushort gi_marshalling_tests_ushort_return (void);
135 void gi_marshalling_tests_ushort_in (gushort ushort_);
137 void gi_marshalling_tests_ushort_out (gushort *ushort_);
138 void gi_marshalling_tests_ushort_inout (gushort *ushort_);
141 gint gi_marshalling_tests_int_return_max (void);
142 gint gi_marshalling_tests_int_return_min (void);
144 void gi_marshalling_tests_int_in_max (gint int_);
145 void gi_marshalling_tests_int_in_min (gint int_);
147 void gi_marshalling_tests_int_out_max (gint *int_);
148 void gi_marshalling_tests_int_out_min (gint *int_);
150 void gi_marshalling_tests_int_inout_max_min (gint *int_);
151 void gi_marshalling_tests_int_inout_min_max (gint *int_);
154 guint gi_marshalling_tests_uint_return (void);
156 void gi_marshalling_tests_uint_in (guint uint_);
158 void gi_marshalling_tests_uint_out (guint *uint_);
159 void gi_marshalling_tests_uint_inout (guint *uint_);
162 glong gi_marshalling_tests_long_return_max (void);
163 glong gi_marshalling_tests_long_return_min (void);
165 void gi_marshalling_tests_long_in_max (glong long_);
166 void gi_marshalling_tests_long_in_min (glong long_);
168 void gi_marshalling_tests_long_out_max (glong *long_);
169 void gi_marshalling_tests_long_out_min (glong *long_);
171 void gi_marshalling_tests_long_inout_max_min (glong *long_);
172 void gi_marshalling_tests_long_inout_min_max (glong *long_);
175 gulong gi_marshalling_tests_ulong_return (void);
177 void gi_marshalling_tests_ulong_in (gulong ulong_);
179 void gi_marshalling_tests_ulong_out (gulong *ulong_);
180 void gi_marshalling_tests_ulong_inout (gulong *ulong_);
183 gssize gi_marshalling_tests_ssize_return_max (void);
184 gssize gi_marshalling_tests_ssize_return_min (void);
186 void gi_marshalling_tests_ssize_in_max (gssize ssize);
187 void gi_marshalling_tests_ssize_in_min (gssize ssize);
189 void gi_marshalling_tests_ssize_out_max (gssize *ssize);
190 void gi_marshalling_tests_ssize_out_min (gssize *ssize);
192 void gi_marshalling_tests_ssize_inout_max_min (gssize *ssize);
193 void gi_marshalling_tests_ssize_inout_min_max (gssize *ssize);
196 gsize gi_marshalling_tests_size_return (void);
198 void gi_marshalling_tests_size_in (gsize size);
200 void gi_marshalling_tests_size_out (gsize *size);
201 void gi_marshalling_tests_size_inout (gsize *size);
206 gfloat gi_marshalling_tests_float_return (void);
208 void gi_marshalling_tests_float_in (gfloat float_);
210 void gi_marshalling_tests_float_out (gfloat *float_);
212 void gi_marshalling_tests_float_inout (gfloat *float_);
215 gdouble gi_marshalling_tests_double_return (void);
217 void gi_marshalling_tests_double_in (gdouble double_);
219 void gi_marshalling_tests_double_out (gdouble *double_);
221 void gi_marshalling_tests_double_inout (gdouble *double_);
226 time_t gi_marshalling_tests_time_t_return (void);
228 void gi_marshalling_tests_time_t_in (time_t time_t_);
230 void gi_marshalling_tests_time_t_out (time_t *time_t_);
232 void gi_marshalling_tests_time_t_inout (time_t *time_t_);
237 GType gi_marshalling_tests_gtype_return (void);
239 GType gi_marshalling_tests_gtype_string_return (void);
241 void gi_marshalling_tests_gtype_in (GType gtype);
243 void gi_marshalling_tests_gtype_string_in (GType gtype);
245 void gi_marshalling_tests_gtype_out (GType *gtype);
247 void gi_marshalling_tests_gtype_string_out (GType *gtype);
249 void gi_marshalling_tests_gtype_inout (GType *gtype);
254 const gchar *gi_marshalling_tests_utf8_none_return (void);
255 gchar *gi_marshalling_tests_utf8_full_return (void);
257 void gi_marshalling_tests_utf8_none_in (const gchar *utf8);
258 void gi_marshalling_tests_utf8_full_in (gchar *utf8);
260 void gi_marshalling_tests_utf8_none_out (gchar **utf8);
261 void gi_marshalling_tests_utf8_full_out (gchar **utf8);
263 void gi_marshalling_tests_utf8_dangling_out (gchar **utf8);
265 void gi_marshalling_tests_utf8_none_inout (gchar **utf8);
266 void gi_marshalling_tests_utf8_full_inout (gchar **utf8);
268 GSList *gi_marshalling_tests_filename_list_return (void);
274 GI_MARSHALLING_TESTS_ENUM_VALUE1,
275 GI_MARSHALLING_TESTS_ENUM_VALUE2,
276 GI_MARSHALLING_TESTS_ENUM_VALUE3 = 42
277 } GIMarshallingTestsEnum;
281 GI_MARSHALLING_TESTS_SECOND_ENUM_SECONDVALUE1,
282 GI_MARSHALLING_TESTS_SECOND_ENUM_SECONDVALUE2,
283 } GIMarshallingTestsSecondEnum;
285 GIMarshallingTestsEnum gi_marshalling_tests_enum_returnv (void);
287 void gi_marshalling_tests_enum_in (GIMarshallingTestsEnum enum_);
289 void gi_marshalling_tests_enum_out (GIMarshallingTestsEnum *enum_);
291 void gi_marshalling_tests_enum_inout (GIMarshallingTestsEnum *enum_);
298 GI_MARSHALLING_TESTS_GENUM_VALUE1,
299 GI_MARSHALLING_TESTS_GENUM_VALUE2,
300 GI_MARSHALLING_TESTS_GENUM_VALUE3 = 42
301 } GIMarshallingTestsGEnum;
303 GType gi_marshalling_tests_genum_get_type (void) G_GNUC_CONST;
304 #define GI_MARSHALLING_TESTS_TYPE_GENUM (gi_marshalling_tests_genum_get_type ())
306 GIMarshallingTestsEnum gi_marshalling_tests_genum_returnv (void);
308 void gi_marshalling_tests_genum_in (GIMarshallingTestsGEnum enum_);
310 void gi_marshalling_tests_genum_out (GIMarshallingTestsGEnum *enum_);
312 void gi_marshalling_tests_genum_inout (GIMarshallingTestsGEnum *enum_);
319 GI_MARSHALLING_TESTS_FLAGS_VALUE1 = 1 << 0,
320 GI_MARSHALLING_TESTS_FLAGS_VALUE2 = 1 << 1,
321 GI_MARSHALLING_TESTS_FLAGS_VALUE3 = 1 << 2,
322 GI_MARSHALLING_TESTS_FLAGS_MASK = GI_MARSHALLING_TESTS_FLAGS_VALUE1 |
323 GI_MARSHALLING_TESTS_FLAGS_VALUE2,
324 GI_MARSHALLING_TESTS_FLAGS_MASK2 = GI_MARSHALLING_TESTS_FLAGS_MASK
325 } GIMarshallingTestsFlags;
327 GType gi_marshalling_tests_flags_get_type (void) G_GNUC_CONST;
328 #define GI_MARSHALLING_TESTS_TYPE_FLAGS (gi_marshalling_tests_flags_get_type ())
330 GIMarshallingTestsFlags gi_marshalling_tests_flags_returnv (void);
332 void gi_marshalling_tests_flags_in (GIMarshallingTestsFlags flags_);
333 void gi_marshalling_tests_flags_in_zero (GIMarshallingTestsFlags flags);
335 void gi_marshalling_tests_flags_out (GIMarshallingTestsFlags *flags_);
337 void gi_marshalling_tests_flags_inout (GIMarshallingTestsFlags *flags_);
339 /* Flags with no GType */
343 GI_MARSHALLING_TESTS_NO_TYPE_FLAGS_VALUE1 = 1 << 0,
344 GI_MARSHALLING_TESTS_NO_TYPE_FLAGS_VALUE2 = 1 << 1,
345 GI_MARSHALLING_TESTS_NO_TYPE_FLAGS_VALUE3 = 1 << 2,
346 GI_MARSHALLING_TESTS_NO_TYPE_FLAGS_MASK = GI_MARSHALLING_TESTS_NO_TYPE_FLAGS_VALUE1 |
347 GI_MARSHALLING_TESTS_NO_TYPE_FLAGS_VALUE2,
348 GI_MARSHALLING_TESTS_NO_TYPE_FLAGS_MASK2 = GI_MARSHALLING_TESTS_FLAGS_MASK
349 } GIMarshallingTestsNoTypeFlags;
351 GIMarshallingTestsNoTypeFlags gi_marshalling_tests_no_type_flags_returnv (void);
353 void gi_marshalling_tests_no_type_flags_in (GIMarshallingTestsNoTypeFlags flags_);
354 void gi_marshalling_tests_no_type_flags_in_zero (GIMarshallingTestsNoTypeFlags flags);
356 void gi_marshalling_tests_no_type_flags_out (GIMarshallingTestsNoTypeFlags *flags_);
358 void gi_marshalling_tests_no_type_flags_inout (GIMarshallingTestsNoTypeFlags *flags_);
362 gboolean gi_marshalling_tests_init_function (gint *n_args, char ***argv);
365 const gint *gi_marshalling_tests_array_fixed_int_return (void);
366 const gshort *gi_marshalling_tests_array_fixed_short_return (void);
368 void gi_marshalling_tests_array_fixed_int_in (const gint *ints);
369 void gi_marshalling_tests_array_fixed_short_in (const gshort *shorts);
371 void gi_marshalling_tests_array_fixed_out (gint **ints);
373 void gi_marshalling_tests_array_fixed_out_struct (GIMarshallingTestsSimpleStruct **structs);
375 void gi_marshalling_tests_array_fixed_inout (gint **ints);
379 const gint *gi_marshalling_tests_array_return (gint *length);
380 const gint *gi_marshalling_tests_array_return_etc (gint first, gint *length, gint last, gint *sum);
382 void gi_marshalling_tests_array_in (const gint *ints, gint length);
383 void gi_marshalling_tests_array_in_len_before (gint length, const gint *ints);
384 void gi_marshalling_tests_array_in_len_zero_terminated (const gint *ints, gint length);
385 void gi_marshalling_tests_array_string_in (const gchar **strings, gint length);
386 void gi_marshalling_tests_array_uint8_in (const guint8 *chars, gint length);
387 void gi_marshalling_tests_array_struct_in (GIMarshallingTestsBoxedStruct **structs, gint length);
388 void gi_marshalling_tests_array_struct_take_in (GIMarshallingTestsBoxedStruct **structs, gint length);
389 void gi_marshalling_tests_array_simple_struct_in (GIMarshallingTestsSimpleStruct *structs, gint length);
390 void gi_marshalling_tests_multi_array_key_value_in (gint length, const gchar **keys, const GValue *values);
391 void gi_marshalling_tests_array_enum_in (GIMarshallingTestsEnum *_enum, gint length);
392 void gi_marshalling_tests_array_in_guint64_len (const gint *ints, guint64 length);
393 void gi_marshalling_tests_array_in_guint8_len (const gint *ints, guint8 length);
395 void gi_marshalling_tests_array_out (gint **ints, gint *length);
396 void gi_marshalling_tests_array_out_etc (gint first, gint **ints, gint *length, gint last, gint *sum);
398 void gi_marshalling_tests_array_inout (gint **ints, gint *length);
399 void gi_marshalling_tests_array_inout_etc (gint first, gint **ints, gint *length, gint last, gint *sum);
401 /* Zero-terminated */
403 gchar **gi_marshalling_tests_array_zero_terminated_return (void);
404 gchar **gi_marshalling_tests_array_zero_terminated_return_null (void);
405 GIMarshallingTestsBoxedStruct **gi_marshalling_tests_array_zero_terminated_return_struct (void);
407 void gi_marshalling_tests_array_zero_terminated_in (gchar **utf8s);
409 void gi_marshalling_tests_array_zero_terminated_out (gchar ***utf8s);
411 void gi_marshalling_tests_array_zero_terminated_inout (gchar ***utf8s);
413 GVariant **gi_marshalling_tests_array_gvariant_none_in (GVariant **variants);
415 GVariant **gi_marshalling_tests_array_gvariant_container_in (GVariant **variants);
417 GVariant **gi_marshalling_tests_array_gvariant_full_in (GVariant **variants);
422 GArray *gi_marshalling_tests_garray_int_none_return (void);
423 GArray *gi_marshalling_tests_garray_utf8_none_return (void);
424 GArray *gi_marshalling_tests_garray_utf8_container_return (void);
425 GArray *gi_marshalling_tests_garray_utf8_full_return (void);
427 void gi_marshalling_tests_garray_int_none_in (GArray *array_);
428 void gi_marshalling_tests_garray_utf8_none_in (GArray *array_);
430 void gi_marshalling_tests_garray_utf8_none_out (GArray **array_);
431 void gi_marshalling_tests_garray_utf8_container_out (GArray **array_);
432 void gi_marshalling_tests_garray_utf8_full_out (GArray **array_);
434 void gi_marshalling_tests_garray_utf8_none_inout (GArray **array_);
435 void gi_marshalling_tests_garray_utf8_container_inout (GArray **array_);
436 void gi_marshalling_tests_garray_utf8_full_inout (GArray **array_);
439 GPtrArray *gi_marshalling_tests_gptrarray_utf8_none_return (void);
440 GPtrArray *gi_marshalling_tests_gptrarray_utf8_container_return (void);
441 GPtrArray *gi_marshalling_tests_gptrarray_utf8_full_return (void);
443 void gi_marshalling_tests_gptrarray_utf8_none_in (GPtrArray *parray_);
445 void gi_marshalling_tests_gptrarray_utf8_none_out (GPtrArray **parray_);
446 void gi_marshalling_tests_gptrarray_utf8_container_out (GPtrArray **parray_);
447 void gi_marshalling_tests_gptrarray_utf8_full_out (GPtrArray **parray_);
449 void gi_marshalling_tests_gptrarray_utf8_none_inout (GPtrArray **parray_);
450 void gi_marshalling_tests_gptrarray_utf8_container_inout (GPtrArray **parray_);
451 void gi_marshalling_tests_gptrarray_utf8_full_inout (GPtrArray **parray_);
455 GByteArray *gi_marshalling_tests_bytearray_full_return (void);
456 void gi_marshalling_tests_bytearray_none_in (GByteArray* array_);
460 GStrv gi_marshalling_tests_gstrv_return (void);
461 void gi_marshalling_tests_gstrv_in (GStrv g_strv);
462 void gi_marshalling_tests_gstrv_out (GStrv *g_strv);
463 void gi_marshalling_tests_gstrv_inout (GStrv *g_strv);
467 GList *gi_marshalling_tests_glist_int_none_return (void);
468 GList *gi_marshalling_tests_glist_utf8_none_return (void);
469 GList *gi_marshalling_tests_glist_utf8_container_return (void);
470 GList *gi_marshalling_tests_glist_utf8_full_return (void);
472 void gi_marshalling_tests_glist_int_none_in (GList *list);
473 void gi_marshalling_tests_glist_utf8_none_in (GList *list);
475 void gi_marshalling_tests_glist_utf8_none_out (GList **list);
476 void gi_marshalling_tests_glist_utf8_container_out (GList **list);
477 void gi_marshalling_tests_glist_utf8_full_out (GList **list);
479 void gi_marshalling_tests_glist_utf8_none_inout (GList **list);
480 void gi_marshalling_tests_glist_utf8_container_inout (GList **list);
481 void gi_marshalling_tests_glist_utf8_full_inout (GList **list);
486 GSList *gi_marshalling_tests_gslist_int_none_return (void);
487 GSList *gi_marshalling_tests_gslist_utf8_none_return (void);
488 GSList *gi_marshalling_tests_gslist_utf8_container_return (void);
489 GSList *gi_marshalling_tests_gslist_utf8_full_return (void);
491 void gi_marshalling_tests_gslist_int_none_in (GSList *list);
492 void gi_marshalling_tests_gslist_utf8_none_in (GSList *list);
494 void gi_marshalling_tests_gslist_utf8_none_out (GSList **list);
495 void gi_marshalling_tests_gslist_utf8_container_out (GSList **list);
496 void gi_marshalling_tests_gslist_utf8_full_out (GSList **list);
498 void gi_marshalling_tests_gslist_utf8_none_inout (GSList **list);
499 void gi_marshalling_tests_gslist_utf8_container_inout (GSList **list);
500 void gi_marshalling_tests_gslist_utf8_full_inout (GSList **list);
505 GHashTable *gi_marshalling_tests_ghashtable_int_none_return (void);
506 GHashTable *gi_marshalling_tests_ghashtable_utf8_none_return (void);
507 GHashTable *gi_marshalling_tests_ghashtable_utf8_container_return (void);
508 GHashTable *gi_marshalling_tests_ghashtable_utf8_full_return (void);
510 void gi_marshalling_tests_ghashtable_int_none_in (GHashTable *hash_table);
511 void gi_marshalling_tests_ghashtable_utf8_none_in (GHashTable *hash_table);
512 void gi_marshalling_tests_ghashtable_utf8_container_in (GHashTable *hash_table);
513 void gi_marshalling_tests_ghashtable_utf8_full_in (GHashTable *hash_table);
515 void gi_marshalling_tests_ghashtable_utf8_none_out (GHashTable **hash_table);
516 void gi_marshalling_tests_ghashtable_utf8_container_out (GHashTable **hash_table);
517 void gi_marshalling_tests_ghashtable_utf8_full_out (GHashTable **hash_table);
519 void gi_marshalling_tests_ghashtable_utf8_none_inout (GHashTable **hash_table);
520 void gi_marshalling_tests_ghashtable_utf8_container_inout (GHashTable **hash_table);
521 void gi_marshalling_tests_ghashtable_utf8_full_inout (GHashTable **hash_table);
526 GValue *gi_marshalling_tests_gvalue_return (void);
528 void gi_marshalling_tests_gvalue_in (GValue *value);
529 void gi_marshalling_tests_gvalue_in_with_type (GValue *value, GType type);
531 void gi_marshalling_tests_gvalue_in_enum (GValue *value);
533 void gi_marshalling_tests_gvalue_out (GValue **value);
535 void gi_marshalling_tests_gvalue_inout (GValue **value);
537 void gi_marshalling_tests_gvalue_flat_array (guint n_values,
538 const GValue *values);
540 GValue *gi_marshalling_tests_return_gvalue_flat_array (void);
542 GValue *gi_marshalling_tests_gvalue_flat_array_round_trip (const GValue one,
548 void gi_marshalling_tests_gclosure_in (GClosure *closure);
549 GClosure *gi_marshalling_tests_gclosure_return (void);
551 /* Callback return values */
554 * GIMarshallingTestsCallbackReturnValueOnly:
556 typedef glong (* GIMarshallingTestsCallbackReturnValueOnly) ();
558 glong gi_marshalling_tests_callback_return_value_only (GIMarshallingTestsCallbackReturnValueOnly callback);
561 * GIMarshallingTestsCallbackOneOutParameter:
564 typedef void (* GIMarshallingTestsCallbackOneOutParameter) (gfloat *a);
566 void gi_marshalling_tests_callback_one_out_parameter (GIMarshallingTestsCallbackOneOutParameter callback,
570 * GIMarshallingTestsCallbackMultipleOutParameters:
574 typedef void (* GIMarshallingTestsCallbackMultipleOutParameters) (gfloat *a, gfloat *b);
576 void gi_marshalling_tests_callback_multiple_out_parameters (GIMarshallingTestsCallbackMultipleOutParameters callback,
581 * GIMarshallingTestsCallbackReturnValueAndOneOutParameter:
584 typedef glong (* GIMarshallingTestsCallbackReturnValueAndOneOutParameter) (glong *a);
586 glong gi_marshalling_tests_callback_return_value_and_one_out_parameter (GIMarshallingTestsCallbackReturnValueAndOneOutParameter callback,
590 * GIMarshallingTestsCallbackReturnValueAndMultipleOutParameters:
594 typedef glong (* GIMarshallingTestsCallbackReturnValueAndMultipleOutParameters) (glong *a, glong *b);
596 glong gi_marshalling_tests_callback_return_value_and_multiple_out_parameters (GIMarshallingTestsCallbackReturnValueAndMultipleOutParameters callback,
602 gpointer gi_marshalling_tests_pointer_in_return (gpointer pointer);
606 struct _GIMarshallingTestsSimpleStruct {
612 GIMarshallingTestsSimpleStruct simple_struct;
613 } GIMarshallingTestsNestedStruct;
616 GIMarshallingTestsNestedStruct *pointer;
617 } GIMarshallingTestsNotSimpleStruct;
620 GIMarshallingTestsSimpleStruct *gi_marshalling_tests_simple_struct_returnv (void);
622 void gi_marshalling_tests_simple_struct_inv (GIMarshallingTestsSimpleStruct *struct_);
624 void gi_marshalling_tests_simple_struct_method (GIMarshallingTestsSimpleStruct *struct_);
629 } GIMarshallingTestsPointerStruct;
631 GType gi_marshalling_tests_pointer_struct_get_type (void) G_GNUC_CONST;
633 GIMarshallingTestsPointerStruct *gi_marshalling_tests_pointer_struct_returnv (void);
635 void gi_marshalling_tests_pointer_struct_inv (GIMarshallingTestsPointerStruct *struct_);
637 struct _GIMarshallingTestsBoxedStruct {
642 GType gi_marshalling_tests_boxed_struct_get_type (void) G_GNUC_CONST;
644 GIMarshallingTestsBoxedStruct *gi_marshalling_tests_boxed_struct_new (void);
646 GIMarshallingTestsBoxedStruct *gi_marshalling_tests_boxed_struct_returnv (void);
648 void gi_marshalling_tests_boxed_struct_inv (GIMarshallingTestsBoxedStruct *struct_);
650 void gi_marshalling_tests_boxed_struct_out (GIMarshallingTestsBoxedStruct **struct_);
652 void gi_marshalling_tests_boxed_struct_inout (GIMarshallingTestsBoxedStruct **struct_);
656 } GIMarshallingTestsUnion;
658 GType gi_marshalling_tests_union_get_type (void) G_GNUC_CONST;
660 GIMarshallingTestsUnion *gi_marshalling_tests_union_returnv (void);
662 void gi_marshalling_tests_union_inv (GIMarshallingTestsUnion *union_);
664 void gi_marshalling_tests_union_out (GIMarshallingTestsUnion **union_);
666 void gi_marshalling_tests_union_inout (GIMarshallingTestsUnion **union_);
668 void gi_marshalling_tests_union_method (GIMarshallingTestsUnion *union_);
672 #define GI_MARSHALLING_TESTS_TYPE_OBJECT (gi_marshalling_tests_object_get_type ())
673 #define GI_MARSHALLING_TESTS_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GI_MARSHALLING_TESTS_TYPE_OBJECT, GIMarshallingTestsObject))
674 #define GI_MARSHALLING_TESTS_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GI_MARSHALLING_TESTS_TYPE_OBJECT, GIMarshallingTestsObjectClass))
675 #define GI_MARSHALLING_TESTS_IS_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GI_MARSHALLING_TESTS_TYPE_OBJECT))
676 #define GI_MARSHALLING_TESTS_IS_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GI_MARSHALLING_TESTS_TYPE_OBJECT))
677 #define GI_MARSHALLING_TESTS_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GI_MARSHALLING_TESTS_TYPE_OBJECT, GIMarshallingTestsObjectClass))
679 typedef struct _GIMarshallingTestsObjectClass GIMarshallingTestsObjectClass;
680 typedef struct _GIMarshallingTestsObject GIMarshallingTestsObject;
682 typedef int (* GIMarshallingTestsCallbackIntInt) (int val, void *user_data);
684 struct _GIMarshallingTestsObjectClass
686 GObjectClass parent_class;
689 * GIMarshallingTestsObjectClass::method_int8_in:
692 void (* method_int8_in) (GIMarshallingTestsObject *self, gint8 in);
695 * GIMarshallingTestsObjectClass::method_int8_out:
698 void (* method_int8_out) (GIMarshallingTestsObject *self, gint8 *out);
701 * GIMarshallingTestsObjectClass::method_with_default_implementation:
704 void (* method_with_default_implementation) (GIMarshallingTestsObject *self, gint8 in);
707 * GIMarshallingTestsObjectClass::method_deep_hierarchy:
710 void (* method_deep_hierarchy) (GIMarshallingTestsObject *self, gint8 in);
712 void (* vfunc_with_callback) (GIMarshallingTestsObject *self,
713 GIMarshallingTestsCallbackIntInt callback,
714 void *callback_data);
717 * GIMarshallingTestsObjectClass::vfunc_return_value_only:
719 glong (* vfunc_return_value_only) (GIMarshallingTestsObject *self);
722 * GIMarshallingTestsObjectClass::vfunc_one_out_parameter:
725 void (* vfunc_one_out_parameter) (GIMarshallingTestsObject *self, gfloat *a);
728 * GIMarshallingTestsObjectClass::vfunc_multiple_out_parameters:
732 void (* vfunc_multiple_out_parameters) (GIMarshallingTestsObject *self, gfloat *a, gfloat *b);
735 * GIMarshallingTestsObjectClass::vfunc_return_value_and_one_out_parameter:
738 glong (* vfunc_return_value_and_one_out_parameter) (GIMarshallingTestsObject *self, glong *a);
741 * GIMarshallingTestsObjectClass::vfunc_return_value_and_multiple_out_parameters:
745 glong (* vfunc_return_value_and_multiple_out_parameters) (GIMarshallingTestsObject *self, glong *a, glong *b);
748 * GIMarshallingTestsObjectClass::vfunc_meth_with_err:
752 gboolean (*vfunc_meth_with_err) (GIMarshallingTestsObject *object, gint x, GError **error);
755 struct _GIMarshallingTestsObject
757 GObject parent_instance;
762 GType gi_marshalling_tests_object_get_type (void) G_GNUC_CONST;
763 void gi_marshalling_tests_object_static_method (void);
764 void gi_marshalling_tests_object_method (GIMarshallingTestsObject *object);
765 void gi_marshalling_tests_object_overridden_method (GIMarshallingTestsObject *object);
766 GIMarshallingTestsObject *gi_marshalling_tests_object_new (gint int_);
768 void gi_marshalling_tests_object_method_array_in (GIMarshallingTestsObject *object, const gint *ints, gint length);
769 void gi_marshalling_tests_object_method_array_out (GIMarshallingTestsObject *object, gint **ints, gint *length);
770 void gi_marshalling_tests_object_method_array_inout (GIMarshallingTestsObject *object, gint **ints, gint *length);
771 const gint *gi_marshalling_tests_object_method_array_return (GIMarshallingTestsObject *object, gint *length);
773 void gi_marshalling_tests_object_method_int8_in (GIMarshallingTestsObject *object, gint8 in);
774 void gi_marshalling_tests_object_method_int8_out (GIMarshallingTestsObject *object, gint8 *out);
775 void gi_marshalling_tests_object_method_with_default_implementation (GIMarshallingTestsObject *object, gint8 in);
777 glong gi_marshalling_tests_object_vfunc_return_value_only (GIMarshallingTestsObject *self);
778 void gi_marshalling_tests_object_vfunc_one_out_parameter (GIMarshallingTestsObject *self, gfloat *a);
779 void gi_marshalling_tests_object_vfunc_multiple_out_parameters (GIMarshallingTestsObject *self, gfloat *a, gfloat *b);
780 glong gi_marshalling_tests_object_vfunc_return_value_and_one_out_parameter (GIMarshallingTestsObject *self, glong *a);
781 glong gi_marshalling_tests_object_vfunc_return_value_and_multiple_out_parameters (GIMarshallingTestsObject *self, glong *a, glong *b);
782 gboolean gi_marshalling_tests_object_vfunc_meth_with_error (GIMarshallingTestsObject *object, gint x, GError **error);
784 GIMarshallingTestsObject *gi_marshalling_tests_object_none_return (void);
785 GIMarshallingTestsObject *gi_marshalling_tests_object_full_return (void);
787 void gi_marshalling_tests_object_none_in (GIMarshallingTestsObject *object);
788 void gi_marshalling_tests_object_full_in (GIMarshallingTestsObject *object);
790 void gi_marshalling_tests_object_none_out (GIMarshallingTestsObject **object);
791 void gi_marshalling_tests_object_full_out (GIMarshallingTestsObject **object);
793 void gi_marshalling_tests_object_none_inout (GIMarshallingTestsObject **object);
794 void gi_marshalling_tests_object_full_inout (GIMarshallingTestsObject **object);
795 void gi_marshalling_tests_object_inout_same (GIMarshallingTestsObject **object);
797 void gi_marshalling_tests_object_int8_in (GIMarshallingTestsObject *object, gint8 in);
798 void gi_marshalling_tests_object_int8_out (GIMarshallingTestsObject *object, gint8 *out);
800 void gi_marshalling_tests_object_vfunc_with_callback (GIMarshallingTestsObject *object,
801 GIMarshallingTestsCallbackIntInt callback,
802 void *callback_data);
803 void gi_marshalling_tests_object_call_vfunc_with_callback (GIMarshallingTestsObject *object);
805 #define GI_MARSHALLING_TESTS_TYPE_SUB_OBJECT (gi_marshalling_tests_sub_object_get_type ())
806 #define GI_MARSHALLING_TESTS_SUB_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GI_MARSHALLING_TESTS_TYPE_SUB_OBJECT, GIMarshallingTestsSubObject))
807 #define GI_MARSHALLING_TESTS_SUB_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GI_MARSHALLING_TESTS_TYPE_SUB_OBJECT, GIMarshallingTestsSubObjectClass))
808 #define GI_MARSHALLING_TESTS_IS_SUB_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GI_MARSHALLING_TESTS_TYPE_SUB_OBJECT))
809 #define GI_MARSHALLING_TESTS_IS_SUB_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GI_MARSHALLING_TESTS_TYPE_SUB_OBJECT))
810 #define GI_MARSHALLING_TESTS_SUB_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GI_MARSHALLING_TESTS_TYPE_SUB_OBJECT, GIMarshallingTestsSubObjectClass))
812 typedef struct _GIMarshallingTestsSubObjectClass GIMarshallingTestsSubObjectClass;
813 typedef struct _GIMarshallingTestsSubObject GIMarshallingTestsSubObject;
815 struct _GIMarshallingTestsSubObjectClass
817 GIMarshallingTestsObjectClass parent_class;
820 struct _GIMarshallingTestsSubObject
822 GIMarshallingTestsObject parent_instance;
825 GType gi_marshalling_tests_sub_object_get_type (void) G_GNUC_CONST;
827 void gi_marshalling_tests_sub_object_sub_method (GIMarshallingTestsSubObject *object);
828 void gi_marshalling_tests_sub_object_overwritten_method (GIMarshallingTestsSubObject *object);
830 #define GI_MARSHALLING_TESTS_TYPE_SUB_SUB_OBJECT (gi_marshalling_tests_sub_sub_object_get_type ())
831 #define GI_MARSHALLING_TESTS_SUB_SUB_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GI_MARSHALLING_TESTS_TYPE_SUB_SUB_OBJECT, GIMarshallingTestsSubSubObject))
832 #define GI_MARSHALLING_TESTS_SUB_SUB_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GI_MARSHALLING_TESTS_TYPE_SUB_SUB_OBJECT, GIMarshallingTestsSubSubObjectClass))
833 #define GI_MARSHALLING_TESTS_IS_SUB_SUB_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GI_MARSHALLING_TESTS_TYPE_SUB_SUB_OBJECT))
834 #define GI_MARSHALLING_TESTS_IS_SUB_SUB_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GI_MARSHALLING_TESTS_TYPE_SUB_SUB_OBJECT))
835 #define GI_MARSHALLING_TESTS_SUB_SUB_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GI_MARSHALLING_TESTS_TYPE_SUB_SUB_OBJECT, GIMarshallingTestsSubSubObjectClass))
837 typedef struct _GIMarshallingTestsSubSubObjectClass GIMarshallingTestsSubSubObjectClass;
838 typedef struct _GIMarshallingTestsSubSubObject GIMarshallingTestsSubSubObject;
840 struct _GIMarshallingTestsSubSubObjectClass
842 GIMarshallingTestsSubObjectClass parent_class;
845 struct _GIMarshallingTestsSubSubObject
847 GIMarshallingTestsSubObject parent_instance;
850 GType gi_marshalling_tests_sub_sub_object_get_type (void) G_GNUC_CONST;
854 #define GI_MARSHALLING_TESTS_TYPE_INTERFACE (gi_marshalling_tests_interface_get_type ())
855 #define GI_MARSHALLING_TESTS_INTERFACE(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GI_MARSHALLING_TESTS_TYPE_INTERFACE, GIMarshallingTestsInterface))
856 #define GI_MARSHALLING_TESTS_IS_INTERFACE(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GI_MARSHALLING_TESTS_TYPE_INTERFACE))
857 #define GI_MARSHALLING_TESTS_INTERFACE_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GI_MARSHALLING_TESTS_TYPE_INTERFACE, GIMarshallingTestsInterfaceIface))
859 typedef struct _GIMarshallingTestsInterface GIMarshallingTestsInterface;
860 typedef struct _GIMarshallingTestsInterfaceIface GIMarshallingTestsInterfaceIface;
862 struct _GIMarshallingTestsInterfaceIface {
863 GTypeInterface base_iface;
866 * GIMarshallingTestsInterfaceIface::test_int8_in:
869 void (* test_int8_in) (GIMarshallingTestsInterface *self, gint8 in);
872 GType gi_marshalling_tests_interface_get_type (void) G_GNUC_CONST;
874 void gi_marshalling_tests_interface_test_int8_in (GIMarshallingTestsInterface *self, gint8 in);
876 void gi_marshalling_tests_test_interface_test_int8_in (GIMarshallingTestsInterface *test_iface, gint8 in);
878 /* GIMarshallingTestsInterface2 allows us testing vfunc clashes when a class'
879 vfunc implementation ambiguously relates to its prototype */
881 #define GI_MARSHALLING_TESTS_TYPE_INTERFACE2 (gi_marshalling_tests_interface2_get_type ())
882 #define GI_MARSHALLING_TESTS_INTERFACE2(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GI_MARSHALLING_TESTS_TYPE_INTERFACE2, GIMarshallingTestsInterface2))
883 #define GI_MARSHALLING_TESTS_IS_INTERFACE2(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GI_MARSHALLING_TESTS_TYPE_INTERFACE2))
884 #define GI_MARSHALLING_TESTS_INTERFACE2_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE2 ((obj), GI_MARSHALLING_TESTS_TYPE_INTERFACE2, GIMarshallingTestsInterface2Iface))
886 typedef struct _GIMarshallingTestsInterface2 GIMarshallingTestsInterface2;
887 typedef struct _GIMarshallingTestsInterface2Iface GIMarshallingTestsInterface2Iface;
889 struct _GIMarshallingTestsInterface2Iface {
890 GTypeInterface base_iface;
893 * GIMarshallingTestsInterface2Iface::test_int8_in:
896 void (* test_int8_in) (GIMarshallingTestsInterface2 *self, gint8 in);
899 GType gi_marshalling_tests_interface2_get_type (void) G_GNUC_CONST;
902 /* Multiple output arguments */
904 void gi_marshalling_tests_int_out_out (gint *int0, gint *int1);
905 void gi_marshalling_tests_int_three_in_three_out(gint a, gint b, gint c,
906 gint *out0, gint *out1, gint *out2);
907 gint gi_marshalling_tests_int_return_out (gint *int_);
912 #define GI_MARSHALLING_TESTS_CONSTANT_GERROR_DOMAIN "gi-marshalling-tests-gerror-domain"
913 #define GI_MARSHALLING_TESTS_CONSTANT_GERROR_CODE 5
914 #define GI_MARSHALLING_TESTS_CONSTANT_GERROR_MESSAGE "gi-marshalling-tests-gerror-message"
915 #define GI_MARSHALLING_TESTS_CONSTANT_GERROR_DEBUG_MESSAGE "we got an error, life is shit"
917 void gi_marshalling_tests_gerror(GError **error);
918 void gi_marshalling_tests_gerror_array_in(gint *in_ints, GError **error);
919 void gi_marshalling_tests_gerror_out(GError **error, gchar **debug);
920 void gi_marshalling_tests_gerror_out_transfer_none(GError **err, const gchar **debug);
921 GError *gi_marshalling_tests_gerror_return(void);
925 #define GI_MARSHALLING_TESTS_OVERRIDES_CONSTANT 42
930 } GIMarshallingTestsOverridesStruct;
932 GType gi_marshalling_tests_overrides_struct_get_type (void) G_GNUC_CONST;
934 GIMarshallingTestsOverridesStruct *gi_marshalling_tests_overrides_struct_new (void);
936 glong gi_marshalling_tests_overrides_struct_method (GIMarshallingTestsOverridesStruct *struct_);
938 GIMarshallingTestsOverridesStruct *gi_marshalling_tests_overrides_struct_returnv (void);
941 #define GI_MARSHALLING_TESTS_TYPE_OVERRIDES_OBJECT (gi_marshalling_tests_overrides_object_get_type ())
942 #define GI_MARSHALLING_TESTS_OVERRIDES_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GI_MARSHALLING_TESTS_TYPE_OVERRIDES_OBJECT, GIMarshallingTestsOverridesObject))
943 #define GI_MARSHALLING_TESTS_OVERRIDES_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GI_MARSHALLING_TESTS_TYPE_OVERRIDES_OBJECT, GIMarshallingTestsOverridesObjectClass))
944 #define GI_MARSHALLING_TESTS_IS_OVERRIDES_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GI_MARSHALLING_TESTS_TYPE_OVERRIDES_OBJECT))
945 #define GI_MARSHALLING_TESTS_IS_OVERRIDES_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GI_MARSHALLING_TESTS_TYPE_OVERRIDES_OBJECT))
946 #define GI_MARSHALLING_TESTS_OVERRIDES_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GI_MARSHALLING_TESTS_TYPE_OVERRIDES_OBJECT, GIMarshallingTestsOverridesObjectClass))
948 typedef struct _GIMarshallingTestsOverridesObjectClass GIMarshallingTestsOverridesObjectClass;
949 typedef struct _GIMarshallingTestsOverridesObject GIMarshallingTestsOverridesObject;
951 struct _GIMarshallingTestsOverridesObjectClass
953 GObjectClass parent_class;
956 struct _GIMarshallingTestsOverridesObject
958 GObject parent_instance;
963 GType gi_marshalling_tests_overrides_object_get_type (void) G_GNUC_CONST;
965 GIMarshallingTestsOverridesObject *gi_marshalling_tests_overrides_object_new (void);
967 glong gi_marshalling_tests_overrides_object_method (GIMarshallingTestsOverridesObject *object);
969 GIMarshallingTestsOverridesObject *gi_marshalling_tests_overrides_object_returnv (void);
971 /* Properties Object */
973 #define GI_MARSHALLING_TESTS_TYPE_PROPERTIES_OBJECT (gi_marshalling_tests_properties_object_get_type ())
974 #define GI_MARSHALLING_TESTS_PROPERTIES_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GI_MARSHALLING_TESTS_TYPE_PROPERTIES_OBJECT, GIMarshallingTestsPropertiesObject))
975 #define GI_MARSHALLING_TESTS_PROPERTIES_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GI_MARSHALLING_TESTS_TYPE_PROPERTIES_OBJECT, GIMarshallingTestsPropertiesObjectClass))
976 #define GI_MARSHALLING_TESTS_IS_PROPERTIES_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GI_MARSHALLING_TESTS_TYPE_PROPERTIES_OBJECT))
977 #define GI_MARSHALLING_TESTS_IS_PROPERTIES_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GI_MARSHALLING_TESTS_TYPE_PROPERTIES_OBJECT))
978 #define GI_MARSHALLING_TESTS_PROPERTIES_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GI_MARSHALLING_TESTS_TYPE_PROPERTIES_OBJECT, GIMarshallingTestsPropertiesObjectClass))
980 typedef struct _GIMarshallingTestsPropertiesObject GIMarshallingTestsPropertiesObject;
981 typedef struct _GIMarshallingTestsPropertiesObjectClass GIMarshallingTestsPropertiesObjectClass;
983 struct _GIMarshallingTestsPropertiesObject {
984 GObject parent_instance;
986 gboolean some_boolean;
999 struct _GIMarshallingTestsPropertiesObjectClass {
1000 GObjectClass parent_class;
1003 GType gi_marshalling_tests_properties_object_get_type (void) G_GNUC_CONST;
1005 GIMarshallingTestsPropertiesObject *gi_marshalling_tests_properties_object_new (void);
1007 #endif /* _GI_MARSHALLING_TESTS_H_ */