~ubuntu-branches/ubuntu/quantal/libbonobo/quantal-201207170711

« back to all changes in this revision

Viewing changes to doc/api/sgml/bonobo-object.sgml

  • Committer: Bazaar Package Importer
  • Author(s): Sebastien Bacher
  • Date: 2005-02-18 14:40:51 UTC
  • mto: (3.1.1 etch) (1.1.25 upstream)
  • mto: This revision was merged to the branch mainline in revision 3.
  • Revision ID: james.westby@ubuntu.com-20050218144051-fo4h9qh2gim8x3wt
Tags: upstream-2.8.1
ImportĀ upstreamĀ versionĀ 2.8.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<refentry id="libbonobo-bonobo-object">
2
 
<refmeta>
3
 
<refentrytitle>BonoboObject</refentrytitle>
4
 
<manvolnum>3</manvolnum>
5
 
<refmiscinfo>LIBBONOBO Library</refmiscinfo>
6
 
</refmeta>
7
 
 
8
 
<refnamediv>
9
 
<refname>BonoboObject</refname><refpurpose>Base object for wrapping Bonobo::Unknown derived objects.</refpurpose>
10
 
</refnamediv>
11
 
 
12
 
<refsynopsisdiv><title>Synopsis</title>
13
 
<synopsis>
14
 
 
15
 
 
16
 
 
17
 
#define     <link linkend="BONOBO-OBJECT-TYPE-CAPS">BONOBO_OBJECT_TYPE</link>
18
 
#define     <link linkend="BONOBO-OBJREF-CAPS">BONOBO_OBJREF</link>                   (o)
19
 
void        (<link linkend="BonoboObjectPOAFn">*BonoboObjectPOAFn</link>)            (<link linkend="PortableServer-Servant">PortableServer_Servant</link> servant,
20
 
                                             <link linkend="CORBA-Environment">CORBA_Environment</link> *ev);
21
 
struct      <link linkend="BonoboObjectPrivate">BonoboObjectPrivate</link>;
22
 
typedef     <link linkend="BonoboObjectHeader">BonoboObjectHeader</link>;
23
 
#define     <link linkend="BONOBO-OBJECT-HEADER-SIZE-CAPS">BONOBO_OBJECT_HEADER_SIZE</link>
24
 
#define     <link linkend="BONOBO-OBJECT-SIGNATURE-CAPS">BONOBO_OBJECT_SIGNATURE</link>
25
 
#define     <link linkend="BONOBO-SERVANT-SIGNATURE-CAPS">BONOBO_SERVANT_SIGNATURE</link>
26
 
typedef     <link linkend="BonoboObject">BonoboObject</link>;
27
 
typedef     <link linkend="BonoboObjectClass">BonoboObjectClass</link>;
28
 
void        <link linkend="bonobo-object-add-interface">bonobo_object_add_interface</link>     (<link linkend="BonoboObject">BonoboObject</link> *object,
29
 
                                             <link linkend="BonoboObject">BonoboObject</link> *newobj);
30
 
<link linkend="BonoboObject">BonoboObject</link>* <link linkend="bonobo-object-query-local-interface">bonobo_object_query_local_interface</link>
31
 
                                            (<link linkend="BonoboObject">BonoboObject</link> *object,
32
 
                                             const char *repo_id);
33
 
<link linkend="Bonobo-Unknown">Bonobo_Unknown</link> <link linkend="bonobo-object-query-interface">bonobo_object_query_interface</link>
34
 
                                            (<link linkend="BonoboObject">BonoboObject</link> *object,
35
 
                                             const char *repo_id,
36
 
                                             <link linkend="CORBA-Environment">CORBA_Environment</link> *opt_ev);
37
 
<link linkend="Bonobo-Unknown">Bonobo_Unknown</link> <link linkend="bonobo-object-corba-objref">bonobo_object_corba_objref</link>   (<link linkend="BonoboObject">BonoboObject</link> *object);
38
 
<link linkend="Bonobo-Unknown">Bonobo_Unknown</link> <link linkend="bonobo-object-dup-ref">bonobo_object_dup_ref</link>        (<link linkend="Bonobo-Unknown">Bonobo_Unknown</link> object,
39
 
                                             <link linkend="CORBA-Environment">CORBA_Environment</link> *opt_ev);
40
 
<link linkend="Bonobo-Unknown">Bonobo_Unknown</link> <link linkend="bonobo-object-release-unref">bonobo_object_release_unref</link>  (<link linkend="Bonobo-Unknown">Bonobo_Unknown</link> object,
41
 
                                             <link linkend="CORBA-Environment">CORBA_Environment</link> *opt_ev);
42
 
<link linkend="gpointer">gpointer</link>    <link linkend="bonobo-object-ref">bonobo_object_ref</link>               (<link linkend="gpointer">gpointer</link> obj);
43
 
void        <link linkend="bonobo-object-idle-unref">bonobo_object_idle_unref</link>        (<link linkend="gpointer">gpointer</link> obj);
44
 
<link linkend="gpointer">gpointer</link>    <link linkend="bonobo-object-unref">bonobo_object_unref</link>             (<link linkend="gpointer">gpointer</link> obj);
45
 
void        <link linkend="bonobo-object-set-immortal">bonobo_object_set_immortal</link>      (<link linkend="BonoboObject">BonoboObject</link> *object,
46
 
                                             <link linkend="gboolean">gboolean</link> immortal);
47
 
<link linkend="gpointer">gpointer</link>    <link linkend="bonobo-object-trace-refs">bonobo_object_trace_refs</link>        (<link linkend="gpointer">gpointer</link> obj,
48
 
                                             const char *fn,
49
 
                                             int line,
50
 
                                             <link linkend="gboolean">gboolean</link> ref);
51
 
void        <link linkend="bonobo-object-dump-interfaces">bonobo_object_dump_interfaces</link>   (<link linkend="BonoboObject">BonoboObject</link> *object);
52
 
void        <link linkend="bonobo-object-check-env">bonobo_object_check_env</link>         (<link linkend="BonoboObject">BonoboObject</link> *object,
53
 
                                             <link linkend="CORBA-Object">CORBA_Object</link> corba_object,
54
 
                                             <link linkend="CORBA-Environment">CORBA_Environment</link> *ev);
55
 
