Imported Upstream version 1.35.9
[platform/upstream/gobject-introspection.git] / docs / reference / html / gi-GIBaseInfo.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>GIBaseInfo</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
7 <link rel="home" href="index.html" title="GObject Introspection Reference Manual">
8 <link rel="up" href="gi-repository-structs.html" title="GIRepository structs">
9 <link rel="prev" href="gi-struct-hierarchy.html" title="Struct hierarchy">
10 <link rel="next" href="gi-GIFunctionInfo.html" title="GIFunctionInfo">
11 <meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
13 </head>
14 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
16 <tr valign="middle">
17 <td><a accesskey="p" href="gi-struct-hierarchy.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
18 <td><a accesskey="u" href="gi-repository-structs.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
19 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
20 <th width="100%" align="center">GObject Introspection Reference Manual</th>
21 <td><a accesskey="n" href="gi-GIFunctionInfo.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
22 </tr>
23 <tr><td colspan="5" class="shortcuts">
24 <a href="#gi-GIBaseInfo.synopsis" class="shortcut">Top</a>
25                    | 
26                   <a href="#gi-GIBaseInfo.description" class="shortcut">Description</a>
27 </td></tr>
28 </table>
29 <div class="refentry">
30 <a name="gi-GIBaseInfo"></a><div class="titlepage"></div>
31 <div class="refnamediv"><table width="100%"><tr>
32 <td valign="top">
33 <h2><span class="refentrytitle"><a name="gi-GIBaseInfo.top_of_page"></a>GIBaseInfo</span></h2>
34 <p>GIBaseInfo — Base struct for all GITypelib structs</p>
35 </td>
36 <td valign="top" align="right"></td>
37 </tr></table></div>
38 <div class="refsynopsisdiv">
39 <a name="gi-GIBaseInfo.synopsis"></a><h2>Synopsis</h2>
40 <pre class="synopsis">enum                <a class="link" href="gi-GIBaseInfo.html#GIInfoType" title="enum GIInfoType">GIInfoType</a>;
41 const <span class="returnvalue">gchar</span> *       <a class="link" href="gi-GIBaseInfo.html#g-info-type-to-string" title="g_info_type_to_string ()">g_info_type_to_string</a>               (<em class="parameter"><code><a class="link" href="gi-GIBaseInfo.html#GIInfoType" title="enum GIInfoType"><span class="type">GIInfoType</span></a> type</code></em>);
42                     <a class="link" href="gi-GIBaseInfo.html#GIAttributeIter" title="GIAttributeIter">GIAttributeIter</a>;
43 typedef             <a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo">GIBaseInfo</a>;
44 <a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="returnvalue">GIBaseInfo</span></a> *        <a class="link" href="gi-GIBaseInfo.html#g-base-info-ref" title="g_base_info_ref ()">g_base_info_ref</a>                     (<em class="parameter"><code><a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *info</code></em>);
45 <span class="returnvalue">void</span>                <a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()">g_base_info_unref</a>                   (<em class="parameter"><code><a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *info</code></em>);
46 <a class="link" href="gi-GIBaseInfo.html#GIInfoType" title="enum GIInfoType"><span class="returnvalue">GIInfoType</span></a>          <a class="link" href="gi-GIBaseInfo.html#g-base-info-get-type" title="g_base_info_get_type ()">g_base_info_get_type</a>                (<em class="parameter"><code><a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *info</code></em>);
47 const <span class="returnvalue">gchar</span> *       <a class="link" href="gi-GIBaseInfo.html#g-base-info-get-name" title="g_base_info_get_name ()">g_base_info_get_name</a>                (<em class="parameter"><code><a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *info</code></em>);
48 const <span class="returnvalue">gchar</span> *       <a class="link" href="gi-GIBaseInfo.html#g-base-info-get-namespace" title="g_base_info_get_namespace ()">g_base_info_get_namespace</a>           (<em class="parameter"><code><a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *info</code></em>);
49 <span class="returnvalue">gboolean</span>            <a class="link" href="gi-GIBaseInfo.html#g-base-info-is-deprecated" title="g_base_info_is_deprecated ()">g_base_info_is_deprecated</a>           (<em class="parameter"><code><a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *info</code></em>);
50 const <span class="returnvalue">gchar</span> *       <a class="link" href="gi-GIBaseInfo.html#g-base-info-get-attribute" title="g_base_info_get_attribute ()">g_base_info_get_attribute</a>           (<em class="parameter"><code><a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *info</code></em>,
51                                                          <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);
52 <span class="returnvalue">gboolean</span>            <a class="link" href="gi-GIBaseInfo.html#g-base-info-iterate-attributes" title="g_base_info_iterate_attributes ()">g_base_info_iterate_attributes</a>      (<em class="parameter"><code><a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *info</code></em>,
53                                                          <em class="parameter"><code><a class="link" href="gi-GIBaseInfo.html#GIAttributeIter" title="GIAttributeIter"><span class="type">GIAttributeIter</span></a> *iterator</code></em>,
54                                                          <em class="parameter"><code><span class="type">char</span> **name</code></em>,
55                                                          <em class="parameter"><code><span class="type">char</span> **value</code></em>);
56 <a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="returnvalue">GIBaseInfo</span></a> *        <a class="link" href="gi-GIBaseInfo.html#g-base-info-get-container" title="g_base_info_get_container ()">g_base_info_get_container</a>           (<em class="parameter"><code><a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *info</code></em>);
57 <a class="link" href="gi-girepository.html#GITypelib" title="GITypelib"><span class="returnvalue">GITypelib</span></a> *         <a class="link" href="gi-GIBaseInfo.html#g-base-info-get-typelib" title="g_base_info_get_typelib ()">g_base_info_get_typelib</a>             (<em class="parameter"><code><a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *info</code></em>);
58 <span class="returnvalue">gboolean</span>            <a class="link" href="gi-GIBaseInfo.html#g-base-info-equal" title="g_base_info_equal ()">g_base_info_equal</a>                   (<em class="parameter"><code><a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *info1</code></em>,
59                                                          <em class="parameter"><code><a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *info2</code></em>);
60 </pre>
61 </div>
62 <div class="refsect1">
63 <a name="gi-GIBaseInfo.description"></a><h2>Description</h2>
64 <p>
65 GIBaseInfo is the common base struct of all other *Info structs
66 accessible through the <a class="link" href="gi-girepository.html#GIRepository"><span class="type">GIRepository</span></a> API.
67 All other structs can be casted to a <a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a>, for instance:
68 </p>
69 <div class="example">
70 <a name="id-1.3.3.3.4.2.3"></a><p class="title"><b>Example 1. Casting a <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a> to <a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a></b></p>
71 <div class="example-contents">
72   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
73     <tbody>
74       <tr>
75         <td class="listing_lines" align="right"><pre>1
76 2</pre></td>
77         <td class="listing_code"><pre class="programlisting"><span class="usertype">GIFunctionInfo</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">function_info </span><span class="symbol">=</span><span class="normal"> </span><span class="symbol">...;</span>
78 <span class="usertype">GIBaseInfo</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">info </span><span class="symbol">=</span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="gi-GIBaseInfo.html#GIBaseInfo">GIBaseInfo</a></span><span class="symbol">*)</span><span class="normal">function_info</span><span class="symbol">;</span></pre></td>
79       </tr>
80     </tbody>
81   </table>
82 </div>
83
84 </div>
85 <p><br class="example-break">
86 Most <a class="link" href="gi-girepository.html#GIRepository"><span class="type">GIRepository</span></a> APIs returning a <a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> is actually creating a new struct, in other
87 words, <a class="link" href="gi-GIBaseInfo.html#g-base-info-unref" title="g_base_info_unref ()"><code class="function">g_base_info_unref()</code></a> has to be called when done accessing the data.
88 GIBaseInfos are normally accessed by calling either
89 <a class="link" href="gi-girepository.html#g-irepository-find-by-name" title="g_irepository_find_by_name ()"><code class="function">g_irepository_find_by_name()</code></a>, <a class="link" href="gi-girepository.html#g-irepository-find-by-gtype" title="g_irepository_find_by_gtype ()"><code class="function">g_irepository_find_by_gtype()</code></a> or <a class="link" href="gi-girepository.html#g-irepository-get-info" title="g_irepository_get_info ()"><code class="function">g_irepository_get_info()</code></a>.
90 </p>
91 <p>
92 </p>
93 <div class="example">
94 <a name="id-1.3.3.3.4.3.1"></a><p class="title"><b>Example 2. Getting the Button of the Gtk typelib</b></p>
95 <div class="example-contents">
96   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
97     <tbody>
98       <tr>
99         <td class="listing_lines" align="right"><pre>1
100 2
101 3</pre></td>
102         <td class="listing_code"><pre class="programlisting"><span class="usertype">GIBaseInfo</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">button_info </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="gi-girepository.html#g-irepository-find-by-name">g_irepository_find_by_name</a></span><span class="symbol">(</span><span class="normal">NULL</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"Gtk"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"Button"</span><span class="symbol">);</span>
103 <span class="symbol">...</span><span class="normal"> </span><span class="usertype">use</span><span class="normal"> button_info </span><span class="symbol">...</span>
104 <span class="function"><a href="gi-GIBaseInfo.html#g-base-info-unref">g_base_info_unref</a></span><span class="symbol">(</span><span class="normal">button_info</span><span class="symbol">);</span></pre></td>
105       </tr>
106     </tbody>
107   </table>
108 </div>
109
110 </div>
111 <p><br class="example-break">
112 </p>
113 <p>
114 </p>
115 <div class="refsect1">
116 <a name="gi-gibaseinfo.struct-hierarchy"></a><h2>Struct hierarchy</h2>
117 <pre class="synopsis">
118   GIBaseInfo
119    +----<a class="link" href="gi-GIArgInfo.html" title="GIArgInfo">GIArgInfo</a>
120    +----<a class="link" href="gi-GICallableInfo.html" title="GICallableInfo">GICallableInfo</a>
121    +----<a class="link" href="gi-GIConstantInfo.html" title="GIConstantInfo">GIConstantInfo</a>
122    +----<a class="link" href="gi-GIFieldInfo.html" title="GIFieldInfo">GIFieldInfo</a>
123    +----<a class="link" href="gi-GIPropertyInfo.html" title="GIPropertyInfo">GIPropertyInfo</a>
124    +----<a class="link" href="gi-GIRegisteredTypeInfo.html" title="GIRegisteredTypeInfo">GIRegisteredTypeInfo</a>
125    +----<a class="link" href="gi-GITypeInfo.html" title="GITypeInfo">GITypeInfo</a>
126 </pre>
127 </div>
128 <p>
129 </p>
130 </div>
131 <div class="refsect1">
132 <a name="gi-GIBaseInfo.details"></a><h2>Details</h2>
133 <div class="refsect2">
134 <a name="GIInfoType"></a><h3>enum GIInfoType</h3>
135 <pre class="programlisting">typedef enum {
136   GI_INFO_TYPE_INVALID,
137   GI_INFO_TYPE_FUNCTION,
138   GI_INFO_TYPE_CALLBACK,
139   GI_INFO_TYPE_STRUCT,
140   GI_INFO_TYPE_BOXED,
141   GI_INFO_TYPE_ENUM,         /*  5 */
142   GI_INFO_TYPE_FLAGS,
143   GI_INFO_TYPE_OBJECT,
144   GI_INFO_TYPE_INTERFACE,
145   GI_INFO_TYPE_CONSTANT,
146   GI_INFO_TYPE_INVALID_0,    /* 10 */  /** DELETED - used to be ERROR_DOMAIN **/
147   GI_INFO_TYPE_UNION,
148   GI_INFO_TYPE_VALUE,
149   GI_INFO_TYPE_SIGNAL,
150   GI_INFO_TYPE_VFUNC,
151   GI_INFO_TYPE_PROPERTY,     /* 15 */
152   GI_INFO_TYPE_FIELD,
153   GI_INFO_TYPE_ARG,
154   GI_INFO_TYPE_TYPE,
155   GI_INFO_TYPE_UNRESOLVED
156 } GIInfoType;
157 </pre>
158 <p>
159 The type of a GIBaseInfo struct.
160 </p>
161 <div class="variablelist"><table border="0" class="variablelist">
162 <colgroup>
163 <col align="left" valign="top">
164 <col>
165 </colgroup>
166 <tbody>
167 <tr>
168 <td><p><a name="GI-INFO-TYPE-INVALID:CAPS"></a><span class="term"><code class="literal">GI_INFO_TYPE_INVALID</code></span></p></td>
169 <td>invalid type
170 </td>
171 </tr>
172 <tr>
173 <td><p><a name="GI-INFO-TYPE-FUNCTION:CAPS"></a><span class="term"><code class="literal">GI_INFO_TYPE_FUNCTION</code></span></p></td>
174 <td>function, see <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a>
175 </td>
176 </tr>
177 <tr>
178 <td><p><a name="GI-INFO-TYPE-CALLBACK:CAPS"></a><span class="term"><code class="literal">GI_INFO_TYPE_CALLBACK</code></span></p></td>
179 <td>callback, see <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a>
180 </td>
181 </tr>
182 <tr>
183 <td><p><a name="GI-INFO-TYPE-STRUCT:CAPS"></a><span class="term"><code class="literal">GI_INFO_TYPE_STRUCT</code></span></p></td>
184 <td>struct, see <a class="link" href="gi-GIStructInfo.html#GIStructInfo" title="GIStructInfo"><span class="type">GIStructInfo</span></a>
185 </td>
186 </tr>
187 <tr>
188 <td><p><a name="GI-INFO-TYPE-BOXED:CAPS"></a><span class="term"><code class="literal">GI_INFO_TYPE_BOXED</code></span></p></td>
189 <td>boxed, see <a class="link" href="gi-GIStructInfo.html#GIStructInfo" title="GIStructInfo"><span class="type">GIStructInfo</span></a> or <a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a>
190 </td>
191 </tr>
192 <tr>
193 <td><p><a name="GI-INFO-TYPE-ENUM:CAPS"></a><span class="term"><code class="literal">GI_INFO_TYPE_ENUM</code></span></p></td>
194 <td>enum, see <a class="link" href="gi-GIEnumInfo.html#GIEnumInfo" title="GIEnumInfo"><span class="type">GIEnumInfo</span></a>
195 </td>
196 </tr>
197 <tr>
198 <td><p><a name="GI-INFO-TYPE-FLAGS:CAPS"></a><span class="term"><code class="literal">GI_INFO_TYPE_FLAGS</code></span></p></td>
199 <td>flags, see <a class="link" href="gi-GIEnumInfo.html#GIEnumInfo" title="GIEnumInfo"><span class="type">GIEnumInfo</span></a>
200 </td>
201 </tr>
202 <tr>
203 <td><p><a name="GI-INFO-TYPE-OBJECT:CAPS"></a><span class="term"><code class="literal">GI_INFO_TYPE_OBJECT</code></span></p></td>
204 <td>object, see <a class="link" href="gi-GIObjectInfo.html#GIObjectInfo" title="GIObjectInfo"><span class="type">GIObjectInfo</span></a>
205 </td>
206 </tr>
207 <tr>
208 <td><p><a name="GI-INFO-TYPE-INTERFACE:CAPS"></a><span class="term"><code class="literal">GI_INFO_TYPE_INTERFACE</code></span></p></td>
209 <td>interface, see <a class="link" href="gi-GIInterfaceInfo.html#GIInterfaceInfo" title="GIInterfaceInfo"><span class="type">GIInterfaceInfo</span></a>
210 </td>
211 </tr>
212 <tr>
213 <td><p><a name="GI-INFO-TYPE-CONSTANT:CAPS"></a><span class="term"><code class="literal">GI_INFO_TYPE_CONSTANT</code></span></p></td>
214 <td>contant, see <a class="link" href="gi-GIConstantInfo.html#GIConstantInfo" title="GIConstantInfo"><span class="type">GIConstantInfo</span></a>
215 </td>
216 </tr>
217 <tr>
218 <td><p><a name="GI-INFO-TYPE-INVALID-0:CAPS"></a><span class="term"><code class="literal">GI_INFO_TYPE_INVALID_0</code></span></p></td>
219 <td></td>
220 </tr>
221 <tr>
222 <td><p><a name="GI-INFO-TYPE-UNION:CAPS"></a><span class="term"><code class="literal">GI_INFO_TYPE_UNION</code></span></p></td>
223 <td>union, see <a class="link" href="gi-GIUnionInfo.html#GIUnionInfo" title="GIUnionInfo"><span class="type">GIUnionInfo</span></a>
224 </td>
225 </tr>
226 <tr>
227 <td><p><a name="GI-INFO-TYPE-VALUE:CAPS"></a><span class="term"><code class="literal">GI_INFO_TYPE_VALUE</code></span></p></td>
228 <td>enum value, see <a class="link" href="gi-GIEnumInfo.html#GIValueInfo" title="GIValueInfo"><span class="type">GIValueInfo</span></a>
229 </td>
230 </tr>
231 <tr>
232 <td><p><a name="GI-INFO-TYPE-SIGNAL:CAPS"></a><span class="term"><code class="literal">GI_INFO_TYPE_SIGNAL</code></span></p></td>
233 <td>signal, see <a class="link" href="gi-GISignalInfo.html#GISignalInfo" title="GISignalInfo"><span class="type">GISignalInfo</span></a>
234 </td>
235 </tr>
236 <tr>
237 <td><p><a name="GI-INFO-TYPE-VFUNC:CAPS"></a><span class="term"><code class="literal">GI_INFO_TYPE_VFUNC</code></span></p></td>
238 <td>virtual function, see <a class="link" href="gi-GIVFuncInfo.html#GIVFuncInfo" title="GIVFuncInfo"><span class="type">GIVFuncInfo</span></a>
239 </td>
240 </tr>
241 <tr>
242 <td><p><a name="GI-INFO-TYPE-PROPERTY:CAPS"></a><span class="term"><code class="literal">GI_INFO_TYPE_PROPERTY</code></span></p></td>
243 <td>GObject property, see <a class="link" href="gi-GIPropertyInfo.html#GIPropertyInfo" title="GIPropertyInfo"><span class="type">GIPropertyInfo</span></a>
244 </td>
245 </tr>
246 <tr>
247 <td><p><a name="GI-INFO-TYPE-FIELD:CAPS"></a><span class="term"><code class="literal">GI_INFO_TYPE_FIELD</code></span></p></td>
248 <td>struct or union field, see <a class="link" href="gi-GIFieldInfo.html#GIFieldInfo" title="GIFieldInfo"><span class="type">GIFieldInfo</span></a>
249 </td>
250 </tr>
251 <tr>
252 <td><p><a name="GI-INFO-TYPE-ARG:CAPS"></a><span class="term"><code class="literal">GI_INFO_TYPE_ARG</code></span></p></td>
253 <td>argument of a function or callback, see <a class="link" href="gi-GIArgInfo.html#GIArgInfo" title="GIArgInfo"><span class="type">GIArgInfo</span></a>
254 </td>
255 </tr>
256 <tr>
257 <td><p><a name="GI-INFO-TYPE-TYPE:CAPS"></a><span class="term"><code class="literal">GI_INFO_TYPE_TYPE</code></span></p></td>
258 <td>type information, see <a class="link" href="gi-GITypeInfo.html#GITypeInfo" title="GITypeInfo"><span class="type">GITypeInfo</span></a>
259 </td>
260 </tr>
261 <tr>
262 <td><p><a name="GI-INFO-TYPE-UNRESOLVED:CAPS"></a><span class="term"><code class="literal">GI_INFO_TYPE_UNRESOLVED</code></span></p></td>
263 <td>unresolved type, a type which is not present in
264 the typelib, or any of its dependencies.
265 </td>
266 </tr>
267 </tbody>
268 </table></div>
269 </div>
270 <hr>
271 <div class="refsect2">
272 <a name="g-info-type-to-string"></a><h3>g_info_type_to_string ()</h3>
273 <pre class="programlisting">const <span class="returnvalue">gchar</span> *       g_info_type_to_string               (<em class="parameter"><code><a class="link" href="gi-GIBaseInfo.html#GIInfoType" title="enum GIInfoType"><span class="type">GIInfoType</span></a> type</code></em>);</pre>
274 <p>
275 Obtain a string representation of <em class="parameter"><code>type</code></em>
276 </p>
277 <div class="variablelist"><table border="0" class="variablelist">
278 <colgroup>
279 <col align="left" valign="top">
280 <col>
281 </colgroup>
282 <tbody>
283 <tr>
284 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
285 <td>the info type</td>
286 </tr>
287 <tr>
288 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
289 <td>the string</td>
290 </tr>
291 </tbody>
292 </table></div>
293 </div>
294 <hr>
295 <div class="refsect2">
296 <a name="GIAttributeIter"></a><h3>GIAttributeIter</h3>
297 <pre class="programlisting">typedef struct {
298 } GIAttributeIter;
299 </pre>
300 <p>
301 An opaque structure used to iterate over attributes
302 in a <a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> struct.
303 </p>
304 </div>
305 <hr>
306 <div class="refsect2">
307 <a name="GIBaseInfo"></a><h3>GIBaseInfo</h3>
308 <pre class="programlisting">typedef struct _GIBaseInfoStub GIBaseInfo;
309 </pre>
310 </div>
311 <hr>
312 <div class="refsect2">
313 <a name="g-base-info-ref"></a><h3>g_base_info_ref ()</h3>
314 <pre class="programlisting"><a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="returnvalue">GIBaseInfo</span></a> *        g_base_info_ref                     (<em class="parameter"><code><a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *info</code></em>);</pre>
315 <p>
316 Increases the reference count of <em class="parameter"><code>info</code></em>.
317 </p>
318 <div class="variablelist"><table border="0" class="variablelist">
319 <colgroup>
320 <col align="left" valign="top">
321 <col>
322 </colgroup>
323 <tbody>
324 <tr>
325 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
326 <td>a <a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a>
327 </td>
328 </tr>
329 <tr>
330 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
331 <td>the same <em class="parameter"><code>info</code></em>.</td>
332 </tr>
333 </tbody>
334 </table></div>
335 </div>
336 <hr>
337 <div class="refsect2">
338 <a name="g-base-info-unref"></a><h3>g_base_info_unref ()</h3>
339 <pre class="programlisting"><span class="returnvalue">void</span>                g_base_info_unref                   (<em class="parameter"><code><a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *info</code></em>);</pre>
340 <p>
341 Decreases the reference count of <em class="parameter"><code>info</code></em>. When its reference count
342 drops to 0, the info is freed.
343 </p>
344 <div class="variablelist"><table border="0" class="variablelist">
345 <colgroup>
346 <col align="left" valign="top">
347 <col>
348 </colgroup>
349 <tbody><tr>
350 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
351 <td>a <a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a>
352 </td>
353 </tr></tbody>
354 </table></div>
355 </div>
356 <hr>
357 <div class="refsect2">
358 <a name="g-base-info-get-type"></a><h3>g_base_info_get_type ()</h3>
359 <pre class="programlisting"><a class="link" href="gi-GIBaseInfo.html#GIInfoType" title="enum GIInfoType"><span class="returnvalue">GIInfoType</span></a>          g_base_info_get_type                (<em class="parameter"><code><a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *info</code></em>);</pre>
360 <p>
361 Obtain the info type of the GIBaseInfo.
362 </p>
363 <div class="variablelist"><table border="0" class="variablelist">
364 <colgroup>
365 <col align="left" valign="top">
366 <col>
367 </colgroup>
368 <tbody>
369 <tr>
370 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
371 <td>a <a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a>
372 </td>
373 </tr>
374 <tr>
375 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
376 <td>the info type of <em class="parameter"><code>info</code></em>
377 </td>
378 </tr>
379 </tbody>
380 </table></div>
381 </div>
382 <hr>
383 <div class="refsect2">
384 <a name="g-base-info-get-name"></a><h3>g_base_info_get_name ()</h3>
385 <pre class="programlisting">const <span class="returnvalue">gchar</span> *       g_base_info_get_name                (<em class="parameter"><code><a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *info</code></em>);</pre>
386 <p>
387 Obtain the name of the <em class="parameter"><code>info</code></em>. What the name represents depends on
388 the <a class="link" href="gi-GIBaseInfo.html#GIInfoType" title="enum GIInfoType"><span class="type">GIInfoType</span></a> of the <em class="parameter"><code>info</code></em>. For instance for <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a> it is
389 the name of the function.
390 </p>
391 <div class="variablelist"><table border="0" class="variablelist">
392 <colgroup>
393 <col align="left" valign="top">
394 <col>
395 </colgroup>
396 <tbody>
397 <tr>
398 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
399 <td>a <a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a>
400 </td>
401 </tr>
402 <tr>
403 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
404 <td>the name of <em class="parameter"><code>info</code></em> or <code class="literal">NULL</code> if it lacks a name.</td>
405 </tr>
406 </tbody>
407 </table></div>
408 </div>
409 <hr>
410 <div class="refsect2">
411 <a name="g-base-info-get-namespace"></a><h3>g_base_info_get_namespace ()</h3>
412 <pre class="programlisting">const <span class="returnvalue">gchar</span> *       g_base_info_get_namespace           (<em class="parameter"><code><a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *info</code></em>);</pre>
413 <p>
414 Obtain the namespace of <em class="parameter"><code>info</code></em>.
415 </p>
416 <div class="variablelist"><table border="0" class="variablelist">
417 <colgroup>
418 <col align="left" valign="top">
419 <col>
420 </colgroup>
421 <tbody>
422 <tr>
423 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
424 <td>a <a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a>
425 </td>
426 </tr>
427 <tr>
428 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
429 <td>the namespace</td>
430 </tr>
431 </tbody>
432 </table></div>
433 </div>
434 <hr>
435 <div class="refsect2">
436 <a name="g-base-info-is-deprecated"></a><h3>g_base_info_is_deprecated ()</h3>
437 <pre class="programlisting"><span class="returnvalue">gboolean</span>            g_base_info_is_deprecated           (<em class="parameter"><code><a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *info</code></em>);</pre>
438 <p>
439 Obtain whether the <em class="parameter"><code>info</code></em> is represents a metadata which is
440 deprecated or not.
441 </p>
442 <div class="variablelist"><table border="0" class="variablelist">
443 <colgroup>
444 <col align="left" valign="top">
445 <col>
446 </colgroup>
447 <tbody>
448 <tr>
449 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
450 <td>a <a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a>
451 </td>
452 </tr>
453 <tr>
454 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
455 <td>
456 <code class="literal">TRUE</code> if deprecated</td>
457 </tr>
458 </tbody>
459 </table></div>
460 </div>
461 <hr>
462 <div class="refsect2">
463 <a name="g-base-info-get-attribute"></a><h3>g_base_info_get_attribute ()</h3>
464 <pre class="programlisting">const <span class="returnvalue">gchar</span> *       g_base_info_get_attribute           (<em class="parameter"><code><a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *info</code></em>,
465                                                          <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);</pre>
466 <p>
467 Retrieve an arbitrary attribute associated with this node.
468 </p>
469 <div class="variablelist"><table border="0" class="variablelist">
470 <colgroup>
471 <col align="left" valign="top">
472 <col>
473 </colgroup>
474 <tbody>
475 <tr>
476 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
477 <td>a <a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a>
478 </td>
479 </tr>
480 <tr>
481 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
482 <td>a freeform string naming an attribute</td>
483 </tr>
484 <tr>
485 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
486 <td>The value of the attribute, or <code class="literal">NULL</code> if no such attribute exists</td>
487 </tr>
488 </tbody>
489 </table></div>
490 </div>
491 <hr>
492 <div class="refsect2">
493 <a name="g-base-info-iterate-attributes"></a><h3>g_base_info_iterate_attributes ()</h3>
494 <pre class="programlisting"><span class="returnvalue">gboolean</span>            g_base_info_iterate_attributes      (<em class="parameter"><code><a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *info</code></em>,
495                                                          <em class="parameter"><code><a class="link" href="gi-GIBaseInfo.html#GIAttributeIter" title="GIAttributeIter"><span class="type">GIAttributeIter</span></a> *iterator</code></em>,
496                                                          <em class="parameter"><code><span class="type">char</span> **name</code></em>,
497                                                          <em class="parameter"><code><span class="type">char</span> **value</code></em>);</pre>
498 <p>
499 Iterate over all attributes associated with this node.  The iterator
500 structure is typically stack allocated, and must have its first
501 member initialized to <code class="literal">NULL</code>.
502 </p>
503 <p>
504 Both the <em class="parameter"><code>name</code></em> and <em class="parameter"><code>value</code></em> should be treated as constants
505 and must not be freed.
506 </p>
507 <p>
508 </p>
509 <div class="example">
510 <a name="id-1.3.3.3.5.13.6.1"></a><p class="title"><b>Example 3. Iterating over attributes</b></p>
511 <div class="example-contents">
512   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
513     <tbody>
514       <tr>
515         <td class="listing_lines" align="right"><pre>1
516 2
517 3
518 4
519 5
520 6
521 7
522 8
523 9
524 10
525 11</pre></td>
526         <td class="listing_code"><pre class="programlisting"><span class="type">void</span>
527 <span class="function">print_attributes</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GIBaseInfo</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">info</span><span class="symbol">)</span>
528 <span class="cbracket">{</span>
529 <span class="normal">  </span><span class="usertype">GIAttributeIter</span><span class="normal"> iter </span><span class="symbol">=</span><span class="normal"> </span><span class="cbracket">{</span><span class="normal"> </span><span class="number">0</span><span class="symbol">,</span><span class="normal"> </span><span class="cbracket">}</span><span class="symbol">;</span>
530 <span class="normal">  </span><span class="type">char</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">name</span><span class="symbol">;</span>
531 <span class="normal">  </span><span class="type">char</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">value</span><span class="symbol">;</span>
532 <span class="normal">  </span><span class="keyword">while</span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="gi-GIBaseInfo.html#g-base-info-iterate-attributes">g_base_info_iterate_attributes</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">info</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">iter</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">name</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">value</span><span class="symbol">))</span>
533 <span class="normal">    </span><span class="cbracket">{</span>
534 <span class="normal">      </span><span class="function">g_print</span><span class="normal"> </span><span class="symbol">(</span><span class="string">"attribute name: %s value: %s"</span><span class="symbol">,</span><span class="normal"> name</span><span class="symbol">,</span><span class="normal"> value</span><span class="symbol">);</span>
535 <span class="normal">    </span><span class="cbracket">}</span>
536 <span class="cbracket">}</span></pre></td>
537       </tr>
538     </tbody>
539   </table>
540 </div>
541
542 </div>
543 <p><br class="example-break">
544 </p>
545 <div class="variablelist"><table border="0" class="variablelist">
546 <colgroup>
547 <col align="left" valign="top">
548 <col>
549 </colgroup>
550 <tbody>
551 <tr>
552 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
553 <td>a <a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a>
554 </td>
555 </tr>
556 <tr>
557 <td><p><span class="term"><em class="parameter"><code>iterator</code></em> :</span></p></td>
558 <td>a <a class="link" href="gi-GIBaseInfo.html#GIAttributeIter" title="GIAttributeIter"><span class="type">GIAttributeIter</span></a> structure, must be initialized; see below</td>
559 </tr>
560 <tr>
561 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
562 <td>Returned name, must not be freed. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
563 </td>
564 </tr>
565 <tr>
566 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
567 <td>Returned name, must not be freed. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
568 </td>
569 </tr>
570 <tr>
571 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
572 <td>
573 <code class="literal">TRUE</code> if there are more attributes</td>
574 </tr>
575 </tbody>
576 </table></div>
577 </div>
578 <hr>
579 <div class="refsect2">
580 <a name="g-base-info-get-container"></a><h3>g_base_info_get_container ()</h3>
581 <pre class="programlisting"><a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="returnvalue">GIBaseInfo</span></a> *        g_base_info_get_container           (<em class="parameter"><code><a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *info</code></em>);</pre>
582 <p>
583 Obtain the container of the <em class="parameter"><code>info</code></em>. The container is the parent
584 GIBaseInfo. For instance, the parent of a <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a> is an
585 <a class="link" href="gi-GIObjectInfo.html#GIObjectInfo" title="GIObjectInfo"><span class="type">GIObjectInfo</span></a> or <a class="link" href="gi-GIInterfaceInfo.html#GIInterfaceInfo" title="GIInterfaceInfo"><span class="type">GIInterfaceInfo</span></a>.
586 </p>
587 <div class="variablelist"><table border="0" class="variablelist">
588 <colgroup>
589 <col align="left" valign="top">
590 <col>
591 </colgroup>
592 <tbody>
593 <tr>
594 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
595 <td>a <a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a>
596 </td>
597 </tr>
598 <tr>
599 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
600 <td>the container. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
601 </td>
602 </tr>
603 </tbody>
604 </table></div>
605 </div>
606 <hr>
607 <div class="refsect2">
608 <a name="g-base-info-get-typelib"></a><h3>g_base_info_get_typelib ()</h3>
609 <pre class="programlisting"><a class="link" href="gi-girepository.html#GITypelib" title="GITypelib"><span class="returnvalue">GITypelib</span></a> *         g_base_info_get_typelib             (<em class="parameter"><code><a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *info</code></em>);</pre>
610 <p>
611 Obtain the typelib this <em class="parameter"><code>info</code></em> belongs to
612 </p>
613 <div class="variablelist"><table border="0" class="variablelist">
614 <colgroup>
615 <col align="left" valign="top">
616 <col>
617 </colgroup>
618 <tbody>
619 <tr>
620 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
621 <td>a <a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a>
622 </td>
623 </tr>
624 <tr>
625 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
626 <td>the typelib. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
627 </td>
628 </tr>
629 </tbody>
630 </table></div>
631 </div>
632 <hr>
633 <div class="refsect2">
634 <a name="g-base-info-equal"></a><h3>g_base_info_equal ()</h3>
635 <pre class="programlisting"><span class="returnvalue">gboolean</span>            g_base_info_equal                   (<em class="parameter"><code><a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *info1</code></em>,
636                                                          <em class="parameter"><code><a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> *info2</code></em>);</pre>
637 <p>
638 Compare two <a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a>.
639 </p>
640 <p>
641 Using pointer comparison is not practical since many functions return
642 different instances of <a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> that refers to the same part of the
643 TypeLib; use this function instead to do <a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a> comparisons.
644 </p>
645 <div class="variablelist"><table border="0" class="variablelist">
646 <colgroup>
647 <col align="left" valign="top">
648 <col>
649 </colgroup>
650 <tbody>
651 <tr>
652 <td><p><span class="term"><em class="parameter"><code>info1</code></em> :</span></p></td>
653 <td>a <a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a>
654 </td>
655 </tr>
656 <tr>
657 <td><p><span class="term"><em class="parameter"><code>info2</code></em> :</span></p></td>
658 <td>a <a class="link" href="gi-GIBaseInfo.html#GIBaseInfo" title="GIBaseInfo"><span class="type">GIBaseInfo</span></a>
659 </td>
660 </tr>
661 <tr>
662 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
663 <td>
664 <code class="literal">TRUE</code> if and only if <em class="parameter"><code>info1</code></em> equals <em class="parameter"><code>info2</code></em>.</td>
665 </tr>
666 </tbody>
667 </table></div>
668 </div>
669 </div>
670 </div>
671 <div class="footer">
672 <hr>
673           Generated by GTK-Doc V1.18.1</div>
674 </body>
675 </html>