GIBaseInfo

GIBaseInfo — Base struct for all GITypelib structs

Functions

GIBaseInfo * g_info_new ()
GIBaseInfo * g_base_info_ref ()
void g_base_info_unref ()
gboolean g_base_info_equal ()
GIInfoType g_base_info_get_type ()
GITypelib * g_base_info_get_typelib ()
const gchar * g_base_info_get_namespace ()
const gchar * g_base_info_get_name ()
const gchar * g_base_info_get_attribute ()
gboolean g_base_info_iterate_attributes ()
GIBaseInfo * g_base_info_get_container ()
gboolean g_base_info_is_deprecated ()

Types and Values

Description

GIBaseInfo is the common base struct of all other *Info structs accessible through the GIRepository API. All other structs can be casted to a GIBaseInfo, for instance:

Example 1. Casting a GIFunctionInfo to GIBaseInfo

1
2
GIFunctionInfo *function_info = ...;
GIBaseInfo *info = (GIBaseInfo*)function_info;


Most GIRepository APIs returning a GIBaseInfo is actually creating a new struct, in other words, g_base_info_unref() has to be called when done accessing the data. GIBaseInfos are normally accessed by calling either g_irepository_find_by_name(), g_irepository_find_by_gtype() or g_irepository_get_info().

Example 2. Getting the Button of the Gtk typelib

1
2
3
GIBaseInfo *button_info = g_irepository_find_by_name(NULL, "Gtk", "Button");
... use button_info ...
g_base_info_unref(button_info);


Struct hierarchy

  GIBaseInfo
   +----GIArgInfo
   +----GICallableInfo
   +----GIConstantInfo
   +----GIFieldInfo
   +----GIPropertyInfo
   +----GIRegisteredTypeInfo
   +----GITypeInfo

Functions

g_info_new ()

GIBaseInfo *
g_info_new (GIInfoType type,
            GIBaseInfo *container,
            GITypelib *typelib,
            guint32 offset);

TODO

Parameters

type

TODO

 

container

TODO

 

typelib

TODO

 

offset

TODO

 

Returns

TODO


g_base_info_ref ()

GIBaseInfo *
g_base_info_ref (GIBaseInfo *info);

Increases the reference count of info .

[skip]

Parameters

info

a GIBaseInfo

 

Returns

the same info .


g_base_info_unref ()

void
g_base_info_unref (GIBaseInfo *info);

Decreases the reference count of info . When its reference count drops to 0, the info is freed.

[skip]

Parameters

info

a GIBaseInfo

 

g_base_info_equal ()

gboolean
g_base_info_equal (GIBaseInfo *info1,
                   GIBaseInfo *info2);

Compare two GIBaseInfo.

Using pointer comparison is not practical since many functions return different instances of GIBaseInfo that refers to the same part of the TypeLib; use this function instead to do GIBaseInfo comparisons.

Parameters

info1

a GIBaseInfo

 

info2

a GIBaseInfo

 

Returns

TRUE if and only if info1 equals info2 .


g_base_info_get_type ()

GIInfoType
g_base_info_get_type (GIBaseInfo *info);

Obtain the info type of the GIBaseInfo.

Parameters

info

a GIBaseInfo

 

Returns

the info type of info


g_base_info_get_typelib ()

GITypelib *
g_base_info_get_typelib (GIBaseInfo *info);

Obtain the typelib this info belongs to

Parameters

info

a GIBaseInfo

 

Returns

the typelib.

[transfer none]


g_base_info_get_namespace ()

const gchar *
g_base_info_get_namespace (GIBaseInfo *info);

Obtain the namespace of info .

Parameters

info

a GIBaseInfo

 

Returns

the namespace


g_base_info_get_name ()

const gchar *
g_base_info_get_name (GIBaseInfo *info);

Obtain the name of the info . What the name represents depends on the GIInfoType of the info . For instance for GIFunctionInfo it is the name of the function.

Parameters

info

a GIBaseInfo

 

Returns

the name of info or NULL if it lacks a name.


g_base_info_get_attribute ()