#define     <link linkend="BONOBO-OBJECT-CHECK-CAPS">BONOBO_OBJECT_CHECK</link>             (o,c,e)
56
 
<link linkend="gboolean">gboolean</link>    <link linkend="bonobo-unknown-ping">bonobo_unknown_ping</link>             (<link linkend="Bonobo-Unknown">Bonobo_Unknown</link> object,
57
 
                                             <link linkend="CORBA-Environment">CORBA_Environment</link> *opt_ev);
58
 
void        <link linkend="bonobo-object-list-unref-all">bonobo_object_list_unref_all</link>    (<link linkend="GList">GList</link> **list);
59
 
void        <link linkend="bonobo-object-slist-unref-all">bonobo_object_slist_unref_all</link>   (<link linkend="GSList">GSList</link> **list);
60
 
<link linkend="BonoboObject">BonoboObject</link>* <link linkend="bonobo-object">bonobo_object</link>                 (<link linkend="gpointer">gpointer</link> p);
61
 
#define     <link linkend="bonobo-object-fast">bonobo_object_fast</link>              (o)
62
 
#define     <link linkend="bonobo-object-from-servant">bonobo_object_from_servant</link>      (s)
63
 
#define     <link linkend="bonobo-object-get-servant">bonobo_object_get_servant</link>       (o)
64
 
<link linkend="GType">GType</link>       <link linkend="bonobo-type-unique">bonobo_type_unique</link>              (<link linkend="GType">GType</link> parent_type,
65
 
                                             <link linkend="BonoboObjectPOAFn">BonoboObjectPOAFn</link> init_fn,
66
 
                                             <link linkend="BonoboObjectPOAFn">BonoboObjectPOAFn</link> fini_fn,
67
 
                                             int epv_struct_offset,
68
 
                                             const <link linkend="GTypeInfo">GTypeInfo</link> *info,
69
 
                                             const <link linkend="gchar">gchar</link> *type_name);
70
 
<link linkend="gboolean">gboolean</link>    <link linkend="bonobo-type-setup">bonobo_type_setup</link>               (<link linkend="GType">GType</link> type,
71
 
                                             <link linkend="BonoboObjectPOAFn">BonoboObjectPOAFn</link> init_fn,
72
 
                                             <link linkend="BonoboObjectPOAFn">BonoboObjectPOAFn</link> fini_fn,
73
 
                                             int epv_struct_offset);
74
 
#define     <link linkend="BONOBO-TYPE-FUNC-FULL-CAPS">BONOBO_TYPE_FUNC_FULL</link>           (class_name, corba_name, parent, prefix)
75
 
#define     <link linkend="BONOBO-TYPE-FUNC-CAPS">BONOBO_TYPE_FUNC</link>                (class_name, parent, prefix)
76
 
 
77
 
</synopsis>
78
 
</refsynopsisdiv>
79
 
 
80
 
 
81
 
 
82
 
 
83
 
 
84
 
<refsect1>
85
 
<title>Description</title>
86
 
 
87
 
<para>
88
 
  BonoboObject provides an easy to use way of writing CORBA servers. It
89
 
  drastically simplifies the issues of epv and vepv construction by
90
 
  automating these, and automatically instantiates a CORBA_Object on
91
 
  g_object_new. This removes clutter from construction time. For
92
 
  libbonobo-2.0, it strongly deprecates <link linkend="BonoboXObject">BonoboXObject</link>.
93
 
</para>
94
 
 
95
 
<para>
96
 
  Again if you are looking to implement a CORBA interface you want to 
97
 
see <link linkend="BonoboXObject">BonoboXObject</link>.
98
 
</para>
99
 
 
100
 
<para>
101
 
  The <classname>Bonobo::Unknown</classname> interface (wrapped by
102
 
  BonoboObject) is the foundation for the component system: it provides
103
 
  life cycle management for objects as well as service discovery.
104
 
</para>
105
 
 
106
 
<para>
107
 
  The Bonobo interfaces are all based on the
108
 
  <classname>Bonobo::Unknown</classname> interface.  This
109
 
  interface is very simple and provides two basic services:
110
 
  object lifetime management and object
111
 
  functionality-discovery.   This interface only contains three
112
 
  methods, here it is:
113
 
 
114
 
  <programlisting>
115
 
  module Bonobo {
116
 
      interface Unknown {
117
 
          void void <link linkend="ref">ref</link>();
118
 
          void void <link linkend="unref">unref</link>();
119
 
          Object query_interface (in string repoid);
120
 
      };
121
 
  };
122
 
  </programlisting>
123
 
</para>
124
 
 
125
 
<para>
126
 
  The <function><link linkend="ref">ref</link>()</function> and <function><link linkend="unref">unref</link>()</function>
127
 
  methods are used to control the lifetime of an object.  The
128
 
  <function>query_interface</function> method is used to discover
129
 
  optional functionality provided by the object implementation.
130
 
</para>
131
 
 
132
 
<para>
133
 
  The lifetime management is based on reference counting: when a
134
 
  component is initially launched, it starts life with a reference
135
 
  count of one.  This reference is held by the component invoker.
136
 
  Each time a reference is kept to this object (say, you store a
137
 
  copy of the object in an array), the reference count is
138
 
  incremented.  Every time a reference goes out of scope, the
139
 
  reference count needs to be decremented.  When the reference
140
 
  count reaches zero, the component knows that there are no
141
 
  outstanding references to it, and it is safe to shutdown.  At
142
 
  this point, the component shuts down.
143
 
</para>
144
 
 
145
 
<para>
146
 
  It is possible to ask an object which implements the
147
 
  <classname>Bonobo::Unknown</classname> interface if it supports
148
 
  other CORBA interfaces.  For example, it would be possible to
149
 
  ask an object whether it supports the
150
 
  "IDL:Bonobo/EmbeddablePrint:1.0" interface to find out if it is
151
 
  possible to print its contents.  If the return value from
152
 
  invoking the <function>query_interface</function> method on the
153
 
  interface is CORBA_OBJECT_NIL, then we know that the requested interface
154
 
  is not supported.  Otherwise, we can invoke
155
 
  IDL:Bonobo/EmbeddablePrint:1.0 methods on the returned CORBA
156
 
  Object.
157
 
</para>
158
 
 
159
 
<para>
160
 
  Clients of the <function>query_interface</function> method use
