~ubuntu-branches/debian/squeeze/glib2.0/squeeze

« back to all changes in this revision

Viewing changes to docs/reference/gobject/xml/gtypeplugin.xml

  • Committer: Bazaar Package Importer
  • Author(s): Gustavo Noronha Silva
  • Date: 2009-02-15 13:00:43 UTC
  • mfrom: (1.3.1 upstream) (69.1.10 intrepid)
  • Revision ID: james.westby@ubuntu.com-20090215130043-q47fbt3owmt42m2f
Tags: 2.18.4-2
* Release to unstable
* debian/rules:
- bump SHVER, since we are already forcing a 2.18.0 dependecy on the
  symbols introduced in the development versions
* debian/control.in:
- added Homepage and Vcs-* control fields

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
<refentry id="GTypePlugin">
2
2
<refmeta>
3
 
<refentrytitle role="top_of_page">GTypePlugin</refentrytitle>
 
3
<refentrytitle role="top_of_page" id="GTypePlugin.top_of_page">GTypePlugin</refentrytitle>
4
4
<manvolnum>3</manvolnum>
5
5
<refmiscinfo>GOBJECT Library</refmiscinfo>
6
6
</refmeta>
8
8
<refnamediv>
9
9
<refname>GTypePlugin</refname>
10
10
<refpurpose>An interface for dynamically loadable types</refpurpose>
11
 
<!--[<xref linkend="desc" endterm="desc.title"/>]-->
12
11
</refnamediv>
13
12
 
14
 
<refsynopsisdiv role="synopsis">
 
13
<refsynopsisdiv id="GTypePlugin.synopsis" role="synopsis">
15
14
<title role="synopsis.title">Synopsis</title>
16
15
 
17
16
<synopsis>
18
17
 
19
18
#include &lt;glib-object.h&gt;
20
19
 
21
 
 
22
20
                    <link linkend="GTypePlugin-struct">GTypePlugin</link>;
23
21
                    <link linkend="GTypePluginClass">GTypePluginClass</link>;
24
22
<link linkend="void">void</link>                (<link linkend="GTypePluginUse">*GTypePluginUse</link>)                   (<link linkend="GTypePlugin">GTypePlugin</link> *plugin);
42
40
                                                         <link linkend="GType">GType</link> instance_type,
43
41
                                                         <link linkend="GType">GType</link> interface_type,
44
42
                                                         <link linkend="GInterfaceInfo">GInterfaceInfo</link> *info);
45
 
 
46
43
</synopsis>
47
44
</refsynopsisdiv>
48
45
 
49
 
<refsect1 role="object_hierarchy">
 
46
<refsect1 id="GTypePlugin.object-hierarchy" role="object_hierarchy">
50
47
<title role="object_hierarchy.title">Object Hierarchy</title>
51
48
<synopsis>
52
 
 
53
49
  <link linkend="GInterface">GInterface</link>
54
50
   +----GTypePlugin
55
51
</synopsis>
56
 
 
57
52
</refsect1>
58
53
 
59
54
 
60
55
 
61
56
 
62
 
<refsect1 role="implementations">
 
57
<refsect1 id="GTypePlugin.implementations" role="implementations">
63
58
<title role="implementations.title">Known Implementations</title>
64
59
<para>
65
60
GTypePlugin is implemented by
66
61
 <link linkend="GTypeModule">GTypeModule</link>.</para>
67
 
 
68
62
</refsect1>
69
63
 
70
64
 
71
65
 
72
66
 
73
 
<refsect1 role="desc">
 
67
<refsect1 id="GTypePlugin.description" role="desc">
74
68
<title role="desc.title">Description</title>
75
69
<para>
76
 
The GObject type system supports dynamic loading of types. The <link linkend="GTypePlugin"><type>GTypePlugin</type></link> 
77
 
interface is used to handle the lifecycle of dynamically loaded types. 
78
 
It goes as follows:
 
70
The GObject type system supports dynamic loading of types. The
 
71
<link linkend="GTypePlugin"><type>GTypePlugin</type></link> interface is used to handle the lifecycle of
 
72
dynamically loaded types.  It goes as follows:
79
73
</para>
80
74
<para>
81
75
<orderedlist>
83
77
  The type is initially introduced (usually upon loading the module
84
78
  the first time, or by your main application that knows what modules
85
79
  introduces what types), like this:
86
 
