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.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-GIBaseInfo.html" title="GIBaseInfo">
10 <link rel="next" href="gi-GICallableInfo.html" title="GICallableInfo">
11 <meta name="generator" content="GTK-Doc V1.18.1 (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-GIBaseInfo.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-GICallableInfo.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#GInvokeError" title="enum GInvokeError">GInvokeError</a>;
43 enum <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfoFlags" title="enum GIFunctionInfoFlags">GIFunctionInfoFlags</a>;
44 #define <a class="link" href="gi-GIFunctionInfo.html#G-INVOKE-ERROR:CAPS" title="G_INVOKE_ERROR">G_INVOKE_ERROR</a>
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-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>);
47 <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>);
48 <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>);
49 <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>,
50 <em class="parameter"><code>const <span class="type">GIArgument</span> *in_args</code></em>,
51 <em class="parameter"><code><span class="type">int</span> n_in_args</code></em>,
52 <em class="parameter"><code>const <span class="type">GIArgument</span> *out_args</code></em>,
53 <em class="parameter"><code><span class="type">int</span> n_out_args</code></em>,
54 <em class="parameter"><code><span class="type">GIArgument</span> *return_value</code></em>,
55 <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
58 <div class="refsect1">
59 <a name="gi-GIFunctionInfo.description"></a><h2>Description</h2>
61 GIFunctionInfo represents a function, method or constructor.
62 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
63 <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>.
66 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
71 <div class="refsect1">
72 <a name="gi-gifunctioninfo.struct-hierarchy"></a><h2>Struct hierarchy</h2>
73 <pre class="synopsis">
74 <a class="link" href="gi-GIBaseInfo.html" title="GIBaseInfo">GIBaseInfo</a>
75 +----<a class="link" href="gi-GICallableInfo.html" title="GICallableInfo">GICallableInfo</a>
77 +----<a class="link" href="gi-GISignalInfo.html" title="GISignalInfo">GISignalInfo</a>
78 +----<a class="link" href="gi-GIVFuncInfo.html" title="GIVFuncInfo">GIVFuncInfo</a>
84 <div class="refsect1">
85 <a name="gi-GIFunctionInfo.details"></a><h2>Details</h2>
86 <div class="refsect2">
87 <a name="GI-IS-FUNCTION-INFO:CAPS"></a><h3>GI_IS_FUNCTION_INFO()</h3>
88 <pre class="programlisting">#define GI_IS_FUNCTION_INFO(info)</pre>
91 <div class="refsect2">
92 <a name="GIFunctionInfo"></a><h3>GIFunctionInfo</h3>
93 <pre class="programlisting">typedef GIBaseInfo GIFunctionInfo;
96 Represents a function, eg arguments and return value.
100 <div class="refsect2">
101 <a name="GInvokeError"></a><h3>enum GInvokeError</h3>
102 <pre class="programlisting">typedef enum {
103 G_INVOKE_ERROR_FAILED,
104 G_INVOKE_ERROR_SYMBOL_NOT_FOUND,
105 G_INVOKE_ERROR_ARGUMENT_MISMATCH
109 An error occuring while invoking a function via
110 <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>.
112 <div class="variablelist"><table border="0" class="variablelist">
114 <col align="left" valign="top">
119 <td><p><a name="G-INVOKE-ERROR-FAILED:CAPS"></a><span class="term"><code class="literal">G_INVOKE_ERROR_FAILED</code></span></p></td>
120 <td>invokation failed, unknown error.
124 <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>
125 <td>symbol couldn't be found in any of the
126 libraries associated with the typelib of the function.
130 <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>
131 <td>the arguments provided didn't match
132 the expected arguments for the functions type signature.
139 <div class="refsect2">
140 <a name="GIFunctionInfoFlags"></a><h3>enum GIFunctionInfoFlags</h3>
141 <pre class="programlisting">typedef enum {
142 GI_FUNCTION_IS_METHOD = 1 << 0,
143 GI_FUNCTION_IS_CONSTRUCTOR = 1 << 1,
144 GI_FUNCTION_IS_GETTER = 1 << 2,
145 GI_FUNCTION_IS_SETTER = 1 << 3,
146 GI_FUNCTION_WRAPS_VFUNC = 1 << 4,
147 GI_FUNCTION_THROWS = 1 << 5
148 } GIFunctionInfoFlags;
151 Flags for a <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a> struct.
153 <div class="variablelist"><table border="0" class="variablelist">
155 <col align="left" valign="top">
160 <td><p><a name="GI-FUNCTION-IS-METHOD:CAPS"></a><span class="term"><code class="literal">GI_FUNCTION_IS_METHOD</code></span></p></td>
165 <td><p><a name="GI-FUNCTION-IS-CONSTRUCTOR:CAPS"></a><span class="term"><code class="literal">GI_FUNCTION_IS_CONSTRUCTOR</code></span></p></td>
166 <td>is a constructor.
170 <td><p><a name="GI-FUNCTION-IS-GETTER:CAPS"></a><span class="term"><code class="literal">GI_FUNCTION_IS_GETTER</code></span></p></td>
171 <td>is a getter of a <a class="link" href="gi-GIPropertyInfo.html#GIPropertyInfo" title="GIPropertyInfo"><span class="type">GIPropertyInfo</span></a>.
175 <td><p><a name="GI-FUNCTION-IS-SETTER:CAPS"></a><span class="term"><code class="literal">GI_FUNCTION_IS_SETTER</code></span></p></td>
176 <td>is a setter of a <a class="link" href="gi-GIPropertyInfo.html#GIPropertyInfo" title="GIPropertyInfo"><span class="type">GIPropertyInfo</span></a>.
180 <td><p><a name="GI-FUNCTION-WRAPS-VFUNC:CAPS"></a><span class="term"><code class="literal">GI_FUNCTION_WRAPS_VFUNC</code></span></p></td>
181 <td>represents a virtual function.
185 <td><p><a name="GI-FUNCTION-THROWS:CAPS"></a><span class="term"><code class="literal">GI_FUNCTION_THROWS</code></span></p></td>
186 <td>the function may throw an error.
193 <div class="refsect2">
194 <a name="G-INVOKE-ERROR:CAPS"></a><h3>G_INVOKE_ERROR</h3>
195 <pre class="programlisting">#define G_INVOKE_ERROR (g_invoke_error_quark ())
199 <div class="refsect2">
200 <a name="g-function-info-get-symbol"></a><h3>g_function_info_get_symbol ()</h3>
201 <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>
203 Obtain the symbol of the function. The symbol is the name of the
204 exported function, suitable to be used as an argument to
205 <code class="function">g_module_symbol()</code>.
207 <div class="variablelist"><table border="0" class="variablelist">
209 <col align="left" valign="top">
214 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
215 <td>a <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a>
219 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
226 <div class="refsect2">
227 <a name="g-function-info-get-flags"></a><h3>g_function_info_get_flags ()</h3>
228 <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>
230 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>.
232 <div class="variablelist"><table border="0" class="variablelist">
234 <col align="left" valign="top">
239 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
240 <td>a <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a>
244 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
251 <div class="refsect2">
252 <a name="g-function-info-get-property"></a><h3>g_function_info_get_property ()</h3>
253 <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>
255 Obtain the property associated with this <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a>.
256 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
257 <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,
258 <code class="literal">NULL</code> will be returned.
260 <div class="variablelist"><table border="0" class="variablelist">
262 <col align="left" valign="top">
267 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
268 <td>a <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a>
272 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
273 <td>the property or <code class="literal">NULL</code> if not set. Free it with
274 <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>
281 <div class="refsect2">
282 <a name="g-function-info-get-vfunc"></a><h3>g_function_info_get_vfunc ()</h3>
283 <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>
285 Obtain the virtual function associated with this <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a>.
286 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
287 a virtual function set. For other cases, <code class="literal">NULL</code> will be returned.
289 <div class="variablelist"><table border="0" class="variablelist">
291 <col align="left" valign="top">
296 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
297 <td>a <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a>
301 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
302 <td>the virtual function or <code class="literal">NULL</code> if not set.
303 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>
310 <div class="refsect2">
311 <a name="g-function-info-invoke"></a><h3>g_function_info_invoke ()</h3>
312 <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>,
313 <em class="parameter"><code>const <span class="type">GIArgument</span> *in_args</code></em>,
314 <em class="parameter"><code><span class="type">int</span> n_in_args</code></em>,
315 <em class="parameter"><code>const <span class="type">GIArgument</span> *out_args</code></em>,
316 <em class="parameter"><code><span class="type">int</span> n_out_args</code></em>,
317 <em class="parameter"><code><span class="type">GIArgument</span> *return_value</code></em>,
318 <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
320 Invokes the function described in <em class="parameter"><code>info</code></em> with the given
321 arguments. Note that inout parameters must appear in both
322 argument lists. This function uses <code class="function">dlsym()</code> to obtain a pointer
323 to the function, so the library or shared object containing the
324 described function must either be linked to the caller, or must
325 have been <code class="function">g_module_symbol()</code>ed before calling this function.
327 <div class="variablelist"><table border="0" class="variablelist">
329 <col align="left" valign="top">
334 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
335 <td>a <a class="link" href="gi-GIFunctionInfo.html#GIFunctionInfo" title="GIFunctionInfo"><span class="type">GIFunctionInfo</span></a> describing the function to invoke</td>
338 <td><p><span class="term"><em class="parameter"><code>in_args</code></em> :</span></p></td>
339 <td>an array of <span class="type">GIArgument</span>s, one for each in
340 parameter of <em class="parameter"><code>info</code></em>. If there are no in parameter, <em class="parameter"><code>in_args</code></em>
341 can be <code class="literal">NULL</code>
345 <td><p><span class="term"><em class="parameter"><code>n_in_args</code></em> :</span></p></td>
346 <td>the length of the <em class="parameter"><code>in_args</code></em> array</td>
349 <td><p><span class="term"><em class="parameter"><code>out_args</code></em> :</span></p></td>
350 <td>an array of <span class="type">GIArgument</span>s, one for each out
351 parameter of <em class="parameter"><code>info</code></em>. If there are no out parameters, <em class="parameter"><code>out_args</code></em>
352 may be <code class="literal">NULL</code>
356 <td><p><span class="term"><em class="parameter"><code>n_out_args</code></em> :</span></p></td>
357 <td>the length of the <em class="parameter"><code>out_args</code></em> array</td>
360 <td><p><span class="term"><em class="parameter"><code>return_value</code></em> :</span></p></td>
361 <td>return location for the return value of the
362 function. If the function returns void, <em class="parameter"><code>return_value</code></em> may be
363 <code class="literal">NULL</code>
367 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
368 <td>return location for detailed error information, or <code class="literal">NULL</code>
372 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
374 <code class="literal">TRUE</code> if the function has been invoked, <code class="literal">FALSE</code> if an
384 Generated by GTK-Doc V1.18.1</div>