161
 
  it to discover dynamically if a component supports a given
162
 
  interface.  Sometimes the client code would require a specific
163
 
  interface to exist, but many times it is possible to operate in
164
 
  a "downgraded" mode.  You should design your code to be able to
165
 
  cope with the lack of interfaces in objects.  This will allow
166
 
  your program to deal with more components, and this also allows
167
 
  components to work in more situations.
168
 
</para>
169
 
 
170
 
<para>
171
 
  For example, a help browser can load an HTML renderer component and
172
 
  ask this component which sort of features are supported by it:
173
 
  <programlisting>
174
 
stop_animations (BrowserHTML html)
175
 
{
176
 
  BrowserControl control
177
 
 
178
 
  control = html->query_interface ("IDL:Browser/Control:1.0");
179
 
  if (control)
180
 
          control-><link linkend="stop-animations">stop_animations</link>();
181
 
}
182
 
  </programlisting>
183
 
</para>
184
 
 
185
 
<para>
186
 
  The return value of the query_interface invocation contains a
187
 
  reference to a CORBA object that is derived from the
188
 
  <classname>Bonobo::Unknown</classname> interface or
189
 
  CORBA_OBJECT_NIL if the interface is not supported by the
190
 
  object.  And this interface would have been already
191
 
  <function><link linkend="ref">ref</link>()</function>ed before it was returned.  It is up
192
 
  to the caller to call <function><link linkend="unref">unref</link>()</function> when they are
193
 
  done using the interface.
194
 
</para>
195
 
 
196
 
<para>
197
 
  BonoboObject implements the Bonobo::Unknown interface and exports the
198
 
  implementations of the methods in this class to simplify creating
199
 
  new objects that inherit from Bonobo::Unknown.  This base object
200
 
  provides default implementations for the ref, unref and
201
 
  query_interface methods.
202
 
</para>
203
 
 
204
 
<para>
205
 
  Other implementations reuse this implementation by listing on their
206
 
  VEPV tables the bonobo_object_epv entry point vector.
207
 
</para>
208
 
 
209
 
<para>
210
 
  The <classname>Bonobo::Unknown</classname> interface is inspired
211
 
  by the Microsoft COM <classname>IUnknown</classname> interface
212
 
  but it has been translated into the CORBA world.
213
 
</para>
214
 
</refsect1>
215
 
 
216
 
<refsect1>
217
 
<title>Details</title>
218
 
<refsect2>
219
 
<title><anchor id="BONOBO-OBJECT-TYPE-CAPS">BONOBO_OBJECT_TYPE</title>
220
 
<programlisting>#define BONOBO_OBJECT_TYPE        BONOBO_TYPE_OBJECT /* deprecated, you should use BONOBO_TYPE_OBJECT */
221
 
</programlisting>
222
 
<para>
223
 
Returns the <link linkend="GtkType">GtkType</link> for the BonoboObject object.
224
 
</para></refsect2>
225
 
<refsect2>
226
 
<title><anchor id="BONOBO-OBJREF-CAPS">BONOBO_OBJREF()</title>
227
 
<programlisting>#define BONOBO_OBJREF(o)          (bonobo_object_corba_objref(BONOBO_OBJECT(o)))
228
 
</programlisting>
229
 
<para>
230
 
 
231
 
</para><informaltable pgwide="1" frame="none" role="params">
232
 
<tgroup cols="2">
233
 
<colspec colwidth="2*">
234
 
<colspec colwidth="8*">
235
 
<tbody>
236
 
<row><entry align="right"><parameter>o</parameter>&nbsp;:</entry>
237
 
<entry>
238
 
 
239
 
 
240
 
</entry></row>
241
 
</tbody></tgroup></informaltable></refsect2>
242
 
<refsect2>
243
 
<title><anchor id="BonoboObjectPOAFn">BonoboObjectPOAFn ()</title>
244
 
<programlisting>void        (*BonoboObjectPOAFn)            (<link linkend="PortableServer-Servant">PortableServer_Servant</link> servant,
245
 
                                             <link linkend="CORBA-Environment">CORBA_Environment</link> *ev);</programlisting>
246
 
<para>
247
 
 
248
 
</para><informaltable pgwide="1" frame="none" role="params">
249
 
<tgroup cols="2">
250
 
<colspec colwidth="2*">
251
 
<colspec colwidth="8*">
252
 
<tbody>
253
 
<row><entry align="right"><parameter>servant</parameter>&nbsp;:</entry>
254
 
<entry>
255
 
</entry></row>
256
 
<row><entry align="right"><parameter>ev</parameter>&nbsp;:</entry>
257
 
<entry>
258
 
 
259
 
 
260
 
</entry></row>
261
 
</tbody></tgroup></informaltable></refsect2>
262
 
<refsect2>
263
 
<title><anchor id="BonoboObjectPrivate">struct BonoboObjectPrivate</title>
264
 
<programlisting>struct BonoboObjectPrivate;</programlisting>
265
 
<para>
266
 
   Private information kept by the BonoboObject.  This should not be
267
 
   used by BonoboObject users.
268
 
</para></refsect2>
269
 
<refsect2>
270
 
<title><anchor id="BonoboObjectHeader">BonoboObjectHeader</title>
271
 
<programlisting>typedef struct {
272
 
        GObject              base;             /* pointer + guint + pointer */
273
 
        BonoboObjectPrivate *priv;             /* pointer */
274
 
        guint                object_signature; /* guint   */
275
 
} BonoboObjectHeader;
276
 
</programlisting>
277
 
<para>
278
 
 
279
 
</para></refsect2>
280
 
<refsect2>
281
 
<title><anchor id="BONOBO-OBJECT-HEADER-SIZE-CAPS">BONOBO_OBJECT_HEADER_SIZE</title>
282
 
<programlisting>#define BONOBO_OBJECT_HEADER_SIZE (sizeof (BonoboObjectHeader))
283
 
</programlisting>
284
 
<para>
285
 
 
286
 
</para></refsect2>
287
 
<refsect2>
288
 
<title><anchor id="BONOBO-OBJECT-SIGNATURE-CAPS">BONOBO_OBJECT_SIGNATURE</title>
289
 
<programlisting>#define BONOBO_OBJECT_SIGNATURE   0xaef2
290
 
</programlisting>
291
 
<para>
292
 
 
293
 
</para></refsect2>
294
 