<literal>new_type_id = g_type_register_dynamic (parent_type_id,
 
80
  <informalexample><programlisting>
 
81
  new_type_id = g_type_register_dynamic (parent_type_id,
87
82
                                                "TypeName",
88
83
                                                new_type_plugin,
89
84
                                                type_flags);
90
 
</literal>
 
85
  </programlisting></informalexample>
91
86
  where <literal>new_type_plugin</literal> is an implementation of the
92
87
  <link linkend="GTypePlugin"><type>GTypePlugin</type></link> interface.
93
88
</para></listitem>
94
 
<listitem><para>  
 
89
<listitem><para>
95
90
   The type's implementation is referenced, e.g. through
96
 
   <link linkend="g-type-class-ref"><function>g_type_class_ref()</function></link> or through <link linkend="g-type-create-instance"><function>g_type_create_instance()</function></link> (this is 
97
 
   being called by <link linkend="g-object-new"><function>g_object_new()</function></link>) or through one of the above done on 
 
91
   <link linkend="g-type-class-ref"><function>g_type_class_ref()</function></link> or through <link linkend="g-type-create-instance"><function>g_type_create_instance()</function></link> (this is
 
92
   being called by <link linkend="g-object-new"><function>g_object_new()</function></link>) or through one of the above done on
98
93
   a type derived from <literal>new_type_id</literal>.
99
94
</para></listitem>
100
 
<listitem><para>  
 
95
<listitem><para>
101
96
   This causes the type system to load the type's implementation by calling
102
 
   <link linkend="g-type-plugin-use"><function>g_type_plugin_use()</function></link> and <link linkend="g-type-plugin-complete-type-info"><function>g_type_plugin_complete_type_info()</function></link> on 
 
97
   <link linkend="g-type-plugin-use"><function>g_type_plugin_use()</function></link> and <link linkend="g-type-plugin-complete-type-info"><function>g_type_plugin_complete_type_info()</function></link> on
103
98
   <literal>new_type_plugin</literal>.
104
99
</para></listitem>
105
 
<listitem><para>  
 
100
<listitem><para>
106
101
   At some point the type's implementation isn't required anymore, e.g. after
107
102
   <link linkend="g-type-class-unref"><function>g_type_class_unref()</function></link> or <link linkend="g-type-free-instance"><function>g_type_free_instance()</function></link> (called when the reference
108
103
   count of an instance drops to zero).
109
104
</para></listitem>
110
 
<listitem><para>  
 
105
<listitem><para>
111
106
   This causes the type system to throw away the information retrieved from
112
107
   <link linkend="g-type-plugin-complete-type-info"><function>g_type_plugin_complete_type_info()</function></link> and then it calls
113
108
   <link linkend="g-type-plugin-unuse"><function>g_type_plugin_unuse()</function></link> on <literal>new_type_plugin</literal>.
114
109
</para></listitem>
115
 
<listitem><para>  
 
110
<listitem><para>
116
111
   Things may repeat from the second step.
117
112
</para></listitem>
118
113
</orderedlist>
119
114
</para>
120
115
<para>
121
 
So basically, you need to implement a <link linkend="GTypePlugin"><type>GTypePlugin</type></link> type that carries a
122
 
use_count, once use_count goes from zero to one, you need to load the 
123
 
implementation to successfully handle the upcoming 
124
 
<link linkend="g-type-plugin-complete-type-info"><function>g_type_plugin_complete_type_info()</function></link> call. Later, maybe after succeeding 
125
 
use/unuse calls, once use_count drops to zero, you can unload the 
126
 
implementation again. The type system makes sure to call <link linkend="g-type-plugin-use"><function>g_type_plugin_use()</function></link> 
127
 
and <link linkend="g-type-plugin-complete-type-info"><function>g_type_plugin_complete_type_info()</function></link> again when the type is needed again.
 
116
So basically, you need to implement a <link linkend="GTypePlugin"><type>GTypePlugin</type></link> type that
 
117
carries a use_count, once use_count goes from zero to one, you need
 
118
to load the implementation to successfully handle the upcoming
 
119
<link linkend="g-type-plugin-complete-type-info"><function>g_type_plugin_complete_type_info()</function></link> call. Later, maybe after
 
120
succeeding use/unuse calls, once use_count drops to zero, you can
 
121
unload the implementation again. The type system makes sure to call
 
122
<link linkend="g-type-plugin-use"><function>g_type_plugin_use()</function></link> and <link linkend="g-type-plugin-complete-type-info"><function>g_type_plugin_complete_type_info()</function></link> again
 
123
when the type is needed again.
128
124
</para>
129
125
<para>
130
 
<link linkend="GTypeModule"><type>GTypeModule</type></link> is an implementation of <link linkend="GTypePlugin"><type>GTypePlugin</type></link> that already implements 
131
 
most of this except for the actual module loading and unloading. It even 
132
 
handles multiple registered types per module.
 
126
<link linkend="GTypeModule"><type>GTypeModule</type></link> is an implementation of <link linkend="GTypePlugin"><type>GTypePlugin</type></link> that already
 
127
implements most of this except for the actual module loading and
 
128
unloading. It even handles multiple registered types per module.</para>
 
129
<para>
133
130
</para>
134
131
</refsect1>
135
132
 
136
 
<refsect1 role="details">
 
133
<refsect1 id="GTypePlugin.details" role="details">
137
134
<title role="details.title">Details</title>
138
 
<refsect2>
139
 
<title><anchor id="GTypePlugin-struct" role="struct"/>GTypePlugin</title>
140
 
<indexterm><primary>GTypePlugin</primary></indexterm><programlisting>typedef struct _GTypePlugin GTypePlugin;</programlisting>
 
135
<refsect2 id="GTypePlugin-struct" role="struct">
 
136
<title>GTypePlugin</title>
 
137
<indexterm zone="GTypePlugin-struct"><primary sortas="GTypePlugin">GTypePlugin</primary></indexterm><programlisting>typedef struct _GTypePlugin GTypePlugin;</programlisting>
141
138
<para>
142
139
The <structname>GTypePlugin</structname> typedef is used as a placeholder 
143
140
for objects that implement the <structname>GTypePlugin</structname> 
144
 
interface.
 
141
interface.</para>
 
142
<para>
145
143
</para></refsect2>
146
 
<refsect2>
147
 
<title><anchor id="GTypePluginClass" role="struct"/>GTypePluginClass</title>
148
 
<indexterm><primary>GTypePluginClass</primary></indexterm><programlisting>typedef struct {
 
144
<refsect2 id="GTypePluginClass" role="struct">
 
145
<title>GTypePluginClass</title>
 
146
<indexterm zone="GTypePluginClass"><primary sortas="GTypePluginClass">GTypePluginClass</primary></indexterm><programlisting>typedef struct {
149
147
  GTypePluginUse                   use_plugin;
150
148
  GTypePluginUnuse                 unuse_plugin;
151
149
  GTypePluginCompleteTypeInfo      complete_type_info;
154
152
</programlisting>
155
153
<para>
156
154
The <link linkend="GTypePlugin"><type>GTypePlugin</type></link> interface is used by the type system in order to handle
157
 
the lifecycle of dynamically loaded types.
 
155
the lifecycle of dynamically loaded types.</para>
 
156
<para>
158
157
</para><variablelist role="struct">
159
158
<varlistentry>
160
 
<term><link linkend="GTypePluginUse">GTypePluginUse</link>&nbsp;<structfield>use_plugin</structfield>;</term>
161
 
<listitem><simpara>Increases the use count of the plugin.
162
 
</simpara></listitem>
163
 
</varlistentry>
164
 
<varlistentry>
165
 
<term><link linkend="GTypePluginUnuse">GTypePluginUnuse</link>&nbsp;<structfield>unuse_plugin</structfield>;</term>
166
 
<listitem><simpara>Decreases the use count of the plugin.
167
 
</simpara></listitem>
168
 
</varlistentry>
169
 
<varlistentry>
170
 
<term><link linkend="GTypePluginCompleteTypeInfo">GTypePluginCompleteTypeInfo</link>&nbsp;<structfield>complete_type_info</structfield>;</term>
171
 
<listitem><simpara>Fills in the <link linkend="GTypeInfo"><type>GTypeInfo</type></link> and 
172
 
  <link linkend="GTypeValueTable"><type>GTypeValueTable</type></link> structs for the type. The structs are initialized
173
 
  with <literal>memset(s, 0, sizeof (s))</literal> before calling 
174
 
  this function.
175
 
</simpara></listitem>
176
 
</varlistentry>
177
 
<varlistentry>
178
 
<term><link linkend="GTypePluginCompleteInterfaceInfo">GTypePluginCompleteInterfaceInfo</link>&nbsp;<structfield>complete_interface_info</structfield>;</term>
179
 
<listitem><simpara>Fills in missing parts of the <link linkend="GInterfaceInfo"><type>GInterfaceInfo</type></link> 
180
 
  for the interface. The structs is initialized with 
181
 
  <literal>memset(s, 0, sizeof (s))</literal> before calling
182
 
  this function.
183
 
 
 
159
<term><link linkend="GTypePluginUse">GTypePluginUse</link>&#160;<structfield>use_plugin</structfield>;</term>
 
160
<listitem><simpara> Increases the use count of the plugin.
 
161
</simpara></listitem>
 
162
</varlistentry>
 
163
<varlistentry>
 
164
<term><link linkend="GTypePluginUnuse">GTypePluginUnuse</link>&#160;<structfield>unuse_plugin</structfield>;</term>
 
165
<listitem><simpara> Decreases the use count of the plugin.
 
166
</simpara></listitem>
 
167
</varlistentry>
 
168
<varlistentry>
 
169
<term><link linkend="GTypePluginCompleteTypeInfo">GTypePluginCompleteTypeInfo</link>&#160;<structfield>complete_type_info</structfield>;</term>
 
170
<listitem><simpara> Fills in the <link linkend="GTypeInfo"><type>GTypeInfo</type></link> and 
 
171
 <link linkend="GTypeValueTable"><type>GTypeValueTable</type></link> structs for the type. The structs are initialized
 
172
 with <literal>memset(s, 0, sizeof (s))</literal> before calling 
 
173
 this function.
 
174
</simpara></listitem>
 
175
</varlistentry>
 
176
<varlistentry>
 
177
<term><link linkend="GTypePluginCompleteInterfaceInfo">GTypePluginCompleteInterfaceInfo</link>&#160;<structfield>complete_interface_info</structfield>;</term>
 
178
<listitem><simpara> Fills in missing parts of the <link linkend="GInterfaceInfo"><type>GInterfaceInfo</type></link> 
 
179
 for the interface. The structs is initialized with 
 
180
 <literal>memset(s, 0, sizeof (s))</literal> before calling
 
181
 this function.
184
182
</simpara></listitem>
185
183
</varlistentry>
186
184
</variablelist></refsect2>
187
 
<refsect2>
188
 
<title><anchor id="GTypePluginUse" role="function"/>GTypePluginUse ()</title>
189
 
<indexterm><primary>GTypePluginUse</primary></indexterm><programlisting><link linkend="void">void</link>                (*GTypePluginUse)                   (<link linkend="GTypePlugin">GTypePlugin</link> *plugin);</programlisting>
 
185
<refsect2 id="GTypePluginUse" role="function">
 
186
<title>GTypePluginUse ()</title>
 
187
<indexterm zone="GTypePluginUse"><primary sortas="GTypePluginUse">GTypePluginUse</primary></indexterm><programlisting><link linkend="void">void</link>                (*GTypePluginUse)                   (<link linkend="GTypePlugin">GTypePlugin</link> *plugin);</programlisting>
190
188
<para>
191
189
The type of the <parameter>use_plugin</parameter> function of <link linkend="GTypePluginClass"><type>GTypePluginClass</type></link>, which gets called
192
 
to increase the use count of <parameter>plugin</parameter>.
193
 
</para><variablelist role="params">
194
 
<varlistentry><term><parameter>plugin</parameter>&nbsp;:</term>
195
 
<listitem><simpara>the <link linkend="GTypePlugin"><type>GTypePlugin</type></link> whose use count should be increased
196
 
 
197
 
 
198
 
</simpara></listitem></varlistentry>
199
 
</variablelist></refsect2>
200
 
<refsect2>
201
 
<title><anchor id="GTypePluginUnuse" role="function"/>GTypePluginUnuse ()</title>
202
 
<indexterm><primary>GTypePluginUnuse</primary></indexterm><programlisting><link linkend="void">void</link>                (*GTypePluginUnuse)                 (<link linkend="GTypePlugin">GTypePlugin</link> *plugin);</programlisting>
203
 
<para>
204
 
The type of the <parameter>unuse_plugin</parameter> function of <link linkend="GTypePluginClass"><type>GTypePluginClass</type></link>.
205
 
</para><variablelist role="params">
206
 
<varlistentry><term><parameter>plugin</parameter>&nbsp;:</term>
207
 
<listitem><simpara>the <link linkend="GTypePlugin"><type>GTypePlugin</type></link> whose use count should be decreased
208
 
 
209
 
 
210
 
</simpara></listitem></varlistentry>
211
 
</variablelist></refsect2>
212
 
<refsect2>
213
 
<title><anchor id="GTypePluginCompleteTypeInfo" role="function"/>GTypePluginCompleteTypeInfo ()</title>
214
 
<indexterm><primary>GTypePluginCompleteTypeInfo</primary></indexterm><programlisting><link linkend="void">void</link>                (*GTypePluginCompleteTypeInfo)      (<link linkend="GTypePlugin">GTypePlugin</link> *plugin,
 
190
to increase the use count of <parameter>plugin</parameter>.</para>
 
191
<para>
 
192
</para><variablelist role="params">
 
193
<varlistentry><term><parameter>plugin</parameter>&#160;:</term>
 
194
<listitem><simpara> the <link linkend="GTypePlugin"><type>GTypePlugin</type></link> whose use count should be increased
 
195
</simpara></listitem></varlistentry>
 
196
</variablelist></refsect2>
 
197
<refsect2 id="GTypePluginUnuse" role="function">
 
198
<title>GTypePluginUnuse ()</title>
 
199
<indexterm zone="GTypePluginUnuse"><primary sortas="GTypePluginUnuse">GTypePluginUnuse</primary></indexterm><programlisting><link linkend="void">void</link>                (*GTypePluginUnuse)                 (<link linkend="GTypePlugin">GTypePlugin</link> *plugin);</programlisting>
 
200
<para>
 
201
The type of the <parameter>unuse_plugin</parameter> function of <link linkend="GTypePluginClass"><type>GTypePluginClass</type></link>.</para>
 
202
<para>
 
203
</para><variablelist role="params">
 
204
<varlistentry><term><parameter>plugin</parameter>&#160;:</term>
 
205
<listitem><simpara> the <link linkend="GTypePlugin"><type>GTypePlugin</type></link> whose use count should be decreased
 
206
</simpara></listitem></varlistentry>
 
207
</variablelist></refsect2>
 
208
<refsect2 id="GTypePluginCompleteTypeInfo" role="function">
 
209
<title>GTypePluginCompleteTypeInfo ()</title>
 
210
<indexterm zone="GTypePluginCompleteTypeInfo"><primary sortas="GTypePluginCompleteTypeInfo">GTypePluginCompleteTypeInfo</primary></indexterm><programlisting><link linkend="void">void</link>                (*GTypePluginCompleteTypeInfo)      (<link linkend="GTypePlugin">GTypePlugin</link> *plugin,
215
211
                                                         <link linkend="GType">GType</link> g_type,
216
212
                                                         <link linkend="GTypeInfo">GTypeInfo</link> *info,
217
213
                                                         <link linkend="GTypeValueTable">GTypeValueTable</link> *value_table);</programlisting>
218
214
<para>
219
 
The type of the <parameter>complete_type_info</parameter> function of <link linkend="GTypePluginClass"><type>GTypePluginClass</type></link>.
 
215
The type of the <parameter>complete_type_info</parameter> function of <link linkend="GTypePluginClass"><type>GTypePluginClass</type></link>.</para>
 
216
<para>
220
217
</para><variablelist role="params">
221
 
<varlistentry><term><parameter>plugin</parameter>&nbsp;:</term>
222
 
<listitem><simpara>the <link linkend="GTypePlugin"><type>GTypePlugin</type></link>
223
 
</simpara></listitem></varlistentry>
224
 
<varlistentry><term><parameter>g_type</parameter>&nbsp;:</term>
225
 
<listitem><simpara>the <link linkend="GType"><type>GType</type></link> whose info is completed
226
 
</simpara></listitem></varlistentry>
227
 
<varlistentry><term><parameter>info</parameter>&nbsp;:</term>
228
 
<listitem><simpara>the <link linkend="GTypeInfo"><type>GTypeInfo</type></link> struct to fill in
229
 
</simpara></listitem></varlistentry>
230
 
<varlistentry><term><parameter>value_table</parameter>&nbsp;:</term>
231
 
<listitem><simpara>the <link linkend="GTypeValueTable"><type>GTypeValueTable</type></link> to fill in
232
 
 
233
 
 
 
218
<varlistentry><term><parameter>plugin</parameter>&#160;:</term>
 
219
<listitem><simpara> the <link linkend="GTypePlugin"><type>GTypePlugin</type></link>
 
220
</simpara></listitem></varlistentry>
 
221
<varlistentry><term><parameter>g_type</parameter>&#160;:</term>
 
222
<listitem><simpara> the <link linkend="GType"><type>GType</type></link> whose info is completed
 
223
</simpara></listitem></varlistentry>
 
224
<varlistentry><term><parameter>info</parameter>&#160;:</term>
 
225
<listitem><simpara> the <link linkend="GTypeInfo"><type>GTypeInfo</type></link> struct to fill in
 
226
</simpara></listitem></varlistentry>
 
227
<varlistentry><term><parameter>value_table</parameter>&#160;:</term>
 
228
<listitem><simpara> the <link linkend="GTypeValueTable"><type>GTypeValueTable</type></link> to fill in
234
229
</simpara></listitem></varlistentry>
235
230
</variablelist></refsect2>
236
 
<refsect2>
237
 
<title><anchor id="GTypePluginCompleteInterfaceInfo" role="function"/>GTypePluginCompleteInterfaceInfo ()</title>
238
 
<indexterm><primary>GTypePluginCompleteInterfaceInfo</primary></indexterm><programlisting><link linkend="void">void</link>                (*GTypePluginCompleteInterfaceInfo) (<link linkend="GTypePlugin">GTypePlugin</link> *plugin,
 
231
<refsect2 id="GTypePluginCompleteInterfaceInfo" role="function">
 
232
<title>GTypePluginCompleteInterfaceInfo ()</title>
 
233
<indexterm zone="GTypePluginCompleteInterfaceInfo"><primary sortas="GTypePluginCompleteInterfaceInfo">GTypePluginCompleteInterfaceInfo</primary></indexterm><programlisting><link linkend="void">void</link>                (*GTypePluginCompleteInterfaceInfo) (<link linkend="GTypePlugin">GTypePlugin</link> *plugin,
239
234
                                                         <link linkend="GType">GType</link> instance_type,
240
235
                                                         <link linkend="GType">GType</link> interface_type,
241
236
                                                         <link linkend="GInterfaceInfo">GInterfaceInfo</link> *info);</programlisting>
242
237
<para>
243
 
The type of the <parameter>complete_interface_info</parameter> function of <link linkend="GTypePluginClass"><type>GTypePluginClass</type></link>.
244
 
</para><variablelist role="params">
245
 
<varlistentry><term><parameter>plugin</parameter>&nbsp;:</term>
246
 
<listitem><simpara>the <link linkend="GTypePlugin"><type>GTypePlugin</type></link>
247
 
</simpara></listitem></varlistentry>
248
 
<varlistentry><term><parameter>instance_type</parameter>&nbsp;:</term>
249
 
<listitem><simpara>the <link linkend="GType"><type>GType</type></link> of an instantiable type to which the interface
250
 
  is added
251
 
</simpara></listitem></varlistentry>
252
 
<varlistentry><term><parameter>interface_type</parameter>&nbsp;:</term>
253
 
<listitem><simpara>the <link linkend="GType"><type>GType</type></link> of the interface whose info is completed
254
 
</simpara></listitem></varlistentry>
255
 
<varlistentry><term><parameter>info</parameter>&nbsp;:</term>
256
 
<listitem><simpara>the <link linkend="GInterfaceInfo"><type>GInterfaceInfo</type></link> to fill in
257
 
 
258
 
 
259
 
</simpara></listitem></varlistentry>
260
 
</variablelist></refsect2>
261
 
<refsect2>
262
 
<title><anchor id="g-type-plugin-use" role="function"/>g_type_plugin_use ()</title>
263
 
<indexterm><primary>g_type_plugin_use</primary></indexterm><programlisting><link linkend="void">void</link>                g_type_plugin_use                   (<link linkend="GTypePlugin">GTypePlugin</link> *plugin);</programlisting>
264
 
<para>
265
 
Calls the <parameter>use_plugin</parameter> function from the <link linkend="GTypePluginClass"><type>GTypePluginClass</type></link> of <parameter>plugin</parameter>.
266
 
There should be no need to use this function outside of the GObject 
267
 
type system itself.
268
 
</para><variablelist role="params">
269
 
<varlistentry><term><parameter>plugin</parameter>&nbsp;:</term>
270
 
<listitem><simpara>a <link linkend="GTypePlugin"><type>GTypePlugin</type></link>
271
 
 
272
 
 
273
 
</simpara></listitem></varlistentry>
274
 
</variablelist></refsect2>
275
 
<refsect2>
276
 
<title><anchor id="g-type-plugin-unuse" role="function"/>g_type_plugin_unuse ()</title>
277
 
<indexterm><primary>g_type_plugin_unuse</primary></indexterm><programlisting><link linkend="void">void</link>                g_type_plugin_unuse                 (<link linkend="GTypePlugin">GTypePlugin</link> *plugin);</programlisting>
278
 
<para>
279
 
Calls the <parameter>unuse_plugin</parameter> function from the <link linkend="GTypePluginClass"><type>GTypePluginClass</type></link> of <parameter>plugin</parameter>.
280
 
There should be no need to use this function outside of the GObject 
281
 
type system itself.
282
 
</para><variablelist role="params">
283
 
<varlistentry><term><parameter>plugin</parameter>&nbsp;:</term>
284
 
<listitem><simpara>a <link linkend="GTypePlugin"><type>GTypePlugin</type></link>
285
 
 
286
 
 
287
 
</simpara></listitem></varlistentry>
288
 
</variablelist></refsect2>
289
 
<refsect2>
290
 
<title><anchor id="g-type-plugin-complete-type-info" role="function"/>g_type_plugin_complete_type_info ()</title>
291
 
<indexterm><primary>g_type_plugin_complete_type_info</primary></indexterm><programlisting><link linkend="void">void</link>                g_type_plugin_complete_type_info    (<link linkend="GTypePlugin">GTypePlugin</link> *plugin,
 
238
The type of the <parameter>complete_interface_info</parameter> function of <link linkend="GTypePluginClass"><type>GTypePluginClass</type></link>.</para>
 
239
<para>
 
240
</para><variablelist role="params">
 
241
<varlistentry><term><parameter>plugin</parameter>&#160;:</term>
 
242
<listitem><simpara> the <link linkend="GTypePlugin"><type>GTypePlugin</type></link>
 
243
</simpara></listitem></varlistentry>
 
244
<varlistentry><term><parameter>instance_type</parameter>&#160;:</term>
 
245
<listitem><simpara> the <link linkend="GType"><type>GType</type></link> of an instantiable type to which the interface
 
246
 is added
 
247
</simpara></listitem></varlistentry>
 
248
<varlistentry><term><parameter>interface_type</parameter>&#160;:</term>
 
249
<listitem><simpara> the <link linkend="GType"><type>GType</type></link> of the interface whose info is completed
 
250
</simpara></listitem></varlistentry>
 
251
<varlistentry><term><parameter>info</parameter>&#160;:</term>
 
252
<listitem><simpara> the <link linkend="GInterfaceInfo"><type>GInterfaceInfo</type></link> to fill in
 
253
</simpara></listitem></varlistentry>
 
254
</variablelist></refsect2>
 
255
<refsect2 id="g-type-plugin-use" role="function">
 
256
<title>g_type_plugin_use ()</title>
 
257
<indexterm zone="g-type-plugin-use"><primary sortas="g_type_plugin_use">g_type_plugin_use</primary></indexterm><programlisting><link linkend="void">void</link>                g_type_plugin_use                   (<link linkend="GTypePlugin">GTypePlugin</link> *plugin);</programlisting>
 
258
<para>
 
259
Calls the <parameter>use_plugin</parameter> function from the <link linkend="GTypePluginClass"><type>GTypePluginClass</type></link> of
 
260
<parameter>plugin</parameter>.  There should be no need to use this function outside of
 
261
the GObject type system itself.</para>
 
262
<para>
 
263
</para><variablelist role="params">
 
264
<varlistentry><term><parameter>plugin</parameter>&#160;:</term>
 
265
<listitem><simpara> a <link linkend="GTypePlugin"><type>GTypePlugin</type></link>
 
266
</simpara></listitem></varlistentry>
 
267
</variablelist></refsect2>
 
268
<refsect2 id="g-type-plugin-unuse" role="function">
 
269
<title>g_type_plugin_unuse ()</title>
 
270
<indexterm zone="g-type-plugin-unuse"><primary sortas="g_type_plugin_unuse">g_type_plugin_unuse</primary></indexterm><programlisting><link linkend="void">void</link>                g_type_plugin_unuse                 (<link linkend="GTypePlugin">GTypePlugin</link> *plugin);</programlisting>
 
271
<para>
 
272
Calls the <parameter>unuse_plugin</parameter> function from the <link linkend="GTypePluginClass"><type>GTypePluginClass</type></link> of
 
273
<parameter>plugin</parameter>.  There should be no need to use this function outside of
 
274
the GObject type system itself.</para>
 
275
<para>
 
276
</para><variablelist role="params">
 
277
<varlistentry><term><parameter>plugin</parameter>&#160;:</term>
 
278
<listitem><simpara> a <link linkend="GTypePlugin"><type>GTypePlugin</type></link>
 
279
</simpara></listitem></varlistentry>
 
280
</variablelist></refsect2>
 
281
<refsect2 id="g-type-plugin-complete-type-info" role="function">
 
282
<title>g_type_plugin_complete_type_info ()</title>
 
283
<indexterm zone="g-type-plugin-complete-type-info"><primary sortas="g_type_plugin_complete_type_info">g_type_plugin_complete_type_info</primary></indexterm><programlisting><link linkend="void">void</link>                g_type_plugin_complete_type_info    (<link linkend="GTypePlugin">GTypePlugin</link> *plugin,
292
284
                                                         <link linkend="GType">GType</link> g_type,
293
285
                                                         <link linkend="GTypeInfo">GTypeInfo</link> *info,
294
286
                                                         <link linkend="GTypeValueTable">GTypeValueTable</link> *value_table);</programlisting>
295
287
<para>
296
288
Calls the <parameter>complete_type_info</parameter> function from the <link linkend="GTypePluginClass"><type>GTypePluginClass</type></link> of <parameter>plugin</parameter>.
297
289
There should be no need to use this function outside of the GObject 
298
 
type system itself.
 
290
type system itself.</para>
 
291
<para>
299
292
</para><variablelist role="params">
300
 
<varlistentry><term><parameter>plugin</parameter>&nbsp;:</term>
301
 
<listitem><simpara>a <link linkend="GTypePlugin"><type>GTypePlugin</type></link>
302
 
</simpara></listitem></varlistentry>
303
 
<varlistentry><term><parameter>g_type</parameter>&nbsp;:</term>
304
 
<listitem><simpara>the <link linkend="GType"><type>GType</type></link> whose info is completed
305
 
</simpara></listitem></varlistentry>
306
 
<varlistentry><term><parameter>info</parameter>&nbsp;:</term>
307
 
<listitem><simpara>the <link linkend="GTypeInfo"><type>GTypeInfo</type></link> struct to fill in
308
 
</simpara></listitem></varlistentry>
309
 
<varlistentry><term><parameter>value_table</parameter>&nbsp;:</term>
310
 
<listitem><simpara>the <link linkend="GTypeValueTable"><type>GTypeValueTable</type></link> to fill in
311
 
 
312
 
 
 
293
<varlistentry><term><parameter>plugin</parameter>&#160;:</term>
 
294
<listitem><simpara> a <link linkend="GTypePlugin"><type>GTypePlugin</type></link>
 
295
</simpara></listitem></varlistentry>
 
296
<varlistentry><term><parameter>g_type</parameter>&#160;:</term>
 
297
<listitem><simpara> the <link linkend="GType"><type>GType</type></link> whose info is completed
 
298
</simpara></listitem></varlistentry>
 
299
<varlistentry><term><parameter>info</parameter>&#160;:</term>
 
300
<listitem><simpara> the <link linkend="GTypeInfo"><type>GTypeInfo</type></link> struct to fill in
 
301
</simpara></listitem></varlistentry>
 
302
<varlistentry><term><parameter>value_table</parameter>&#160;:</term>
 
303
<listitem><simpara> the <link linkend="GTypeValueTable"><type>GTypeValueTable</type></link> to fill in
313
304
</simpara></listitem></varlistentry>
314
305
</variablelist></refsect2>
315
 
<refsect2>
316
 
<title><anchor id="g-type-plugin-complete-interface-info" role="function"/>g_type_plugin_complete_interface_info ()</title>
317
 
<indexterm><primary>g_type_plugin_complete_interface_info</primary></indexterm><programlisting><link linkend="void">void</link>                g_type_plugin_complete_interface_info
 
306
<refsect2 id="g-type-plugin-complete-interface-info" role="function">
 
307
<title>g_type_plugin_complete_interface_info ()</title>
 
308
<indexterm zone="g-type-plugin-complete-interface-info"><primary sortas="g_type_plugin_complete_interface_info">g_type_plugin_complete_interface_info</primary></indexterm><programlisting><link linkend="void">void</link>                g_type_plugin_complete_interface_info
318
309
                                                        (<link linkend="GTypePlugin">GTypePlugin</link> *plugin,
319
310
                                                         <link linkend="GType">GType</link> instance_type,
320
311
                                                         <link linkend="GType">GType</link> interface_type,
321
312
                                                         <link linkend="GInterfaceInfo">GInterfaceInfo</link> *info);</programlisting>
322
313
<para>
323
 
Calls the <parameter>complete_interface_info</parameter> function from the <link linkend="GTypePluginClass"><type>GTypePluginClass</type></link> 
324
 
of <parameter>plugin</parameter>. There should be no need to use this function outside of the 
325
 
GObject type system itself.
 
314
Calls the <parameter>complete_interface_info</parameter> function from the
 
315
<link linkend="GTypePluginClass"><type>GTypePluginClass</type></link> of <parameter>plugin</parameter>. There should be no need to use this
 
316
function outside of the GObject type system itself.</para>
 
317
<para>
326
318
</para><variablelist role="params">
327
 
<varlistentry><term><parameter>plugin</parameter>&nbsp;:</term>
328
 
<listitem><simpara>the <link linkend="GTypePlugin"><type>GTypePlugin</type></link>
329
 
</simpara></listitem></varlistentry>
330
 
<varlistentry><term><parameter>instance_type</parameter>&nbsp;:</term>
331
 
<listitem><simpara>the <link linkend="GType"><type>GType</type></link> of an instantiable type to which the interface
332
 
  is added
333
 
</simpara></listitem></varlistentry>
334
 
<varlistentry><term><parameter>interface_type</parameter>&nbsp;:</term>
335
 
<listitem><simpara>the <link linkend="GType"><type>GType</type></link> of the interface whose info is completed
336
 
</simpara></listitem></varlistentry>
337
 
<varlistentry><term><parameter>info</parameter>&nbsp;:</term>
338
 
<listitem><simpara>the <link linkend="GInterfaceInfo"><type>GInterfaceInfo</type></link> to fill in
339
 
 
340
 
 
 
319
<varlistentry><term><parameter>plugin</parameter>&#160;:</term>
 
320
<listitem><simpara> the <link linkend="GTypePlugin"><type>GTypePlugin</type></link>
 
321
</simpara></listitem></varlistentry>
 
322
<varlistentry><term><parameter>instance_type</parameter>&#160;:</term>
 
323
<listitem><simpara> the <link linkend="GType"><type>GType</type></link> of an instantiable type to which the interface
 
324
 is added
 
325
</simpara></listitem></varlistentry>
 
326
<varlistentry><term><parameter>interface_type</parameter>&#160;:</term>
 
327
<listitem><simpara> the <link linkend="GType"><type>GType</type></link> of the interface whose info is completed
 
328
</simpara></listitem></varlistentry>
 
329
<varlistentry><term><parameter>info</parameter>&#160;:</term>
 
330
<listitem><simpara> the <link linkend="GInterfaceInfo"><type>GInterfaceInfo</type></link> to fill in
341
331
</simpara></listitem></varlistentry>
342
332
</variablelist></refsect2>
343
333
 
345
335
 
346
336
 
347
337
 
348
 
<refsect1>
 
338
<refsect1 id="GTypePlugin.see-also">
349
339
<title>See Also</title>
350
 
<para>
351
 
<link linkend="GTypeModule"><type>GTypeModule</type></link> and <link linkend="g-type-register-dynamic"><function>g_type_register_dynamic()</function></link>.
352
 
</para>
 
340
#GTypeModule and <link linkend="g-type-register-dynamic"><function>g_type_register_dynamic()</function></link>.
353
341
</refsect1>
354
342
 
355
 
 
356
 
<refsect1><refsect2 /><refsect2 /></refsect1>
357
343
</refentry>