~ubuntu-branches/ubuntu/trusty/gobject-introspection/trusty

« back to all changes in this revision

Viewing changes to girepository/girepository.h

  • Committer: Bazaar Package Importer
  • Author(s): Emilio Pozuelo Monfort
  • Date: 2011-03-22 00:32:36 UTC
  • mfrom: (1.4.1 upstream) (3.3.33 multiarch)
  • Revision ID: james.westby@ubuntu.com-20110322003236-4spdgfk1vai6xay1
Tags: 0.10.4-2
Upload to unstable.

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
#ifndef __G_IREPOSITORY_H__
23
23
#define __G_IREPOSITORY_H__
24
24
 
25
 
#define __GIREPOSITORY_H_INSIDE__
26
 
 
27
25
#include <glib-object.h>
28
26
#include <gmodule.h>
 
27
 
 
28
#define __GIREPOSITORY_H_INSIDE__
 
29
 
 
30
#include <giarginfo.h>
29
31
#include <gibaseinfo.h>
 
32
#include <gicallableinfo.h>
 
33
#include <giconstantinfo.h>
 
34
#include <gienuminfo.h>
 
35
#include <gierrordomaininfo.h>
 
36
#include <gifieldinfo.h>
30
37
#include <gifunctioninfo.h>
 
38
#include <giinterfaceinfo.h>
 
39
#include <giobjectinfo.h>
 
40
#include <gipropertyinfo.h>
 
41
#include <giregisteredtypeinfo.h>
 
42
#include <gisignalinfo.h>
 
43
#include <gistructinfo.h>
 
44
#include <gitypeinfo.h>
31
45
#include <gitypelib.h>
32
46
#include <gitypes.h>
 
47
#include <giunioninfo.h>
 
48
#include <givfuncinfo.h>
33
49
 
34
50
G_BEGIN_DECLS
35
51
 
76
92
void          g_irepository_prepend_search_path (const char *directory);
77
93
GSList *      g_irepository_get_search_path     (void);
78
94
const char *  g_irepository_load_typelib  (GIRepository *repository,
79
 
                                           GTypelib     *typelib,
 
95
                                           GITypelib     *typelib,
80
96
                                           GIRepositoryLoadFlags flags,
81
97
                                           GError      **error);