<refsect2>
295
 
<title><anchor id="BONOBO-SERVANT-SIGNATURE-CAPS">BONOBO_SERVANT_SIGNATURE</title>
296
 
<programlisting>#define BONOBO_SERVANT_SIGNATURE  0x2fae
297
 
</programlisting>
298
 
<para>
299
 
 
300
 
</para></refsect2>
301
 
<refsect2>
302
 
<title><anchor id="BonoboObject">BonoboObject</title>
303
 
<programlisting>typedef struct {
304
 
        /* A GObject and its signature of type BonoboObjectHeader */
305
 
        GObject              base;             /* pointer + guint + pointer */
306
 
        BonoboObjectPrivate *priv;             /* pointer */
307
 
        guint                object_signature; /* guint   */
308
 
 
309
 
        /* A Servant and its signature - same memory layout */
310
 
        POA_Bonobo_Unknown   servant;          /* pointer + pointer */
311
 
        guint                dummy;            /* guint   */
312
 
        Bonobo_Unknown       corba_objref;     /* pointer */
313
 
        guint                servant_signature;
314
 
} BonoboObject;
315
 
</programlisting>
316
 
<para>
317
 
 
318
 
</para></refsect2>
319
 
<refsect2>
320
 
<title><anchor id="BonoboObjectClass">BonoboObjectClass</title>
321
 
<programlisting>typedef struct {
322
 
        GObjectClass parent_class;
323
 
 
324
 
        /* signals. */
325
 
        void         (*destroy)          (BonoboObject *object);
326
 
        void         (*system_exception) (BonoboObject *object,
327
 
                                          CORBA_Object  cobject,
328
 
                                          CORBA_Environment *ev);
329
 
 
330
 
        BonoboObjectPOAFn          poa_init_fn;
331
 
        BonoboObjectPOAFn          poa_fini_fn;
332
 
 
333
 
        POA_Bonobo_Unknown__vepv       *vepv;
334
 
 
335
 
        /* The offset of this class' additional epv */
336
 
        int                             epv_struct_offset;
337
 
 
338
 
        PortableServer_ServantBase__epv base_epv;
339
 
        POA_Bonobo_Unknown__epv         epv;
340
 
} BonoboObjectClass;
341
 
</programlisting>
342
 
<para>
343
 
 
344
 
</para></refsect2>
345
 
<refsect2>
346
 
<title><anchor id="bonobo-object-add-interface">bonobo_object_add_interface ()</title>
347
 
<programlisting>void        bonobo_object_add_interface     (<link linkend="BonoboObject">BonoboObject</link> *object,
348
 
                                             <link linkend="BonoboObject">BonoboObject</link> *newobj);</programlisting>
349
 
<para>
350
 
Adds the interfaces supported by <parameter>newobj</parameter> to the list of interfaces
351
 
for <parameter>object</parameter>.  This function adds the interfaces supported by
352
 
<parameter>newobj</parameter> to the list of interfaces support by <parameter>object</parameter>. It should never
353
 
be used when the object has been exposed to the world. This is a firm
354
 
part of the contract.</para>
355
 
<para>
356
 
 
357
 
</para><informaltable pgwide="1" frame="none" role="params">
358
 
<tgroup cols="2">
359
 
<colspec colwidth="2*">
360
 
<colspec colwidth="8*">
361
 
<tbody>
362
 
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
363
 
<entry> The BonoboObject to which an interface is going to be added.
364
 
</entry></row>
365
 
<row><entry align="right"><parameter>newobj</parameter>&nbsp;:</entry>
366
 
<entry> The BonoboObject containing the new interface to be added.
367
 
</entry></row>
368
 
</tbody></tgroup></informaltable></refsect2>
369
 
<refsect2>
370
 
<title><anchor id="bonobo-object-query-local-interface">bonobo_object_query_local_interface ()</title>
371
 
<programlisting><link linkend="BonoboObject">BonoboObject</link>* bonobo_object_query_local_interface
372
 
                                            (<link linkend="BonoboObject">BonoboObject</link> *object,
373
 
                                             const char *repo_id);</programlisting>
374
 
<para>
375
 
</para>
376
 
<para>
377
 
 
378
 
</para><informaltable pgwide="1" frame="none" role="params">
379
 
<tgroup cols="2">
380
 
<colspec colwidth="2*">
381
 
<colspec colwidth="8*">
382
 
<tbody>
383
 
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
384
 
<entry> A <link linkend="BonoboObject">BonoboObject</link> which is the aggregate of multiple objects.
385
 
</entry></row>
386
 
<row><entry align="right"><parameter>repo_id</parameter>&nbsp;:</entry>
387
 
<entry> The id of the interface being queried.
388
 
</entry></row>
389
 
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry> A <link linkend="BonoboObject">BonoboObject</link> for the requested interface.
390
 
</entry></row>
391
 
</tbody></tgroup></informaltable></refsect2>
392
 
<refsect2>
393
 
<title><anchor id="bonobo-object-query-interface">bonobo_object_query_interface ()</title>
394
 
<programlisting><link linkend="Bonobo-Unknown">Bonobo_Unknown</link> bonobo_object_query_interface
395
 
                                            (<link linkend="BonoboObject">BonoboObject</link> *object,
396
 
                                             const char *repo_id,
397
 
                                             <link linkend="CORBA-Environment">CORBA_Environment</link> *opt_ev);</programlisting>
398
 
<para>
399
 
</para>
400
 
<para>
401
 
 
402
 
</para><informaltable pgwide="1" frame="none" role="params">
403
 
<tgroup cols="2">
404
 
<colspec colwidth="2*">
405
 
<colspec colwidth="8*">
406
 
<tbody>
407
 
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
408
 
<entry> A BonoboObject to be queried for a given interface.
409
 
</entry></row>
410
 
<row><entry align="right"><parameter>repo_id</parameter>&nbsp;:</entry>
411
 
<entry> The name of the interface to be queried.
412
 
</entry></row>
413
 
<row><entry align="right"><parameter>opt_ev</parameter>&nbsp;:</entry>
414
 
<entry> optional exception environment
415
 
</entry></row>
416
 
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry> The CORBA interface named <parameter>repo_id</parameter> for <parameter>object</parameter>.
417
 
</entry></row>
418
 
</tbody></tgroup></informaltable></refsect2>
419
 
