1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>GIFunctionInfo</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
7 <link rel="home" href="index.html" title="GObject Introspection Reference Manual">
8 <link rel="up" href="ch01.html" title="GIRepository">
9 <link rel="prev" href="gi-GICallableInfo.html" title="GICallableInfo">
10 <link rel="next" href="gi-GICallbackInfo.html" title="GICallbackInfo">
11 <meta name="generator" content="GTK-Doc V1.19 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
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">
17 <td><a accesskey="p" href="gi-GICallableInfo.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
18 <td><a accesskey="u" href="ch01.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-GICallbackInfo.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
23 <tr><td colspan="5" class="shortcuts">
24 <a href="#gi-GIFunctionInfo.synopsis" class="shortcut">Top</a>
26 <a href="#gi-GIFunctionInfo.description" class="shortcut">Description</a>
29 <div class="refentry">
30 <a name="gi-GIFunctionInfo"></a><div class="titlepage"></div>
31 <div class="refnamediv"><table width="100%"><tr>
33 <h2><span class="refentrytitle"><a name="gi-GIFunctionInfo.top_of_page"></a>GIFunctionInfo</span></h2>
34 <p>GIFunctionInfo — Struct representing a function</p>
36 <td valign="top" align="right"></td>
38 <div class="refsynopsisdiv">
39 <a name="gi-GIFunctionInfo.synopsis"></a><h2>Synopsis</h2>
40 <pre class="synopsis">#define <a class="link" href="gi-GIFunctionInfo.html#GI-IS-FUNCTION-INFO:CAPS" title="GI_IS_FUNCTION_INFO()">GI_IS_FUNCTION_INFO</a> (info)
41 typedef <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo">GIFunctionInfo</a>;
42 enum <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfoFlags" title="enum GIFunctionInfoFlags">GIFunctionInfoFlags</a>;
43 <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfoFlags" title="enum GIFunctionInfoFlags"><span class="returnvalue">GIFunctionInfoFlags</span></a> <a class="link" href="gi-GIFunctionInfo.html#g-function-info-get-flags" title="g_function_info_get_flags ()">g_function_info_get_flags</a> (<em class="parameter"><code><a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a> *info</code></em>);
44 <a class="link" href="gi-GIPropertyInfo.html#GIPropertyInfo" title="GIPropertyInfo"><span class="returnvalue">GIPropertyInfo</span></a> * <a class="link" href="gi-GIFunctionInfo.html#g-function-info-get-property" title="g_function_info_get_property ()">g_function_info_get_property</a> (<em class="parameter"><code><a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a> *info</code></em>);
45 const <span class="returnvalue">gchar</span> * <a class="link" href="gi-GIFunctionInfo.html#g-function-info-get-symbol" title="g_function_info_get_symbol ()">g_function_info_get_symbol</a> (<em class="parameter"><code><a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a> *info</code></em>);
46 <a class="link" href="gi-GIVFuncInfo.html#GIVFuncInfo" title="GIVFuncInfo"><span class="returnvalue">GIVFuncInfo</span></a> * <a class="link" href="gi-GIFunctionInfo.html#g-function-info-get-vfunc" title="g_function_info_get_vfunc ()">g_function_info_get_vfunc</a> (<em class="parameter"><code><a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a> *info</code></em>);
47 <span class="returnvalue">gboolean</span> <a class="link" href="gi-GIFunctionInfo.html#g-function-info-invoke" title="g_function_info_invoke ()">g_function_info_invoke</a> (<em class="parameter"><code><a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a> *info</code></em>,
48 <em class="parameter"><code>const <a class="link" href="gi-common-types.html#GIArgument" title="union GIArgument"><span class="type">GIArgument</span></a> *in_args</code></em>,
49 <em class="parameter"><code><span class="type">int</span> n_in_args</code></em>,
50 <em class="parameter"><code>const <a class="link" href="gi-common-types.html#GIArgument" title="union GIArgument"><span class="type">GIArgument</span></a> *out_args</code></em>,
51 <em class="parameter"><code><span class="type">int</span> n_out_args</code></em>,
52 <em class="parameter"><code><a class="link" href="gi-common-types.html#GIArgument" title="union GIArgument"><span class="type">GIArgument</span></a> *return_value</code></em>,
53 <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
54 #define <a class="link" href="gi-GIFunctionInfo.html#G-INVOKE-ERROR:CAPS" title="G_INVOKE_ERROR">G_INVOKE_ERROR</a>
55 <span class="returnvalue">GQuark</span> <a class="link" href="gi-GIFunctionInfo.html#g-invoke-error-quark" title="g_invoke_error_quark ()">g_invoke_error_quark</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
56 enum <a class="link" href="gi-GIFunctionInfo.html#GInvokeError" title="enum GInvokeError">GInvokeError</a>;
59 <div class="refsect1">
60 <a name="gi-GIFunctionInfo.description"></a><h2>Description</h2>
62 GIFunctionInfo represents a function, method or constructor.
63 To find out what kind of entity a <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a> represents, call
64 <a class="link" href="gi-GIFunctionInfo.html#g-function-info-get-flags" title="g_function_info_get_flags ()"><code class="function">g_function_info_get_flags()</code></a>.
67 See also <a class="link" href="gi-GICallableInfo.html#GICallableInfo" title="GICallableInfo"><span class="type">GICallableInfo</span></a> for information on how to retreive arguments and
72 <div class="refsect1">
73 <a name="gi-gifunctioninfo.struct-hierarchy"></a><h2>Struct hierarchy</h2>
74 <pre class="synopsis">
75 <a class="link" href="gi-GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
76 +----<a class="link" href="gi-GICallableInfo.html" title="GICallableInfo">GICallableInfo</a>
78 +----<a class="link" href="gi-GISignalInfo.html" title="GISignalInfo">GISignalInfo</a>
79 +----<a class="link" href="gi-GIVFuncInfo.html" title="GIVFuncInfo">GIVFuncInfo</a>
85 <div class="refsect1">
86 <a name="gi-GIFunctionInfo.details"></a><h2>Details</h2>
87 <div class="refsect2">
88 <a name="GI-IS-FUNCTION-INFO:CAPS"></a><h3>GI_IS_FUNCTION_INFO()</h3>
89 <pre class="programlisting">#define GI_IS_FUNCTION_INFO(info)</pre>
91 Checks if <em class="parameter"><code>info</code></em> is a <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a>.
93 <div class="variablelist"><table border="0" class="variablelist">
95 <col align="left" valign="top">
99 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
100 <td>an info structure</td>
105 <div class="refsect2">
106 <a name="GIFunctionInfo"></a><h3>GIFunctionInfo</h3>
107 <pre class="programlisting">typedef GIBaseInfo GIFunctionInfo;
110 Represents a function, eg arguments and return value.
114 <div class="refsect2">
115 <a name="GIFunctionInfoFlags"></a><h3>enum GIFunctionInfoFlags</h3>
116 <pre class="programlisting">typedef enum {
117 GI_FUNCTION_IS_METHOD = 1 << 0,
118 GI_FUNCTION_IS_CONSTRUCTOR = 1 << 1,
119 GI_FUNCTION_IS_GETTER = 1 << 2,
120 GI_FUNCTION_IS_SETTER = 1 << 3,
121 GI_FUNCTION_WRAPS_VFUNC = 1 << 4,
122 GI_FUNCTION_THROWS = 1 << 5
123 } GIFunctionInfoFlags;
126 Flags for a <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a> struct.
128 <div class="variablelist"><table border="0" class="variablelist">
130 <col align="left" valign="top">
135 <td><p><a name="GI-FUNCTION-IS-METHOD:CAPS"></a><span class="term"><code class="literal">GI_FUNCTION_IS_METHOD</code></span></p></td>
140 <td><p><a name="GI-FUNCTION-IS-CONSTRUCTOR:CAPS"></a><span class="term"><code class="literal">GI_FUNCTION_IS_CONSTRUCTOR</code></span></p></td>
141 <td>is a constructor.
145 <td><p><a name="GI-FUNCTION-IS-GETTER:CAPS"></a><span class="term"><code class="literal">GI_FUNCTION_IS_GETTER</code></span></p></td>
146 <td>is a getter of a <a class="link" href="gi-GIPropertyInfo.html#GIPropertyInfo" title="GIPropertyInfo"><span class="type">GIPropertyInfo</span></a>.
150 <td><p><a name="GI-FUNCTION-IS-SETTER:CAPS"></a><span class="term"><code class="literal">GI_FUNCTION_IS_SETTER</code></span></p></td>
151 <td>is a setter of a <a class="link" href="gi-GIPropertyInfo.html#GIPropertyInfo" title="GIPropertyInfo"><span class="type">GIPropertyInfo</span></a>.
155 <td><p><a name="GI-FUNCTION-WRAPS-VFUNC:CAPS"></a><span class="term"><code class="literal">GI_FUNCTION_WRAPS_VFUNC</code></span></p></td>
156 <td>represents a virtual function.
160 <td><p><a name="GI-FUNCTION-THROWS:CAPS"></a><span class="term"><code class="literal">GI_FUNCTION_THROWS</code></span></p></td>
161 <td>the function may throw an error.
168 <div class="refsect2">
169 <a name="g-function-info-get-flags"></a><h3>g_function_info_get_flags ()</h3>
170 <pre class="programlisting"><a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfoFlags" title="enum GIFunctionInfoFlags"><span class="returnvalue">GIFunctionInfoFlags</span></a> g_function_info_get_flags (<em class="parameter"><code><a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a> *info</code></em>);</pre>
172 Obtain the <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfoFlags" title="enum GIFunctionInfoFlags"><span class="type">GIFunctionInfoFlags</span></a> for the <em class="parameter"><code>info</code></em>.
174 <div class="variablelist"><table border="0" class="variablelist">
176 <col align="left" valign="top">
181 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
182 <td>a <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a>
186 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
193 <div class="refsect2">
194 <a name="g-function-info-get-property"></a><h3>g_function_info_get_property ()</h3>
195 <pre class="programlisting"><a class="link" href="gi-GIPropertyInfo.html#GIPropertyInfo" title="GIPropertyInfo"><span class="returnvalue">GIPropertyInfo</span></a> * g_function_info_get_property (<em class="parameter"><code><a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a> *info</code></em>);</pre>
197 Obtain the property associated with this <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a>.
198 Only <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a> with the flag <a class="link" href="gi-GIFunctionInfo.html#GI-FUNCTION-IS-GETTER:CAPS"><code class="literal">GI_FUNCTION_IS_GETTER</code></a> or
199 <a class="link" href="gi-GIFunctionInfo.html#GI-FUNCTION-IS-SETTER:CAPS"><code class="literal">GI_FUNCTION_IS_SETTER</code></a> have a property set. For other cases,
200 <code class="literal">NULL</code> will be returned.
202 <div class="variablelist"><table border="0" class="variablelist">
204 <col align="left" valign="top">
209 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
210 <td>a <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a>
214 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
215 <td>the property or <code class="literal">NULL</code> if not set. Free it with
216 <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> when done. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
223 <div class="refsect2">
224 <a name="g-function-info-get-symbol"></a><h3>g_function_info_get_symbol ()</h3>
225 <pre class="programlisting">const <span class="returnvalue">gchar</span> * g_function_info_get_symbol (<em class="parameter"><code><a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a> *info</code></em>);</pre>
227 Obtain the symbol of the function. The symbol is the name of the
228 exported function, suitable to be used as an argument to
229 <code class="function">g_module_symbol()</code>.
231 <div class="variablelist"><table border="0" class="variablelist">
233 <col align="left" valign="top">
238 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
239 <td>a <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a>
243 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
250 <div class="refsect2">
251 <a name="g-function-info-get-vfunc"></a><h3>g_function_info_get_vfunc ()</h3>
252 <pre class="programlisting"><a class="link" href="gi-GIVFuncInfo.html#GIVFuncInfo" title="GIVFuncInfo"><span class="returnvalue">GIVFuncInfo</span></a> * g_function_info_get_vfunc (<em class="parameter"><code><a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a> *info</code></em>);</pre>
254 Obtain the virtual function associated with this <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a>.
255 Only <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a> with the flag <a class="link" href="gi-GIFunctionInfo.html#GI-FUNCTION-WRAPS-VFUNC:CAPS"><code class="literal">GI_FUNCTION_WRAPS_VFUNC</code></a> has
256 a virtual function set. For other cases, <code class="literal">NULL</code> will be returned.
258 <div class="variablelist"><table border="0" class="variablelist">
260 <col align="left" valign="top">
265 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
266 <td>a <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a>
270 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
271 <td>the virtual function or <code class="literal">NULL</code> if not set.
272 Free it by calling <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> when done. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
279 <div class="refsect2">
280 <a name="g-function-info-invoke"></a><h3>g_function_info_invoke ()</h3>
281 <pre class="programlisting"><span class="returnvalue">gboolean</span> g_function_info_invoke (<em class="parameter"><code><a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a> *info</code></em>,
282 <em class="parameter"><code>const <a class="link" href="gi-common-types.html#GIArgument" title="union GIArgument"><span class="type">GIArgument</span></a> *in_args</code></em>,
283 <em class="parameter"><code><span class="type">int</span> n_in_args</code></em>,
284 <em class="parameter"><code>const <a class="link" href="gi-common-types.html#GIArgument" title="union GIArgument"><span class="type">GIArgument</span></a> *out_args</code></em>,
285 <em class="parameter"><code><span class="type">int</span> n_out_args</code></em>,
286 <em class="parameter"><code><a class="link" href="gi-common-types.html#GIArgument" title="union GIArgument"><span class="type">GIArgument</span></a> *return_value</code></em>,
287 <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
289 Invokes the function described in <em class="parameter"><code>info</code></em> with the given
290 arguments. Note that inout parameters must appear in both
291 argument lists. This function uses <code class="function">dlsym()</code> to obtain a pointer
292 to the function, so the library or shared object containing the
293 described function must either be linked to the caller, or must
294 have been <code class="function">g_module_symbol()</code>ed before calling this function.
296 <div class="variablelist"><table border="0" class="variablelist">
298 <col align="left" valign="top">
303 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
304 <td>a <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a> describing the function to invoke</td>
307 <td><p><span class="term"><em class="parameter"><code>in_args</code></em> :</span></p></td>
308 <td>an array of <a class="link" href="gi-common-types.html#GIArgument" title="union GIArgument"><span class="type">GIArgument</span></a>s, one for each in
309 parameter of <em class="parameter"><code>info</code></em>. If there are no in parameter, <em class="parameter"><code>in_args</code></em>
310 can be <code class="literal">NULL</code>
314 <td><p><span class="term"><em class="parameter"><code>n_in_args</code></em> :</span></p></td>
315 <td>the length of the <em class="parameter"><code>in_args</code></em> array</td>
318 <td><p><span class="term"><em class="parameter"><code>out_args</code></em> :</span></p></td>
319 <td>an array of <a class="link" href="gi-common-types.html#GIArgument" title="union GIArgument"><span class="type">GIArgument</span></a>s, one for each out
320 parameter of <em class="parameter"><code>info</code></em>. If there are no out parameters, <em class="parameter"><code>out_args</code></em>
321 may be <code class="literal">NULL</code>
325 <td><p><span class="term"><em class="parameter"><code>n_out_args</code></em> :</span></p></td>
326 <td>the length of the <em class="parameter"><code>out_args</code></em> array</td>
329 <td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
330 <td>return location for the return value of the
331 function. If the function returns void, <em class="parameter"><code>return_value</code></em> may be
332 <code class="literal">NULL</code>
336 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
337 <td>return location for detailed error information, or <code class="literal">NULL</code>
341 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
343 <code class="literal">TRUE</code> if the function has been invoked, <code class="literal">FALSE</code> if an
350 <div class="refsect2">
351 <a name="G-INVOKE-ERROR:CAPS"></a><h3>G_INVOKE_ERROR</h3>
352 <pre class="programlisting">#define G_INVOKE_ERROR (g_invoke_error_quark ())
359 <div class="refsect2">
360 <a name="g-invoke-error-quark"></a><h3>g_invoke_error_quark ()</h3>
361 <pre class="programlisting"><span class="returnvalue">GQuark</span> g_invoke_error_quark (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
365 <div class="variablelist"><table border="0" class="variablelist">
367 <col align="left" valign="top">
371 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
377 <div class="refsect2">
378 <a name="GInvokeError"></a><h3>enum GInvokeError</h3>
379 <pre class="programlisting">typedef enum {
380 G_INVOKE_ERROR_FAILED,
381 G_INVOKE_ERROR_SYMBOL_NOT_FOUND,
382 G_INVOKE_ERROR_ARGUMENT_MISMATCH
386 An error occuring while invoking a function via
387 <a class="link" href="gi-GIFunctionInfo.html#g-function-info-invoke" title="g_function_info_invoke ()"><code class="function">g_function_info_invoke()</code></a>.
389 <div class="variablelist"><table border="0" class="variablelist">
391 <col align="left" valign="top">
396 <td><p><a name="G-INVOKE-ERROR-FAILED:CAPS"></a><span class="term"><code class="literal">G_INVOKE_ERROR_FAILED</code></span></p></td>
397 <td>invokation failed, unknown error.
401 <td><p><a name="G-INVOKE-ERROR-SYMBOL-NOT-FOUND:CAPS"></a><span class="term"><code class="literal">G_INVOKE_ERROR_SYMBOL_NOT_FOUND</code></span></p></td>
402 <td>symbol couldn't be found in any of the
403 libraries associated with the typelib of the function.
407 <td><p><a name="G-INVOKE-ERROR-ARGUMENT-MISMATCH:CAPS"></a><span class="term"><code class="literal">G_INVOKE_ERROR_ARGUMENT_MISMATCH</code></span></p></td>
408 <td>the arguments provided didn't match
409 the expected arguments for the functions type signature.
419 Generated by GTK-Doc V1.19</div>