| 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.
|