<refsect2>
420
 
<title><anchor id="bonobo-object-corba-objref">bonobo_object_corba_objref ()</title>
421
 
<programlisting><link linkend="Bonobo-Unknown">Bonobo_Unknown</link> bonobo_object_corba_objref   (<link linkend="BonoboObject">BonoboObject</link> *object);</programlisting>
422
 
<para>
423
 
</para>
424
 
<para>
425
 
 
426
 
</para><informaltable pgwide="1" frame="none" role="params">
427
 
<tgroup cols="2">
428
 
<colspec colwidth="2*">
429
 
<colspec colwidth="8*">
430
 
<tbody>
431
 
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
432
 
<entry> A BonoboObject whose CORBA object is requested.
433
 
</entry></row>
434
 
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry> The CORBA interface object for which <parameter>object</parameter> is a wrapper.
435
 
</entry></row>
436
 
</tbody></tgroup></informaltable></refsect2>
437
 
<refsect2>
438
 
<title><anchor id="bonobo-object-dup-ref">bonobo_object_dup_ref ()</title>
439
 
<programlisting><link linkend="Bonobo-Unknown">Bonobo_Unknown</link> bonobo_object_dup_ref        (<link linkend="Bonobo-Unknown">Bonobo_Unknown</link> object,
440
 
                                             <link linkend="CORBA-Environment">CORBA_Environment</link> *opt_ev);</programlisting>
441
 
<para>
442
 
This function returns a duplicated CORBA Object reference;
443
 
it also bumps the ref count on the object. This is ideal to
444
 
use in any method returning a Bonobo_Object in a CORBA impl.
445
 
If object is CORBA_OBJECT_NIL it is returned unaffected.</para>
446
 
<para>
447
 
 
448
 
</para><informaltable pgwide="1" frame="none" role="params">
449
 
<tgroup cols="2">
450
 
<colspec colwidth="2*">
451
 
<colspec colwidth="8*">
452
 
<tbody>
453
 
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
454
 
<entry> a Bonobo_Unknown corba object
455
 
</entry></row>
456
 
<row><entry align="right"><parameter>opt_ev</parameter>&nbsp;:</entry>
457
 
<entry> an optional exception environment
458
 
</entry></row>
459
 
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry> duplicated &amp; ref'd corba object reference.
460
 
</entry></row>
461
 
</tbody></tgroup></informaltable></refsect2>
462
 
<refsect2>
463
 
<title><anchor id="bonobo-object-release-unref">bonobo_object_release_unref ()</title>
464
 
<programlisting><link linkend="Bonobo-Unknown">Bonobo_Unknown</link> bonobo_object_release_unref  (<link linkend="Bonobo-Unknown">Bonobo_Unknown</link> object,
465
 
                                             <link linkend="CORBA-Environment">CORBA_Environment</link> *opt_ev);</programlisting>
466
 
<para>
467
 
This function releases a CORBA Object reference;
468
 
it also decrements the ref count on the bonobo object.
469
 
This is the converse of bonobo_object_dup_ref. We
470
 
tolerate object == CORBA_OBJECT_NIL silently.</para>
471
 
<para>
472
 
 
473
 
</para><informaltable pgwide="1" frame="none" role="params">
474
 
<tgroup cols="2">
475
 
<colspec colwidth="2*">
476
 
<colspec colwidth="8*">
477
 
<tbody>
478
 
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
479
 
<entry> a Bonobo_Unknown corba object
480
 
</entry></row>
481
 
<row><entry align="right"><parameter>opt_ev</parameter>&nbsp;:</entry>
482
 
<entry> an optional exception environment
483
 
</entry></row>
484
 
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>
485
 
</entry></row>
486
 
</tbody></tgroup></informaltable></refsect2>
487
 
<refsect2>
488
 
<title><anchor id="bonobo-object-ref">bonobo_object_ref ()</title>
489
 
<programlisting><link linkend="gpointer">gpointer</link>    bonobo_object_ref               (<link linkend="gpointer">gpointer</link> obj);</programlisting>
490
 
<para>
491
 
Increments the reference count for the aggregate BonoboObject.</para>
492
 
<para>
493
 
 
494
 
</para><informaltable pgwide="1" frame="none" role="params">
495
 
<tgroup cols="2">
496
 
<colspec colwidth="2*">
497
 
<colspec colwidth="8*">
498
 
<tbody>
499
 
<row><entry align="right"><parameter>obj</parameter>&nbsp;:</entry>
500
 
<entry>
501
 
</entry></row>
502
 
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>
503
 
</entry></row>
504
 
</tbody></tgroup></informaltable></refsect2>
505
 
<refsect2>
506
 
<title><anchor id="bonobo-object-idle-unref">bonobo_object_idle_unref ()</title>
507
 
<programlisting>void        bonobo_object_idle_unref        (<link linkend="gpointer">gpointer</link> obj);</programlisting>
508
 
<para>
509
 
 
510
 
</para><informaltable pgwide="1" frame="none" role="params">
511
 
<tgroup cols="2">
512
 
<colspec colwidth="2*">
513
 
<colspec colwidth="8*">
514
 
<tbody>
515
 
<row><entry align="right"><parameter>obj</parameter>&nbsp;:</entry>
516
 
<entry>
517
 
</entry></row>
518
 
</tbody></tgroup></informaltable></refsect2>
519
 
<refsect2>
520
 
<title><anchor id="bonobo-object-unref">bonobo_object_unref ()</title>
521
 
<programlisting><link linkend="gpointer">gpointer</link>    bonobo_object_unref             (<link linkend="gpointer">gpointer</link> obj);</programlisting>
522
 
<para>
523
 
Decrements the reference count for the aggregate BonoboObject.</para>
524
 
<para>
525
 
 
526
 
</para><informaltable pgwide="1" frame="none" role="params">
527
 
<tgroup cols="2">
528
 
<colspec colwidth="2*">
529
 
<colspec colwidth="8*">
530
 
<tbody>
531
 
<row><entry align="right"><parameter>obj</parameter>&nbsp;:</entry>
532
 
<entry>
533
 
</entry></row>
534
 
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>
535
 
</entry></row>
536
 
</tbody></tgroup></informaltable></refsect2>
537
 
<refsect2>
538
 
