![]() |
![]() |
![]() |
GObject Introspection Reference Manual | ![]() |
---|---|---|---|---|
Top | Description |
typedef GIBaseInfo; GIBaseInfo * g_base_info_ref (GIBaseInfo *info
); void g_base_info_unref (GIBaseInfo *info
); GIInfoType g_base_info_get_type (GIBaseInfo *info
); const gchar * g_base_info_get_name (GIBaseInfo *info
); const gchar * g_base_info_get_namespace (GIBaseInfo *info
); gboolean g_base_info_is_deprecated (GIBaseInfo *info
); const gchar * g_base_info_get_attribute (GIBaseInfo *info
,const gchar *name
); gboolean g_base_info_iterate_attributes (GIBaseInfo *info
,GIAttributeIter *iterator
,char **name
,char **value
); GIBaseInfo * g_base_info_get_container (GIBaseInfo *info
); GTypelib * g_base_info_get_typelib (GIBaseInfo *info
); gboolean g_base_info_equal (GIBaseInfo *info1
,GIBaseInfo *info2
);
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); |
GIBaseInfo * g_base_info_ref (GIBaseInfo *info
);
Increases the reference count of info
.
|
a GIBaseInfo |
Returns : |
the same info .
|
void g_base_info_unref (GIBaseInfo *info
);
Decreases the reference count of info
. When its reference count
drops to 0, the info is freed.
|
a GIBaseInfo |
GIInfoType g_base_info_get_type (GIBaseInfo *info
);
Obtains the info type of the GIBaseInfo.
|
a GIBaseInfo |
Returns : |
the info type of info
|
const gchar * g_base_info_get_name (GIBaseInfo *info
);
Obtains 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.
|
a GIBaseInfo |
Returns : |
the name of info or NULL if it lacks a name.
|
const gchar * g_base_info_get_namespace (GIBaseInfo *info
);
Obtains the namespace of info
.
|
a GIBaseInfo |
Returns : |
the namespace |
gboolean g_base_info_is_deprecated (GIBaseInfo *info
);
Obtains whether the info
is represents a metadata which is
deprecated or not.
|
a GIBaseInfo |
Returns : |
TRUE if deprecated, otherwise FALSE
|
const gchar * g_base_info_get_attribute (GIBaseInfo *info
,const gchar *name
);
Retrieve an arbitrary attribute associated with this node.
|
a GIBaseInfo |
|
a freeform string naming an attribute |
Returns : |
The value of the attribute, or NULL if no such attribute exists
|
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
.
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); } } |
|
A GIBaseInfo |
|
A GIAttributeIter structure, must be initialized; see below |
|
Returned name, must not be freed. [out][transfer none] |
|
Returned name, must not be freed. [out][transfer none] |
Returns : |
TRUE if there are more attributes, FALSE otherwise
|
GIBaseInfo * g_base_info_get_container (GIBaseInfo *info
);
Obtains the container of the info
. The container is the parent
GIBaseInfo. For instance, the parent of a GIFunctionInfo is an
GIObjectInfo or GIInterfaceInfo.
|
a GIBaseInfo |
Returns : |
the container |
GTypelib * g_base_info_get_typelib (GIBaseInfo *info
);
Obtains the typelib this info
belongs to
|
a GIBaseInfo |
Returns : |
the typelib. |
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.
|
a GIBaseInfo |
|
a GIBaseInfo |
Returns : |
TRUE if and only if info1 equals info2 .
|