const gchar *
g_base_info_get_attribute (GIBaseInfo *info,
                           const gchar *name);

Retrieve an arbitrary attribute associated with this node.

Parameters

info

a GIBaseInfo

 

name

a freeform string naming an attribute

 

Returns

The value of the attribute, or NULL if no such attribute exists


g_base_info_iterate_attributes ()

gboolean
g_base_info_iterate_attributes (GIBaseInfo *info,
                                GIAttributeIter *iterator,
                                char **name,
                                char **value);

Iterate over all attributes associated with this node. The iterator structure is typically stack allocated, and must have its first member initialized to NULL. Attributes are arbitrary namespaced key–value pairs which can be attached to almost any item. They are intended for use by software higher in the toolchain than bindings, and are distinct from normal GIR annotations.

Both the name and value should be treated as constants and must not be freed.

Example 3. Iterating over attributes

1
2
3
4
5
6
7
8
9
10
11
void
print_attributes (GIBaseInfo *info)
{
  GIAttributeIter iter = { 0, };
  char *name;
  char *value;
  while (g_base_info_iterate_attributes (info, &iter, &name, &value))
    {
      g_print ("attribute name: %s value: %s", name, value);
    }
}


Parameters

info

a GIBaseInfo

 

iterator

a GIAttributeIter structure, must be initialized; see below.

[inout]

name

Returned name, must not be freed.

[out][transfer none]

value

Returned name, must not be freed.

[out][transfer none]

Returns

TRUE if there are more attributes


g_base_info_get_container ()

GIBaseInfo *
g_base_info_get_container (GIBaseInfo *info);

Obtain the container of the info . The container is the parent GIBaseInfo. For instance, the parent of a GIFunctionInfo is an GIObjectInfo or GIInterfaceInfo.

Parameters

info

a GIBaseInfo

 

Returns

the container.

[transfer none]


g_base_info_is_deprecated ()

gboolean
g_base_info_is_deprecated (GIBaseInfo *info);

Obtain whether the info is represents a metadata which is deprecated or not.

Parameters

info

a GIBaseInfo

 

Returns

TRUE if deprecated

Types and Values

enum GIInfoType

The type of a GIBaseInfo struct.

Members

GI_INFO_TYPE_INVALID

invalid type

 

GI_INFO_TYPE_FUNCTION

function, see GIFunctionInfo

 

GI_INFO_TYPE_CALLBACK

callback, see GIFunctionInfo

 

GI_INFO_TYPE_STRUCT

struct, see GIStructInfo

 

GI_INFO_TYPE_BOXED

boxed, see GIStructInfo or GIUnionInfo

 

GI_INFO_TYPE_ENUM

enum, see GIEnumInfo

 

GI_INFO_TYPE_FLAGS

flags, see GIEnumInfo

 

GI_INFO_TYPE_OBJECT

object, see GIObjectInfo

 

GI_INFO_TYPE_INTERFACE

interface, see GIInterfaceInfo

 

GI_INFO_TYPE_CONSTANT

contant, see GIConstantInfo

 

GI_INFO_TYPE_INVALID_0

deleted, used to be GI_INFO_TYPE_ERROR_DOMAIN.

 

GI_INFO_TYPE_UNION

union, see GIUnionInfo

 

GI_INFO_TYPE_VALUE

enum value, see GIValueInfo

 

GI_INFO_TYPE_SIGNAL

signal, see GISignalInfo

 

GI_INFO_TYPE_VFUNC

virtual function, see GIVFuncInfo

 

GI_INFO_TYPE_PROPERTY

GObject property, see GIPropertyInfo

 

GI_INFO_TYPE_FIELD

struct or union field, see GIFieldInfo

 

GI_INFO_TYPE_ARG

argument of a function or callback, see GIArgInfo

 

GI_INFO_TYPE_TYPE

type information, see GITypeInfo

 

GI_INFO_TYPE_UNRESOLVED

unresolved type, a type which is not present in the typelib, or any of its dependencies.

 

GIAttributeIter

typedef struct {
} GIAttributeIter;

An opaque structure used to iterate over attributes in a GIBaseInfo struct.