<title><anchor id="bonobo-object-set-immortal">bonobo_object_set_immortal ()</title>
539
 
<programlisting>void        bonobo_object_set_immortal      (<link linkend="BonoboObject">BonoboObject</link> *object,
540
 
                                             <link linkend="gboolean">gboolean</link> immortal);</programlisting>
541
 
<para>
542
 
 
543
 
</para><informaltable pgwide="1" frame="none" role="params">
544
 
<tgroup cols="2">
545
 
<colspec colwidth="2*">
546
 
<colspec colwidth="8*">
547
 
<tbody>
548
 
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
549
 
<entry>
550
 
</entry></row>
551
 
<row><entry align="right"><parameter>immortal</parameter>&nbsp;:</entry>
552
 
<entry>
553
 
 
554
 
 
555
 
</entry></row>
556
 
</tbody></tgroup></informaltable></refsect2>
557
 
<refsect2>
558
 
<title><anchor id="bonobo-object-trace-refs">bonobo_object_trace_refs ()</title>
559
 
<programlisting><link linkend="gpointer">gpointer</link>    bonobo_object_trace_refs        (<link linkend="gpointer">gpointer</link> obj,
560
 
                                             const char *fn,
561
 
                                             int line,
562
 
                                             <link linkend="gboolean">gboolean</link> ref);</programlisting>
563
 
<para>
564
 
 
565
 
</para><informaltable pgwide="1" frame="none" role="params">
566
 
<tgroup cols="2">
567
 
<colspec colwidth="2*">
568
 
<colspec colwidth="8*">
569
 
<tbody>
570
 
<row><entry align="right"><parameter>obj</parameter>&nbsp;:</entry>
571
 
<entry>
572
 
</entry></row>
573
 
<row><entry align="right"><parameter>fn</parameter>&nbsp;:</entry>
574
 
<entry>
575
 
</entry></row>
576
 
<row><entry align="right"><parameter>line</parameter>&nbsp;:</entry>
577
 
<entry>
578
 
</entry></row>
579
 
<row><entry align="right"><parameter>ref</parameter>&nbsp;:</entry>
580
 
<entry>
581
 
</entry></row>
582
 
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>
583
 
</entry></row>
584
 
</tbody></tgroup></informaltable></refsect2>
585
 
<refsect2>
586
 
<title><anchor id="bonobo-object-dump-interfaces">bonobo_object_dump_interfaces ()</title>
587
 
<programlisting>void        bonobo_object_dump_interfaces   (<link linkend="BonoboObject">BonoboObject</link> *object);</programlisting>
588
 
<para>
589
 
 
590
 
</para><informaltable pgwide="1" frame="none" role="params">
591
 
<tgroup cols="2">
592
 
<colspec colwidth="2*">
593
 
<colspec colwidth="8*">
594
 
<tbody>
595
 
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
596
 
<entry>
597
 
 
598
 
 
599
 
</entry></row>
600
 
</tbody></tgroup></informaltable></refsect2>
601
 
<refsect2>
602
 
<title><anchor id="bonobo-object-check-env">bonobo_object_check_env ()</title>
603
 
<programlisting>void        bonobo_object_check_env         (<link linkend="BonoboObject">BonoboObject</link> *object,
604
 
                                             <link linkend="CORBA-Object">CORBA_Object</link> corba_object,
605
 
                                             <link linkend="CORBA-Environment">CORBA_Environment</link> *ev);</programlisting>
606
 
<para>
607
 
This routine verifies the <parameter>ev</parameter> environment for any fatal system
608
 
exceptions.  If a system exception occurs, the object raises a
609
 
"system_exception" signal.  The idea is that GObjects which are
610
 
used to wrap a CORBA interface can use this function to notify
611
 
the user if a fatal exception has occurred, causing the object
612
 
to become defunct.</para>
613
 
<para>
614
 
 
615
 
</para><informaltable pgwide="1" frame="none" role="params">
616
 
<tgroup cols="2">
617
 
<colspec colwidth="2*">
618
 
<colspec colwidth="8*">
619
 
<tbody>
620
 
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
621
 
<entry> The object on which we operate
622
 
</entry></row>
623
 
<row><entry align="right"><parameter>corba_object</parameter>&nbsp;:</entry>
624
 
<entry>
625
 
</entry></row>
626
 
<row><entry align="right"><parameter>ev</parameter>&nbsp;:</entry>
627
 
<entry> CORBA Environment to check
628
 
</entry></row>
629
 
</tbody></tgroup></informaltable></refsect2>
630
 
<refsect2>
631
 
<title><anchor id="BONOBO-OBJECT-CHECK-CAPS">BONOBO_OBJECT_CHECK()</title>
632
 
<programlisting>#define     BONOBO_OBJECT_CHECK(o,c,e)</programlisting>
633
 
<para>
634
 
   Checks if the exception in <parameter>e</parameter> needs to be signaled.  If so, then
635
 
   the proper exception signal is generated on the BonoboObject object
636
 
   <parameter>o</parameter> for the CORBA reference <parameter>c</parameter>.
637
 
</para><informaltable pgwide="1" frame="none" role="params">
638
 
<tgroup cols="2">
639
 
<colspec colwidth="2*">
640
 
<colspec colwidth="8*">
641
 
<tbody>
642
 
<row><entry align="right"><parameter>o</parameter>&nbsp;:</entry>
643
 
<entry>
644
 
</entry></row>
645
 
<row><entry align="right"><parameter>c</parameter>&nbsp;:</entry>
646
 
<entry>
647
 
</entry></row>
648
 
<row><entry align="right"><parameter>e</parameter>&nbsp;:</entry>
649
 
<entry>
650
 
 
651
 
 
652
 
</entry></row>
653
 
</tbody></tgroup></informaltable></refsect2>
654
 
<refsect2>
655
 
<title><anchor id="bonobo-unknown-ping">bonobo_unknown_ping ()</title>
656
 
<programlisting><link linkend="gboolean">gboolean</link>    bonobo_unknown_ping             (<link linkend="Bonobo-Unknown">Bonobo_Unknown</link> object,
657
 
                                             <link linkend="CORBA-Environment">CORBA_Environment</link> *opt_ev);</programlisting>
658
 
<para>
659
 
Pings the object <parameter>object</parameter> using the ref/unref methods from Bonobo::Unknown.
660
 
You can use this one to see if a remote object has gone away.</para>
661
 