82
98
gboolean      g_irepository_is_registered (GIRepository *repository,
85
101
GIBaseInfo *  g_irepository_find_by_name  (GIRepository *repository,
86
102
                                           const gchar  *namespace_,
87
103
                                           const gchar  *name);
88
 
GTypelib *    g_irepository_require       (GIRepository *repository,
 
104
GList *       g_irepository_enumerate_versions (GIRepository *repository,
 
105
                                                const gchar  *namespace_);
 
106
GITypelib *    g_irepository_require       (GIRepository *repository,
89
107
                                           const gchar  *namespace_,
90
108
                                           const gchar  *version,
91
109
                                           GIRepositoryLoadFlags flags,
92
110
                                           GError      **error);
 
111
GITypelib *    g_irepository_require_private (GIRepository  *repository,
 
112
                                             const gchar   *typelib_dir,
 
113
                                             const gchar   *namespace_,
 
114
                                             const gchar   *version,
 
115
                                             GIRepositoryLoadFlags flags,
 
116
                                             GError       **error);
93
117
gchar      ** g_irepository_get_dependencies (GIRepository *repository,
94
118
                                              const gchar  *namespace_);
95
119
gchar      ** g_irepository_get_loaded_namespaces (GIRepository *repository);
145
169
                                  gpointer        invocation_hint,
146
170
                                  gpointer        marshal_data);
147
171
 
148
 
/* GICallableInfo */
149
 
 
150
 
#define GI_IS_CALLABLE_INFO(info) \
151
 
    ((g_base_info_get_type((GIBaseInfo*)info) == GI_INFO_TYPE_FUNCTION) || \
152
 
     (g_base_info_get_type((GIBaseInfo*)info) == GI_INFO_TYPE_CALLBACK) || \
153
 
     (g_base_info_get_type((GIBaseInfo*)info) == GI_INFO_TYPE_SIGNAL) || \
154
 
     (g_base_info_get_type((GIBaseInfo*)info) == GI_INFO_TYPE_VFUNC))
155
 
 
156
 
/**
157
 
 * GITransfer:
158
 
 * @GI_TRANSFER_NOTHING: transfer nothing to the caller
159
 
 * @GI_TRANSFER_CONTAINER: transfer the container (eg list, array,
160
 
 * hashtable), but no the contents to the caller.
161
 
 * @GI_TRANSFER_EVERYTHING: transfer everything to the caller.
162
 
 *
163
 
 * Represent the transfer ownership information of a #GICallableInfo or
164
 
 * a #GIArgInfo.
165
 
 */
166
 
typedef enum {
167
 
  GI_TRANSFER_NOTHING,
168
 
  GI_TRANSFER_CONTAINER,
169
 
  GI_TRANSFER_EVERYTHING
170
 
} GITransfer;
171
 
 
172
 
GITypeInfo *           g_callable_info_get_return_type (GICallableInfo *info);
173
 
void                   g_callable_info_load_return_type (GICallableInfo *info,
174
 
                                                         GITypeInfo     *type);
175
 
GITransfer             g_callable_info_get_caller_owns (GICallableInfo *info);
176
 
gboolean               g_callable_info_may_return_null (GICallableInfo *info);
177
 
gint                   g_callable_info_get_n_args      (GICallableInfo *info);
178
 
GIArgInfo *            g_callable_info_get_arg         (GICallableInfo *info,
179
 
                                                        gint            n);
180
 
void                   g_callable_info_load_arg        (GICallableInfo *info,
181
 
                                                        gint            n,
182
 
                                                        GIArgInfo      *arg);
183
 
 
184
 
/* GIArgInfo */
185
 
 
186
 
#define GI_IS_ARG_INFO(info) \
187
 
    (g_base_info_get_type((GIBaseInfo*)info) ==  GI_INFO_TYPE_ARG)
188
 
 
189
 
/**
190
 
 * GIDirection:
191
 
 * @GI_DIRECTION_IN: in argument.
192
 
 * @GI_DIRECTION_OUT: out argument.
193
 
 * @GI_DIRECTION_INOUT: in and out argument.
194
 
 *
195
 
 * The direction of a #GIArgInfo.
196
 
 */
197
 
typedef enum  {
198
 
  GI_DIRECTION_IN,
199
 
  GI_DIRECTION_OUT,
200
 
  GI_DIRECTION_INOUT
201
 
} GIDirection;
202
 
 
203
 
/**
204
 
 * GIScopeType:
205
 
 * @GI_SCOPE_TYPE_INVALID: The argument is not of callback type.
206
 
 * @GI_SCOPE_TYPE_CALL: The callback and associated user_data is only
207
 
 * used during the call to this function.
208
 
 * @GI_SCOPE_TYPE_ASYNC: The callback and associated user_data is
209
 
 * only used until the callback is invoked, and the callback.
210
 
 * is invoked always exactly once.
211
 
 * @GI_SCOPE_TYPE_NOTIFIED: The callback and and associated
212
 
 * user_data is used until the caller is notfied via the destroy_notify.
213
 
 *
214
 
 * Scope type of a #GIArgInfo representing callback, determines how the
215
 
 * callback is invoked and is used to decided when the invoke structs
216
 
 * can be freed.
217
 
 */
218
 
typedef enum {
219
 
  GI_SCOPE_TYPE_INVALID,
220
 
  GI_SCOPE_TYPE_CALL,
221
 
  GI_SCOPE_TYPE_ASYNC,
222
 
  GI_SCOPE_TYPE_NOTIFIED
223
 
} GIScopeType;
224
 
 
225
 
GIDirection            g_arg_info_get_direction          (GIArgInfo *info);
226
 
gboolean               g_arg_info_is_return_value        (GIArgInfo *info);
227
 
gboolean               g_arg_info_is_optional            (GIArgInfo *info);
228
 
gboolean               g_arg_info_is_caller_allocates    (GIArgInfo *info);
229
 
gboolean               g_arg_info_may_be_null            (GIArgInfo *info);
230
 
GITransfer             g_arg_info_get_ownership_transfer (GIArgInfo *info);
231
 
GIScopeType            g_arg_info_get_scope              (GIArgInfo *info);
232
 
gint                   g_arg_info_get_closure            (GIArgInfo *info);
233
 
gint                   g_arg_info_get_destroy            (GIArgInfo *info);
234
 
GITypeInfo *           g_arg_info_get_type               (GIArgInfo *info);
235
 
void                   g_arg_info_load_type              (GIArgInfo *info,
236
 
                                                          GITypeInfo *type);
237
 
 
238
 
/* GITypeInfo */
239
 
 
240
 
#define GI_IS_TYPE_INFO(info) \
241
 
    (g_base_info_get_type((GIBaseInfo*)info) ==  GI_INFO_TYPE_TYPE)
242
 
 
243
 
/**
244
 
 * GITypeTag:
245
 
 * @GI_TYPE_TAG_VOID: void
246
 
 * @GI_TYPE_TAG_BOOLEAN: boolean
247
 
 * @GI_TYPE_TAG_INT8: 8-bit signed integer
248
 
 * @GI_TYPE_TAG_UINT8: 8-bit unsigned integer
249
 
 * @GI_TYPE_TAG_INT16: 16-bit signed integer
250
 
 * @GI_TYPE_TAG_UINT16: 16-bit unsigned integer
251
 
 * @GI_TYPE_TAG_INT32: 32-bit signed integer
252
 
 * @GI_TYPE_TAG_UINT32: 32-bit unsigned integer
253
 
 * @GI_TYPE_TAG_INT64: 64-bit signed integer
254
 
 * @GI_TYPE_TAG_UINT64: 64-bit unsigned integer
255
 
 * @GI_TYPE_TAG_SHORT: signed short
256
 
 * @GI_TYPE_TAG_USHORT: unsigned hosrt
257
 
 * @GI_TYPE_TAG_INT: signed integer
258
 
 * @GI_TYPE_TAG_UINT: unsigned integer
259
 
 * @GI_TYPE_TAG_LONG: signed long
260
 
 * @GI_TYPE_TAG_ULONG: unsigned long
261
 
 * @GI_TYPE_TAG_SSIZE: ssize_t
262
 
 * @GI_TYPE_TAG_SIZE: size_t
263
 
 * @GI_TYPE_TAG_FLOAT: float
264
 
 * @GI_TYPE_TAG_DOUBLE: double floating point
265
 
 * @GI_TYPE_TAG_TIME_T: time_t
266
 
 * @GI_TYPE_TAG_GTYPE: a #GType
267
 
 * @GI_TYPE_TAG_UTF8: a UTF-8 encoded string
268
 
 * @GI_TYPE_TAG_FILENAME: a filename, encoded in the same encoding
269
 
 * as the native filesystem is using.
270
 
 * @GI_TYPE_TAG_ARRAY: an array
271
 
 * @GI_TYPE_TAG_INTERFACE: an extended interface object
272
 
 * @GI_TYPE_TAG_GLIST: a #GList
273
 
 * @GI_TYPE_TAG_GSLIST: a #GSList
274
 
 * @GI_TYPE_TAG_GHASH: a #GHashTable
275
 
 * @GI_TYPE_TAG_ERROR: a #GError
276
 
 *
277
 
 * The type tag of a #GITypeInfo.
278
 
 */
279
 
typedef enum {
280
 
  /* Basic types */
281
 
  GI_TYPE_TAG_VOID      =  0,
282
 
  GI_TYPE_TAG_BOOLEAN   =  1,
283
 
  GI_TYPE_TAG_INT8      =  2,
284
 
  GI_TYPE_TAG_UINT8     =  3,
285
 
  GI_TYPE_TAG_INT16     =  4,
286
 
  GI_TYPE_TAG_UINT16    =  5,
287
 
  GI_TYPE_TAG_INT32     =  6,
288
 
  GI_TYPE_TAG_UINT32    =  7,
289
 
  GI_TYPE_TAG_INT64     =  8,
290
 
  GI_TYPE_TAG_UINT64    =  9,
291
 
  GI_TYPE_TAG_SHORT     = 10,
292
 
  GI_TYPE_TAG_USHORT    = 11,
293
 
  GI_TYPE_TAG_INT       = 12,
294
 
  GI_TYPE_TAG_UINT      = 13,
295
 
  GI_TYPE_TAG_LONG      = 14,
296
 
  GI_TYPE_TAG_ULONG     = 15,
297
 
  GI_TYPE_TAG_SSIZE     = 16,
298
 
  GI_TYPE_TAG_SIZE      = 17,
299
 
  GI_TYPE_TAG_FLOAT     = 18,
300
 
  GI_TYPE_TAG_DOUBLE    = 19,
301
 
  GI_TYPE_TAG_TIME_T    = 20,
302
 
  GI_TYPE_TAG_GTYPE     = 21,
303
 
  GI_TYPE_TAG_UTF8      = 22,
304
 
  GI_TYPE_TAG_FILENAME  = 23,
305
 
  /* Non-basic types */
306
 
  GI_TYPE_TAG_ARRAY     = 24,
307
 
  GI_TYPE_TAG_INTERFACE = 25,
308
 
  GI_TYPE_TAG_GLIST     = 26,
309
 
  GI_TYPE_TAG_GSLIST    = 27,
310
 
  GI_TYPE_TAG_GHASH     = 28,
311
 
  GI_TYPE_TAG_ERROR     = 29
312
 
  /* Note - there is only room currently for 32 tags.
313
 
   * See docs/typelib-format.txt SimpleTypeBlob definition */
314
 
} GITypeTag;
315
 
 
316
 
/**
317
 
 * GIArrayType:
318
 
 * @GI_ARRAY_TYPE_C: a C array, char[] for instance
319
 
 * @GI_ARRAY_TYPE_ARRAY: a @GArray array
320
 
 * @GI_ARRAY_TYPE_PTR_ARRAY: a #GPtrArray array
321
 
 * @GI_ARRAY_TYPE_BYTE_ARRAY: a #GByteArray array
322
 
 *
323
 
 * The type of array in a #GITypeInfo.
324
 
 */
325
 
typedef enum {
326
 
  GI_ARRAY_TYPE_C,
327
 
  GI_ARRAY_TYPE_ARRAY,
328
 
  GI_ARRAY_TYPE_PTR_ARRAY,
329
 
  GI_ARRAY_TYPE_BYTE_ARRAY
330
 
} GIArrayType;
331
 
 
332
 
#define G_TYPE_TAG_IS_BASIC(tag) (tag < GI_TYPE_TAG_ARRAY)
333
 
 
334
 
const gchar*           g_type_tag_to_string            (GITypeTag   type);
335
 
 
336
 
gboolean               g_type_info_is_pointer          (GITypeInfo *info);
337
 
GITypeTag              g_type_info_get_tag             (GITypeInfo *info);
338
 
GITypeInfo *           g_type_info_get_param_type      (GITypeInfo *info,
339
 
                                                        gint       n);
340
 
GIBaseInfo *           g_type_info_get_interface       (GITypeInfo *info);
341
 
gint                   g_type_info_get_array_length    (GITypeInfo *info);
342
 
gint                   g_type_info_get_array_fixed_size(GITypeInfo *info);
343
 
gboolean               g_type_info_is_zero_terminated  (GITypeInfo *info);
344
 
GIArrayType            g_type_info_get_array_type      (GITypeInfo *info);
345
 
 
346
 
gint                   g_type_info_get_n_error_domains (GITypeInfo *info);
347
 
GIErrorDomainInfo     *g_type_info_get_error_domain    (GITypeInfo *info,
348
 
                                                        gint       n);
349
 
 
350
 
/* GIErrorDomainInfo */
351
 
 
352
 
#define GI_IS_ERROR_DOMAIN_INFO(info) \
353
 
    (g_base_info_get_type((GIBaseInfo*)info) ==  GI_INFO_TYPE_ERROR_DOMAIN)
354
 
 
355
 
const gchar *          g_error_domain_info_get_quark   (GIErrorDomainInfo *info);
356
 
GIInterfaceInfo *           g_error_domain_info_get_codes (GIErrorDomainInfo *info);
357
 
 
358
 
 
359
 
/* GIValueInfo */
360
 
 
361
 
#define GI_IS_VALUE_INFO(info) \
362
 
    (g_base_info_get_type((GIBaseInfo*)info) ==  GI_INFO_TYPE_VALUE)
363
 
 
364
 
glong                  g_value_info_get_value      (GIValueInfo *info);
365
 
 
366
 
 
367
 
/* GIFieldInfo */
368
 
 
369
 
#define GI_IS_FIELD_INFO(info) \
370
 
    (g_base_info_get_type((GIBaseInfo*)info) ==  GI_INFO_TYPE_FIELD)
371
 
 
372
 
/**
373
 
 * GIFieldInfoFlags:
374
 
 * @GI_FIELD_IS_READABLE: field is readable.
375
 
 * @GI_FIELD_IS_WRITABLE: field is writable.
376
 
 *
377
 
 * Flags for a #GIFieldInfo.
378
 
 */
379
 
 
380
 
typedef enum
381
 
{
382
 
  GI_FIELD_IS_READABLE = 1 << 0,
383
 
  GI_FIELD_IS_WRITABLE = 1 << 1
384
 
} GIFieldInfoFlags;
385
 
 
386
 
GIFieldInfoFlags       g_field_info_get_flags      (GIFieldInfo *info);
387
 
gint                   g_field_info_get_size       (GIFieldInfo *info);
388
 
gint                   g_field_info_get_offset     (GIFieldInfo *info);
389
 
GITypeInfo *           g_field_info_get_type       (GIFieldInfo *info);
390
 
 
391
 
gboolean g_field_info_get_field (GIFieldInfo     *field_info,
392
 
                                 gpointer         mem,
393
 
                                 GArgument       *value);
394
 
gboolean g_field_info_set_field (GIFieldInfo     *field_info,
395
 
                                 gpointer         mem,
396
 
                                 const GArgument *value);
397
 
 
398
 
/* GIUnionInfo */
399
 
 
400
 
#define GI_IS_UNION_INFO(info) \
401
 
    (g_base_info_get_type((GIBaseInfo*)info) ==  GI_INFO_TYPE_UNION)
402
 
 
403
 
gint                   g_union_info_get_n_fields  (GIUnionInfo *info);
404
 
GIFieldInfo *          g_union_info_get_field     (GIUnionInfo *info,
405
 
                                                   gint         n);
406
 
gint                   g_union_info_get_n_methods (GIUnionInfo *info);
407
 
GIFunctionInfo *       g_union_info_get_method    (GIUnionInfo *info,
408
 
                                                   gint         n);
409
 
gboolean               g_union_info_is_discriminated (GIUnionInfo *info);
410
 
gint                   g_union_info_get_discriminator_offset (GIUnionInfo *info);
411
 
GITypeInfo *           g_union_info_get_discriminator_type (GIUnionInfo *info);
412
 
GIConstantInfo *       g_union_info_get_discriminator      (GIUnionInfo *info,
413
 
                                                            gint         n);
414
 
GIFunctionInfo *       g_union_info_find_method    (GIUnionInfo *info,
415
 
                                                    const gchar *name);
416
 
gsize                  g_union_info_get_size       (GIUnionInfo *info);
417
 
gsize                  g_union_info_get_alignment  (GIUnionInfo *info);
418
 
 
419
 
 
420
 
/* GIStructInfo */
421
 
 
422
 
#define GI_IS_STRUCT_INFO(info) \
423
 
    (g_base_info_get_type((GIBaseInfo*)info) ==  GI_INFO_TYPE_STRUCT)
424
 
 
425
 
gint                   g_struct_info_get_n_fields  (GIStructInfo *info);
426
 
GIFieldInfo *          g_struct_info_get_field     (GIStructInfo *info,
427
 
                                                    gint         n);
428
 
gint                   g_struct_info_get_n_methods (GIStructInfo *info);
429
 
GIFunctionInfo *       g_struct_info_get_method    (GIStructInfo *info,
430
 
                                                    gint         n);
431
 
GIFunctionInfo *       g_struct_info_find_method   (GIStructInfo *info,
432
 
                                                    const gchar *name);
433
 
gsize                  g_struct_info_get_size      (GIStructInfo *info);
434
 
gsize                  g_struct_info_get_alignment (GIStructInfo *info);
435
 
gboolean               g_struct_info_is_gtype_struct (GIStructInfo *info);
436
 
gboolean               g_struct_info_is_foreign    (GIStructInfo *info);
437
 
 
438
 
/* GIRegisteredTypeInfo */
439
 
 
440
 
#define GI_IS_REGISTERED_TYPE_INFO(info) \
441
 
    ((g_base_info_get_type((GIBaseInfo*)info) == GI_INFO_TYPE_ENUM) || \
442
 
     (g_base_info_get_type((GIBaseInfo*)info) == GI_INFO_TYPE_INTERFACE) || \
443
 
     (g_base_info_get_type((GIBaseInfo*)info) == GI_INFO_TYPE_OBJECT) || \
444
 
     (g_base_info_get_type((GIBaseInfo*)info) == GI_INFO_TYPE_STRUCT) || \
445
 
     (g_base_info_get_type((GIBaseInfo*)info) == GI_INFO_TYPE_UNION))
446
 
 
447
 
const gchar *          g_registered_type_info_get_type_name (GIRegisteredTypeInfo *info);
448
 
const gchar *          g_registered_type_info_get_type_init (GIRegisteredTypeInfo *info);
449
 
GType                  g_registered_type_info_get_g_type    (GIRegisteredTypeInfo *info);
450
 
 
451
 
/* GIEnumInfo */
452
 
 
453
 
#define GI_IS_ENUM_INFO(info) \
454
 
    ((g_base_info_get_type((GIBaseInfo*)info) ==  GI_INFO_TYPE_ENUM) || \
455
 
     (g_base_info_get_type((GIBaseInfo*)info) ==  GI_INFO_TYPE_FLAGS))
456
 
 
457
 
gint                   g_enum_info_get_n_values             (GIEnumInfo      *info);
458
 
GIValueInfo  *         g_enum_info_get_value                (GIEnumInfo      *info,
459
 
                                                             gint            n);
460
 
GITypeTag              g_enum_info_get_storage_type         (GIEnumInfo      *info);
461
 
 
462
 
/* GIObjectInfo */
463
 
 
464
 
#define GI_IS_OBJECT_INFO(info) \
465
 
    (g_base_info_get_type((GIBaseInfo*)info) ==  GI_INFO_TYPE_OBJECT)
466
 
 
467
 
const gchar *          g_object_info_get_type_name          (GIObjectInfo    *info);
468
 
const gchar *          g_object_info_get_type_init          (GIObjectInfo    *info);
469
 
gboolean               g_object_info_get_abstract           (GIObjectInfo    *info);
470
 
GIObjectInfo *         g_object_info_get_parent             (GIObjectInfo    *info);
471
 
gint                   g_object_info_get_n_interfaces       (GIObjectInfo    *info);
472
 
GIInterfaceInfo *      g_object_info_get_interface          (GIObjectInfo    *info,
473
 
                                                             gint            n);
474
 
gint                   g_object_info_get_n_fields           (GIObjectInfo    *info);
475
 
GIFieldInfo *          g_object_info_get_field              (GIObjectInfo    *info,
476
 
                                                             gint            n);
477
 
gint                   g_object_info_get_n_properties       (GIObjectInfo    *info);
478
 
GIPropertyInfo *       g_object_info_get_property           (GIObjectInfo    *info,
479
 
                                                             gint            n);
480
 
gint                   g_object_info_get_n_methods          (GIObjectInfo    *info);
481
 
GIFunctionInfo *       g_object_info_get_method             (GIObjectInfo    *info,
482
 
                                                             gint            n);
483
 
GIFunctionInfo *       g_object_info_find_method            (GIObjectInfo *info,
484
 
                                                             const gchar *name);
485
 
gint                   g_object_info_get_n_signals          (GIObjectInfo    *info);
486
 
GISignalInfo *         g_object_info_get_signal             (GIObjectInfo    *info,
487
 
                                                             gint            n);
488
 
gint                   g_object_info_get_n_vfuncs           (GIObjectInfo    *info);
489
 
GIVFuncInfo *          g_object_info_get_vfunc              (GIObjectInfo    *info,
490
 
                                                             gint            n);
491
 
GIVFuncInfo *          g_object_info_find_vfunc             (GIObjectInfo *info,
492
 
                                                             const gchar *name);
493
 
gint                   g_object_info_get_n_constants        (GIObjectInfo    *info);
494
 
GIConstantInfo *       g_object_info_get_constant           (GIObjectInfo    *info,
495
 
                                                             gint            n);
496
 
GIStructInfo *         g_object_info_get_class_struct       (GIObjectInfo    *info);
497
 
 
498
 
 
499
 
/* GIInterfaceInfo */
500
 
 
501
 
#define GI_IS_INTERFACE_INFO(info) \
502
 
    (g_base_info_get_type((GIBaseInfo*)info) ==  GI_INFO_TYPE_INTERFACE)
503
 
 
504
 
gint                   g_interface_info_get_n_prerequisites (GIInterfaceInfo *info);
505
 
GIBaseInfo *           g_interface_info_get_prerequisite    (GIInterfaceInfo *info,
506
 
                                                             gint        n);
507
 
gint                   g_interface_info_get_n_properties    (GIInterfaceInfo *info);
508
 
GIPropertyInfo *       g_interface_info_get_property        (GIInterfaceInfo *info,
509
 
                                                             gint        n);
510
 
gint                   g_interface_info_get_n_methods       (GIInterfaceInfo *info);
511
 
GIFunctionInfo *       g_interface_info_get_method          (GIInterfaceInfo *info,
512
 
                                                             gint        n);
513
 
GIFunctionInfo *       g_interface_info_find_method         (GIInterfaceInfo *info,
514
 
                                                             const gchar *name);
515
 
gint                   g_interface_info_get_n_signals       (GIInterfaceInfo *info);
516
 
GISignalInfo *         g_interface_info_get_signal          (GIInterfaceInfo *info,
517
 
                                                             gint        n);
518
 
gint                   g_interface_info_get_n_vfuncs        (GIInterfaceInfo *info);
519
 
GIVFuncInfo *          g_interface_info_get_vfunc           (GIInterfaceInfo *info,
520
 
                                                             gint        n);
521
 
GIVFuncInfo *          g_interface_info_find_vfunc          (GIInterfaceInfo *info,
522
 
                                                             const gchar *name);
523
 
gint                   g_interface_info_get_n_constants     (GIInterfaceInfo *info);
524
 
GIConstantInfo *       g_interface_info_get_constant        (GIInterfaceInfo *info,
525
 
                                                             gint        n);
526
 
 
527
 
GIStructInfo *         g_interface_info_get_iface_struct    (GIInterfaceInfo *info);
528
 
 
529
 
 
530
 
/* GIPropertyInfo  */
531
 
 
532
 
#define GI_IS_PROPERTY_INFO(info) \
533
 
    (g_base_info_get_type((GIBaseInfo*)info) ==  GI_INFO_TYPE_PROPERTY)
534
 
 
535
 
GParamFlags             g_property_info_get_flags                (GIPropertyInfo         *info);
536
 
GITypeInfo *            g_property_info_get_type                 (GIPropertyInfo         *info);
537
 
 
538
 
 
539
 
/* GISignalInfo */
540
 
 
541
 
#define GI_IS_SIGNAL_INFO(info) \
542
 
    (g_base_info_get_type((GIBaseInfo*)info) ==  GI_INFO_TYPE_SIGNAL)
543
 
 
544
 
GSignalFlags            g_signal_info_get_flags                  (GISignalInfo           *info);
545
 
GIVFuncInfo *           g_signal_info_get_class_closure          (GISignalInfo           *info);
546
 
gboolean                g_signal_info_true_stops_emit            (GISignalInfo           *info);
547
 
 
548
 
 
549
 
/* GIVFuncInfo */
550
 
 
551
 
#define GI_IS_VFUNC_INFO(info) \
552
 
    (g_base_info_get_type((GIBaseInfo*)info) ==  GI_INFO_TYPE_VFUNC)
553
 
 
554
 
/**
555
 
 * GIVFuncInfoFlags:
556
 
 * @GI_VFUNC_MUST_CHAIN_UP: chains up to the parent type
557
 
 * @GI_VFUNC_MUST_OVERRIDE: overrides
558
 
 * @GI_VFUNC_MUST_NOT_OVERRIDE: does not override
559
 
 *
560
 
 * Flags of a #GIVFuncInfo struct.
561
 
 */
562
 
typedef enum
563
 
{
564
 
  GI_VFUNC_MUST_CHAIN_UP     = 1 << 0,
565
 
  GI_VFUNC_MUST_OVERRIDE     = 1 << 1,
566
 
  GI_VFUNC_MUST_NOT_OVERRIDE = 1 << 2
567
 
} GIVFuncInfoFlags;
568
 
 
569
 
GIVFuncInfoFlags        g_vfunc_info_get_flags                   (GIVFuncInfo            *info);
570
 
gint                    g_vfunc_info_get_offset                  (GIVFuncInfo            *info);
571
 
GISignalInfo *          g_vfunc_info_get_signal                  (GIVFuncInfo            *info);
572
 
GIFunctionInfo *        g_vfunc_info_get_invoker                 (GIVFuncInfo            *info);
573
 
 
574
 
 
575
 
/* GIConstantInfo */
576
 
 
577
 
#define GI_IS_CONSTANT_INFO(info) \
578
 
    (g_base_info_get_type((GIBaseInfo*)info) ==  GI_INFO_TYPE_CONSTANT)
579
 
 
580
 
GITypeInfo *            g_constant_info_get_type                 (GIConstantInfo         *info);
581
 
gint                    g_constant_info_get_value                (GIConstantInfo         *info,
582
 
                                                                  GArgument             *value);
583
 
 
584
 
 
585
172
G_END_DECLS
586
173
 
587
174