<para>
662
 
 
663
 
</para><informaltable pgwide="1" frame="none" role="params">
664
 
<tgroup cols="2">
665
 
<colspec colwidth="2*">
666
 
<colspec colwidth="8*">
667
 
<tbody>
668
 
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
669
 
<entry> a CORBA object reference of type Bonobo::Unknown
670
 
</entry></row>
671
 
<row><entry align="right"><parameter>opt_ev</parameter>&nbsp;:</entry>
672
 
<entry> optional exception environment
673
 
</entry></row>
674
 
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry> <literal>TRUE</literal> if the Bonobo::Unknown <parameter>object</parameter> is alive.
675
 
</entry></row>
676
 
</tbody></tgroup></informaltable></refsect2>
677
 
<refsect2>
678
 
<title><anchor id="bonobo-object-list-unref-all">bonobo_object_list_unref_all ()</title>
679
 
<programlisting>void        bonobo_object_list_unref_all    (<link linkend="GList">GList</link> **list);</programlisting>
680
 
<para>
681
 
This routine unrefs all valid objects in
682
 
the list and then removes them from <parameter>list</parameter> if
683
 
they have not already been so removed.</para>
684
 
<para>
685
 
 
686
 
</para><informaltable pgwide="1" frame="none" role="params">
687
 
<tgroup cols="2">
688
 
<colspec colwidth="2*">
689
 
<colspec colwidth="8*">
690
 
<tbody>
691
 
<row><entry align="right"><parameter>list</parameter>&nbsp;:</entry>
692
 
<entry> A list of BonoboObjects *s
693
 
</entry></row>
694
 
</tbody></tgroup></informaltable></refsect2>
695
 
<refsect2>
696
 
<title><anchor id="bonobo-object-slist-unref-all">bonobo_object_slist_unref_all ()</title>
697
 
<programlisting>void        bonobo_object_slist_unref_all   (<link linkend="GSList">GSList</link> **list);</programlisting>
698
 
<para>
699
 
 
700
 
</para><informaltable pgwide="1" frame="none" role="params">
701
 
<tgroup cols="2">
702
 
<colspec colwidth="2*">
703
 
<colspec colwidth="8*">
704
 
<tbody>
705
 
<row><entry align="right"><parameter>list</parameter>&nbsp;:</entry>
706
 
<entry>
707
 
 
708
 
 
709
 
</entry></row>
710
 
</tbody></tgroup></informaltable></refsect2>
711
 
<refsect2>
712
 
<title><anchor id="bonobo-object">bonobo_object ()</title>
713
 
<programlisting><link linkend="BonoboObject">BonoboObject</link>* bonobo_object                 (<link linkend="gpointer">gpointer</link> p);</programlisting>
714
 
<para>
715
 
This function can be passed a BonoboObject * or a
716
 
PortableServer_Servant, and it will return a BonoboObject *.</para>
717
 
<para>
718
 
 
719
 
</para><informaltable pgwide="1" frame="none" role="params">
720
 
<tgroup cols="2">
721
 
<colspec colwidth="2*">
722
 
<colspec colwidth="8*">
723
 
<tbody>
724
 
<row><entry align="right"><parameter>p</parameter>&nbsp;:</entry>
725
 
<entry> a pointer to something
726
 
</entry></row>
727
 
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry> a BonoboObject or NULL on error.
728
 
</entry></row>
729
 
</tbody></tgroup></informaltable></refsect2>
730
 
<refsect2>
731
 
<title><anchor id="bonobo-object-fast">bonobo_object_fast()</title>
732
 
<programlisting>#define     bonobo_object_fast(o)</programlisting>
733
 
<para>
734
 
 
735
 
</para><informaltable pgwide="1" frame="none" role="params">
736
 
<tgroup cols="2">
737
 
<colspec colwidth="2*">
738
 
<colspec colwidth="8*">
739
 
<tbody>
740
 
<row><entry align="right"><parameter>o</parameter>&nbsp;:</entry>
741
 
<entry>
742
 
 
743
 
 
744
 
</entry></row>
745
 
</tbody></tgroup></informaltable></refsect2>
746
 
<refsect2>
747
 
<title><anchor id="bonobo-object-from-servant">bonobo_object_from_servant()</title>
748
 
<programlisting>#define       bonobo_object_from_servant(s) ((BonoboObject *)(((guchar *) (s)) - BONOBO_OBJECT_HEADER_SIZE))
749
 
</programlisting>
750
 
<para>
751
 
 
752
 
</para><informaltable pgwide="1" frame="none" role="params">
753
 
<tgroup cols="2">
754
 
<colspec colwidth="2*">
755
 
<colspec colwidth="8*">
756
 
<tbody>
757
 
<row><entry align="right"><parameter>s</parameter>&nbsp;:</entry>
758
 
<entry>
759
 
</entry></row>
760
 
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>
761
 
</entry></row>
762
 
</tbody></tgroup></informaltable></refsect2>
763
 
<refsect2>
764
 
<title><anchor id="bonobo-object-get-servant">bonobo_object_get_servant()</title>
765
 
<programlisting>#define       bonobo_object_get_servant(o)  ((PortableServer_Servant)((guchar *)(o) + BONOBO_OBJECT_HEADER_SIZE))
766
 
</programlisting>
767
 
<para>
768
 
 
769
 
</para><informaltable pgwide="1" frame="none" role="params">
770
 
<tgroup cols="2">
771
 
<colspec colwidth="2*">
772
 
<colspec colwidth="8*">
773
 
<tbody>
774
 
<row><entry align="right"><parameter>o</parameter>&nbsp;:</entry>
775
 
<entry>
776
 
</entry></row>
777
 
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>
778
 
</entry></row>
779
 
</tbody></tgroup></informaltable></refsect2>
780
 
<refsect2>
781
 
<title><anchor id="bonobo-type-unique">bonobo_type_unique ()</title>
782
 
<programlisting><link linkend="GType">GType</link>       bonobo_type_unique              (<link linkend="GType">GType</link> parent_type,
783
 
                                             <link linkend="BonoboObjectPOAFn">BonoboObjectPOAFn</link> init_fn,
784
 
                                             <link linkend="BonoboObjectPOAFn">BonoboObjectPOAFn</link> fini_fn,
785
 
                                             int epv_struct_offset,
786
 
                                             const <link linkend="GTypeInfo">GTypeInfo</link> *info,
787
 
                                             const <link linkend="gchar">gchar</link> *type_name);</programlisting>
788
 
<para>
789
 
This function is the main entry point for deriving bonobo
790
 
server interfaces.</para>
791
 
<para>
792
 
 
793
 
</para><informaltable pgwide="1" frame="none" role="params">
794
 
<tgroup cols="2">
795
 
<colspec colwidth="2*">
796
 
<colspec colwidth="8*">
797
 
<tbody>
798
 
<row><entry align="right"><parameter>parent_type</parameter>&nbsp;:</entry>
799
 
<entry> the parent GType
800
 
</entry></row>
801
 
<row><entry align="right"><parameter>init_fn</parameter>&nbsp;:</entry>
802
 
<entry> a POA initialization function
803
 
</entry></row>
804
 
<row><entry align="right"><parameter>fini_fn</parameter>&nbsp;:</entry>
805
 
<entry> a POA finialization function or NULL
806
 
</entry></row>
807
 
<row><entry align="right"><parameter>epv_struct_offset</parameter>&nbsp;:</entry>
808
 
<entry> the offset into the struct that the epv
809
 
commences at, or 0 if we are inheriting a plain GObject
810
 
from a BonoboObject, adding no new CORBA interfaces
811
 
</entry></row>
812
 
<row><entry align="right"><parameter>info</parameter>&nbsp;:</entry>
813
 
<entry> the standard GTypeInfo.
814
 
</entry></row>
815
 
<row><entry align="right"><parameter>type_name</parameter>&nbsp;:</entry>
816
 
<entry>
817
 
</entry></row>
818
 
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry> the constructed GType.
819
 
</entry></row>
820
 
</tbody></tgroup></informaltable></refsect2>
821
 
<refsect2>
822
 
<title><anchor id="bonobo-type-setup">bonobo_type_setup ()</title>
823
 
<programlisting><link linkend="gboolean">gboolean</link>    bonobo_type_setup               (<link linkend="GType">GType</link> type,
824
 
                                             <link linkend="BonoboObjectPOAFn">BonoboObjectPOAFn</link> init_fn,
825
 
                                             <link linkend="BonoboObjectPOAFn">BonoboObjectPOAFn</link> fini_fn,
826
 
                                             int epv_struct_offset);</programlisting>
827
 
<para>
828
 
This function initializes a type derived from BonoboObject, such that
829
 
when you instantiate a new object of this type with g_type_new the
830
 
CORBA object will be correctly created and embedded.</para>
831
 
<para>
832
 
 
833
 
</para><informaltable pgwide="1" frame="none" role="params">
834
 
<tgroup cols="2">
835
 
<colspec colwidth="2*">
836
 
<colspec colwidth="8*">
837
 
<tbody>
838
 
<row><entry align="right"><parameter>type</parameter>&nbsp;:</entry>
839
 
<entry> The type to initialize
840
 
</entry></row>
841
 
<row><entry align="right"><parameter>init_fn</parameter>&nbsp;:</entry>
842
 
<entry> the POA_init function for the CORBA interface or NULL
843
 
</entry></row>
844
 
<row><entry align="right"><parameter>fini_fn</parameter>&nbsp;:</entry>
845
 
<entry> NULL or a custom POA free fn.
846
 
</entry></row>
847
 
<row><entry align="right"><parameter>epv_struct_offset</parameter>&nbsp;:</entry>
848
 
<entry> the offset in the class structure where the epv is or 0
849
 
</entry></row>
850
 
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry> TRUE on success, FALSE on error.
851
 
</entry></row>
852
 
</tbody></tgroup></informaltable></refsect2>
853
 
<refsect2>
854
 
<title><anchor id="BONOBO-TYPE-FUNC-FULL-CAPS">BONOBO_TYPE_FUNC_FULL()</title>
855
 
<programlisting>#define     BONOBO_TYPE_FUNC_FULL(class_name, corba_name, parent, prefix)</programlisting>
856
 
<para>
857
 
 
858
 
</para><informaltable pgwide="1" frame="none" role="params">
859
 
<tgroup cols="2">
860
 
<colspec colwidth="2*">
861
 
<colspec colwidth="8*">
862
 
<tbody>
863
 
<row><entry align="right"><parameter>class_name</parameter>&nbsp;:</entry>
864
 
<entry>
865
 
</entry></row>
866
 
<row><entry align="right"><parameter>corba_name</parameter>&nbsp;:</entry>
867
 
<entry>
868
 
</entry></row>
869
 
<row><entry align="right"><parameter>parent</parameter>&nbsp;:</entry>
870
 
<entry>
871
 
</entry></row>
872
 
<row><entry align="right"><parameter>prefix</parameter>&nbsp;:</entry>
873
 
<entry>
874
 
 
875
 
 
876
 
</entry></row>
877
 
</tbody></tgroup></informaltable></refsect2>
878
 
<refsect2>
879
 
<title><anchor id="BONOBO-TYPE-FUNC-CAPS">BONOBO_TYPE_FUNC()</title>
880
 
<programlisting>#define     BONOBO_TYPE_FUNC(class_name, parent, prefix)</programlisting>
881
 
<para>
882
 
 
883
 
</para><informaltable pgwide="1" frame="none" role="params">
884
 
<tgroup cols="2">
885
 
<colspec colwidth="2*">
886
 
<colspec colwidth="8*">
887
 
<tbody>
888
 
<row><entry align="right"><parameter>class_name</parameter>&nbsp;:</entry>
889
 
<entry>
890
 
</entry></row>
891
 
<row><entry align="right"><parameter>parent</parameter>&nbsp;:</entry>
892
 
<entry>
893
 
</entry></row>
894
 
<row><entry align="right"><parameter>prefix</parameter>&nbsp;:</entry>
895
 
<entry>
896
 
 
897
 
 
898
 
</entry></row>
899
 
</tbody></tgroup></informaltable></refsect2>
900
 
 
901
 
</refsect1>
902
 
 
903
 
 
904
 
 
905
 
<refsect1>
906
 
<title>See Also</title>
907
 
<para>
908
 
<link linkend="GtkObject">GtkObject</link>
909
 
</para>
910
 
</refsect1>
911
 
 
912
 
</refentry>