4
4
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5
5
<title>CamelObject</title>
6
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
6
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
7
7
<link rel="home" href="index.html" title="Camel Reference Manual">
8
8
<link rel="up" href="Fundamentals.html" title="Fundamentals">
9
9
<link rel="prev" href="camel-camel-exception.html" title="camel-exception">
26
26
<a href="#camel-CamelObject.description" class="shortcut">Description</a>
29
<div class="refentry" lang="en">
29
<div class="refentry" title="CamelObject">
30
30
<a name="camel-CamelObject"></a><div class="titlepage"></div>
31
31
<div class="refnamediv"><table width="100%"><tr>
36
36
<td valign="top" align="right"></td>
37
37
</tr></table></div>
38
<div class="refsynopsisdiv">
38
<div class="refsynopsisdiv" title="Synopsis">
39
39
<a name="camel-CamelObject.synopsis"></a><h2>Synopsis</h2>
40
40
<pre class="synopsis">#define <a class="link" href="camel-CamelObject.html#CAMEL-OBJECT-TRACK-INSTANCES:CAPS" title="CAMEL_OBJECT_TRACK_INSTANCES">CAMEL_OBJECT_TRACK_INSTANCES</a>
41
41
typedef <a class="link" href="camel-CamelObject.html#CamelType" title="CamelType">CamelType</a>;
190
190
<span class="returnvalue">gint</span> <a class="link" href="camel-CamelObject.html#camel-iterator-length" title="camel_iterator_length ()">camel_iterator_length</a> (<em class="parameter"><code><span class="type">gpointer</span> it</code></em>);
193
<div class="refsect1" lang="en">
193
<div class="refsect1" title="Description">
194
194
<a name="camel-CamelObject.description"></a><h2>Description</h2>
198
<div class="refsect1" lang="en">
198
<div class="refsect1" title="Details">
199
199
<a name="camel-CamelObject.details"></a><h2>Details</h2>
200
<div class="refsect2" lang="en">
200
<div class="refsect2" title="CAMEL_OBJECT_TRACK_INSTANCES">
201
201
<a name="CAMEL-OBJECT-TRACK-INSTANCES:CAPS"></a><h3>CAMEL_OBJECT_TRACK_INSTANCES</h3>
202
202
<pre class="programlisting">#define CAMEL_OBJECT_TRACK_INSTANCES
216
<div class="refsect2" lang="en">
216
<div class="refsect2" title="CamelObject">
217
217
<a name="CamelObject"></a><h3>CamelObject</h3>
218
218
<pre class="programlisting">typedef struct {
219
219
struct _CamelObjectClass *klass;
238
<div class="refsect2" lang="en">
238
<div class="refsect2" title="CAMEL_CHECK_CAST()">
239
239
<a name="CAMEL-CHECK-CAST:CAPS"></a><h3>CAMEL_CHECK_CAST()</h3>
240
240
<pre class="programlisting">#define CAMEL_CHECK_CAST(obj, ctype, ptype)</pre>
265
<div class="refsect2" lang="en">
265
<div class="refsect2" title="CAMEL_CHECK_CLASS_CAST()">
266
266
<a name="CAMEL-CHECK-CLASS-CAST:CAPS"></a><h3>CAMEL_CHECK_CLASS_CAST()</h3>
267
267
<pre class="programlisting">#define CAMEL_CHECK_CLASS_CAST(klass, ctype, ptype)</pre>
292
<div class="refsect2" lang="en">
292
<div class="refsect2" title="CAMEL_CHECK_TYPE()">
293
293
<a name="CAMEL-CHECK-TYPE:CAPS"></a><h3>CAMEL_CHECK_TYPE()</h3>
294
294
<pre class="programlisting">#define CAMEL_CHECK_TYPE(obj, ctype) (camel_object_is ((CamelObject *)(obj), (CamelType)(ctype) ))
315
<div class="refsect2" lang="en">
315
<div class="refsect2" title="CAMEL_CHECK_CLASS_TYPE()">
316
316
<a name="CAMEL-CHECK-CLASS-TYPE:CAPS"></a><h3>CAMEL_CHECK_CLASS_TYPE()</h3>
317
317
<pre class="programlisting">#define CAMEL_CHECK_CLASS_TYPE(klass, ctype) (camel_object_class_is ((CamelObjectClass *)(klass), (CamelType)(ctype)))
338
<div class="refsect2" lang="en">
338
<div class="refsect2" title="camel_object_type">
339
339
<a name="camel-object-type"></a><h3>camel_object_type</h3>
340
340
<pre class="programlisting">extern CamelType camel_object_type;
346
<div class="refsect2" lang="en">
346
<div class="refsect2" title="CAMEL_OBJECT_TYPE">
347
347
<a name="CAMEL-OBJECT-TYPE:CAPS"></a><h3>CAMEL_OBJECT_TYPE</h3>
348
348
<pre class="programlisting">#define CAMEL_OBJECT_TYPE (camel_object_type)
354
<div class="refsect2" lang="en">
354
<div class="refsect2" title="CAMEL_OBJECT_GET_TYPE()">
355
355
<a name="CAMEL-OBJECT-GET-TYPE:CAPS"></a><h3>CAMEL_OBJECT_GET_TYPE()</h3>
356
356
<pre class="programlisting">#define CAMEL_OBJECT_GET_TYPE(o) ((CamelType)(CAMEL_OBJECT(o))->klass)
378
<div class="refsect2" lang="en">
378
<div class="refsect2" title="CamelObjectMeta">
379
379
<a name="CamelObjectMeta"></a><h3>CamelObjectMeta</h3>
380
380
<pre class="programlisting">typedef struct {
381
381
struct _CamelObjectMeta *next;
384
384
gchar name[1]; /* allocated as part of structure */
385
385
} CamelObjectMeta;
387
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
387
<div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
388
388
<h3 class="title">Warning</h3>
389
389
<p><code class="literal">CamelObjectMeta</code> is deprecated and should not be used in newly-written code.</p>
395
<div class="refsect2" lang="en">
395
<div class="refsect2" title="camel_interface_type">
396
396
<a name="camel-interface-type"></a><h3>camel_interface_type</h3>
397
397
<pre class="programlisting">extern CamelType camel_interface_type;
399
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
399
<div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
400
400
<h3 class="title">Warning</h3>
401
401
<p><code class="literal">camel_interface_type</code> is deprecated and should not be used in newly-written code.</p>
407
<div class="refsect2" lang="en">
407
<div class="refsect2" title="CAMEL_INTERFACE_TYPE">
408
408
<a name="CAMEL-INTERFACE-TYPE:CAPS"></a><h3>CAMEL_INTERFACE_TYPE</h3>
409
409
<pre class="programlisting">#define CAMEL_INTERFACE_TYPE (camel_interface_type)
411
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
411
<div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
412
412
<h3 class="title">Warning</h3>
413
413
<p><code class="literal">CAMEL_INTERFACE_TYPE</code> is deprecated and should not be used in newly-written code.</p>
419
<div class="refsect2" lang="en">
419
<div class="refsect2" title="CamelInterface">
420
420
<a name="CamelInterface"></a><h3>CamelInterface</h3>
421
421
<pre class="programlisting">typedef struct {
422
422
struct _CamelObjectClass type;
423
423
} CamelInterface;
425
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
425
<div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
426
426
<h3 class="title">Warning</h3>
427
427
<p><code class="literal">CamelInterface</code> is deprecated and should not be used in newly-written code.</p>
433
<div class="refsect2" lang="en">
433
<div class="refsect2" title="CamelObjectClassInitFunc ()">
434
434
<a name="CamelObjectClassInitFunc"></a><h3>CamelObjectClassInitFunc ()</h3>
435
435
<pre class="programlisting"><span class="returnvalue">void</span> (*CamelObjectClassInitFunc) (<em class="parameter"><code><span class="type">CamelObjectClass</span> *Param1</code></em>);</pre>
448
<div class="refsect2" lang="en">
448
<div class="refsect2" title="CamelObjectClassFinalizeFunc ()">
449
449
<a name="CamelObjectClassFinalizeFunc"></a><h3>CamelObjectClassFinalizeFunc ()</h3>
450
450
<pre class="programlisting"><span class="returnvalue">void</span> (*CamelObjectClassFinalizeFunc) (<em class="parameter"><code><span class="type">CamelObjectClass</span> *Param1</code></em>);</pre>
463
<div class="refsect2" lang="en">
463
<div class="refsect2" title="CamelObjectInitFunc ()">
464
464
<a name="CamelObjectInitFunc"></a><h3>CamelObjectInitFunc ()</h3>
465
465
<pre class="programlisting"><span class="returnvalue">void</span> (*CamelObjectInitFunc) (<em class="parameter"><code><a class="link" href="camel-CamelObject.html#CamelObject" title="CamelObject"><span class="type">CamelObject</span></a> *Param1</code></em>,
466
466
<em class="parameter"><code><span class="type">CamelObjectClass</span> *Param2</code></em>);</pre>
486
<div class="refsect2" lang="en">
486
<div class="refsect2" title="CamelObjectFinalizeFunc ()">
487
487
<a name="CamelObjectFinalizeFunc"></a><h3>CamelObjectFinalizeFunc ()</h3>
488
488
<pre class="programlisting"><span class="returnvalue">void</span> (*CamelObjectFinalizeFunc) (<em class="parameter"><code><a class="link" href="camel-CamelObject.html#CamelObject" title="CamelObject"><span class="type">CamelObject</span></a> *Param1</code></em>);</pre>
501
<div class="refsect2" lang="en">
501
<div class="refsect2" title="CamelObjectEventPrepFunc ()">
502
502
<a name="CamelObjectEventPrepFunc"></a><h3>CamelObjectEventPrepFunc ()</h3>
503
503
<pre class="programlisting"><span class="returnvalue">gboolean</span> (*CamelObjectEventPrepFunc) (<em class="parameter"><code><a class="link" href="camel-CamelObject.html#CamelObject" title="CamelObject"><span class="type">CamelObject</span></a> *Param1</code></em>,
504
504
<em class="parameter"><code><span class="type">gpointer</span> Param2</code></em>);</pre>
529
<div class="refsect2" lang="en">
529
<div class="refsect2" title="CamelObjectEventHookFunc ()">
530
530
<a name="CamelObjectEventHookFunc"></a><h3>CamelObjectEventHookFunc ()</h3>
531
531
<pre class="programlisting"><span class="returnvalue">void</span> (*CamelObjectEventHookFunc) (<em class="parameter"><code><a class="link" href="camel-CamelObject.html#CamelObject" title="CamelObject"><span class="type">CamelObject</span></a> *Param1</code></em>,
532
532
<em class="parameter"><code><span class="type">gpointer</span> Param2</code></em>,
558
<div class="refsect2" lang="en">
558
<div class="refsect2" title="CAMEL_INVALID_TYPE">
559
559
<a name="CAMEL-INVALID-TYPE:CAPS"></a><h3>CAMEL_INVALID_TYPE</h3>
560
560
<pre class="programlisting">#define CAMEL_INVALID_TYPE (NULL)
566
<div class="refsect2" lang="en">
566
<div class="refsect2" title="enum CamelObjectFlags">
567
567
<a name="CamelObjectFlags"></a><h3>enum CamelObjectFlags</h3>
568
568
<pre class="programlisting">typedef enum _CamelObjectFlags {
569
569
CAMEL_OBJECT_DESTROY = (1<<0)
576
<div class="refsect2" lang="en">
576
<div class="refsect2" title="camel_type_init ()">
577
577
<a name="camel-type-init"></a><h3>camel_type_init ()</h3>
578
578
<pre class="programlisting"><span class="returnvalue">void</span> camel_type_init (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
583
<div class="refsect2" lang="en">
583
<div class="refsect2" title="camel_type_register ()">
584
584
<a name="camel-type-register"></a><h3>camel_type_register ()</h3>
585
585
<pre class="programlisting"><a class="link" href="camel-CamelObject.html#CamelType" title="CamelType"><span class="returnvalue">CamelType</span></a> camel_type_register (<em class="parameter"><code><a class="link" href="camel-CamelObject.html#CamelType" title="CamelType"><span class="type">CamelType</span></a> parent</code></em>,
586
586
<em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
647
<div class="refsect2" lang="en">
647
<div class="refsect2" title="camel_interface_register ()">
648
648
<a name="camel-interface-register"></a><h3>camel_interface_register ()</h3>
649
649
<pre class="programlisting"><a class="link" href="camel-CamelObject.html#CamelType" title="CamelType"><span class="returnvalue">CamelType</span></a> camel_interface_register (<em class="parameter"><code><a class="link" href="camel-CamelObject.html#CamelType" title="CamelType"><span class="type">CamelType</span></a> parent</code></em>,
650
650
<em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
651
651
<em class="parameter"><code><span class="type">gsize</span> classfuncs_size</code></em>,
652
652
<em class="parameter"><code><a class="link" href="camel-CamelObject.html#CamelObjectClassInitFunc" title="CamelObjectClassInitFunc ()"><span class="type">CamelObjectClassInitFunc</span></a> class_init</code></em>,
653
653
<em class="parameter"><code><a class="link" href="camel-CamelObject.html#CamelObjectClassFinalizeFunc" title="CamelObjectClassFinalizeFunc ()"><span class="type">CamelObjectClassFinalizeFunc</span></a> class_finalize</code></em>);</pre>
654
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
654
<div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
655
655
<h3 class="title">Warning</h3>
656
656
<p><code class="literal">camel_interface_register</code> is deprecated and should not be used in newly-written code.</p>
697
<div class="refsect2" lang="en">
697
<div class="refsect2" title="camel_type_get_global_classfuncs()">
698
698
<a name="camel-type-get-global-classfuncs"></a><h3>camel_type_get_global_classfuncs()</h3>
699
699
<pre class="programlisting">#define camel_type_get_global_classfuncs(x) ((CamelObjectClass *)(x))
713
<div class="refsect2" lang="en">
713
<div class="refsect2" title="camel_type_to_name ()">
714
714
<a name="camel-type-to-name"></a><h3>camel_type_to_name ()</h3>
715
715
<pre class="programlisting">const <span class="returnvalue">gchar</span> * camel_type_to_name (<em class="parameter"><code><a class="link" href="camel-CamelObject.html#CamelType" title="CamelType"><span class="type">CamelType</span></a> type</code></em>);</pre>
735
<div class="refsect2" lang="en">
735
<div class="refsect2" title="camel_name_to_type ()">
736
736
<a name="camel-name-to-type"></a><h3>camel_name_to_type ()</h3>
737
737
<pre class="programlisting"><a class="link" href="camel-CamelObject.html#CamelType" title="CamelType"><span class="returnvalue">CamelType</span></a> camel_name_to_type (<em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);</pre>
757
<div class="refsect2" lang="en">
757
<div class="refsect2" title="camel_object_class_add_event ()">
758
758
<a name="camel-object-class-add-event"></a><h3>camel_object_class_add_event ()</h3>
759
759
<pre class="programlisting"><span class="returnvalue">void</span> camel_object_class_add_event (<em class="parameter"><code><span class="type">CamelObjectClass</span> *klass</code></em>,
760
760
<em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
786
<div class="refsect2" lang="en">
786
<div class="refsect2" title="camel_object_class_add_interface ()">
787
787
<a name="camel-object-class-add-interface"></a><h3>camel_object_class_add_interface ()</h3>
788
788
<pre class="programlisting"><span class="returnvalue">void</span> camel_object_class_add_interface (<em class="parameter"><code><span class="type">CamelObjectClass</span> *klass</code></em>,
789
789
<em class="parameter"><code><a class="link" href="camel-CamelObject.html#CamelType" title="CamelType"><span class="type">CamelType</span></a> itype</code></em>);</pre>
790
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
790
<div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
791
791
<h3 class="title">Warning</h3>
792
792
<p><code class="literal">camel_object_class_add_interface</code> is deprecated and should not be used in newly-written code.</p>
813
<div class="refsect2" lang="en">
813
<div class="refsect2" title="camel_object_class_dump_tree ()">
814
814
<a name="camel-object-class-dump-tree"></a><h3>camel_object_class_dump_tree ()</h3>
815
815
<pre class="programlisting"><span class="returnvalue">void</span> camel_object_class_dump_tree (<em class="parameter"><code><a class="link" href="camel-CamelObject.html#CamelType" title="CamelType"><span class="type">CamelType</span></a> root</code></em>);</pre>
828
<div class="refsect2" lang="en">
828
<div class="refsect2" title="camel_object_cast ()">
829
829
<a name="camel-object-cast"></a><h3>camel_object_cast ()</h3>
830
830
<pre class="programlisting"><a class="link" href="camel-CamelObject.html#CamelObject" title="CamelObject"><span class="returnvalue">CamelObject</span></a> * camel_object_cast (<em class="parameter"><code><a class="link" href="camel-CamelObject.html#CamelObject" title="CamelObject"><span class="type">CamelObject</span></a> *obj</code></em>,
831
831
<em class="parameter"><code><a class="link" href="camel-CamelObject.html#CamelType" title="CamelType"><span class="type">CamelType</span></a> ctype</code></em>);</pre>
856
<div class="refsect2" lang="en">
856
<div class="refsect2" title="camel_object_is ()">
857
857
<a name="camel-object-is"></a><h3>camel_object_is ()</h3>
858
858
<pre class="programlisting"><span class="returnvalue">gboolean</span> camel_object_is (<em class="parameter"><code><a class="link" href="camel-CamelObject.html#CamelObject" title="CamelObject"><span class="type">CamelObject</span></a> *obj</code></em>,
859
859
<em class="parameter"><code><a class="link" href="camel-CamelObject.html#CamelType" title="CamelType"><span class="type">CamelType</span></a> ctype</code></em>);</pre>
884
<div class="refsect2" lang="en">
884
<div class="refsect2" title="camel_object_class_cast ()">
885
885
<a name="camel-object-class-cast"></a><h3>camel_object_class_cast ()</h3>
886
886
<pre class="programlisting"><span class="returnvalue">CamelObjectClass</span> * camel_object_class_cast (<em class="parameter"><code><span class="type">CamelObjectClass</span> *klass</code></em>,
887
887
<em class="parameter"><code><a class="link" href="camel-CamelObject.html#CamelType" title="CamelType"><span class="type">CamelType</span></a> ctype</code></em>);</pre>
912
<div class="refsect2" lang="en">
912
<div class="refsect2" title="camel_object_class_is ()">
913
913
<a name="camel-object-class-is"></a><h3>camel_object_class_is ()</h3>
914
914
<pre class="programlisting"><span class="returnvalue">gboolean</span> camel_object_class_is (<em class="parameter"><code><span class="type">CamelObjectClass</span> *klass</code></em>,
915
915
<em class="parameter"><code><a class="link" href="camel-CamelObject.html#CamelType" title="CamelType"><span class="type">CamelType</span></a> ctype</code></em>);</pre>
940
<div class="refsect2" lang="en">
940
<div class="refsect2" title="camel_interface_cast ()">
941
941
<a name="camel-interface-cast"></a><h3>camel_interface_cast ()</h3>
942
942
<pre class="programlisting"><span class="returnvalue">CamelObjectClass</span> * camel_interface_cast (<em class="parameter"><code><span class="type">CamelObjectClass</span> *klass</code></em>,
943
943
<em class="parameter"><code><a class="link" href="camel-CamelObject.html#CamelType" title="CamelType"><span class="type">CamelType</span></a> ctype</code></em>);</pre>
944
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
944
<div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
945
945
<h3 class="title">Warning</h3>
946
946
<p><code class="literal">camel_interface_cast</code> is deprecated and should not be used in newly-written code.</p>
972
<div class="refsect2" lang="en">
972
<div class="refsect2" title="camel_interface_is ()">
973
973
<a name="camel-interface-is"></a><h3>camel_interface_is ()</h3>
974
974
<pre class="programlisting"><span class="returnvalue">gboolean</span> camel_interface_is (<em class="parameter"><code><span class="type">CamelObjectClass</span> *k</code></em>,
975
975
<em class="parameter"><code><a class="link" href="camel-CamelObject.html#CamelType" title="CamelType"><span class="type">CamelType</span></a> ctype</code></em>);</pre>
976
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
976
<div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
977
977
<h3 class="title">Warning</h3>
978
978
<p><code class="literal">camel_interface_is</code> is deprecated and should not be used in newly-written code.</p>
1004
<div class="refsect2" lang="en">
1004
<div class="refsect2" title="camel_object_new ()">
1005
1005
<a name="camel-object-new"></a><h3>camel_object_new ()</h3>
1006
1006
<pre class="programlisting"><a class="link" href="camel-CamelObject.html#CamelObject" title="CamelObject"><span class="returnvalue">CamelObject</span></a> * camel_object_new (<em class="parameter"><code><a class="link" href="camel-CamelObject.html#CamelType" title="CamelType"><span class="type">CamelType</span></a> type</code></em>);</pre>
1026
<div class="refsect2" lang="en">
1026
<div class="refsect2" title="camel_object_ref ()">
1027
1027
<a name="camel-object-ref"></a><h3>camel_object_ref ()</h3>
1028
1028
<pre class="programlisting"><span class="returnvalue">void</span> camel_object_ref (<em class="parameter"><code><span class="type">gpointer</span> Param1</code></em>);</pre>
1041
<div class="refsect2" lang="en">
1041
<div class="refsect2" title="camel_object_unref ()">
1042
1042
<a name="camel-object-unref"></a><h3>camel_object_unref ()</h3>
1043
1043
<pre class="programlisting"><span class="returnvalue">void</span> camel_object_unref (<em class="parameter"><code><span class="type">gpointer</span> Param1</code></em>);</pre>
1056
<div class="refsect2" lang="en">
1056
<div class="refsect2" title="camel_object_hook_event ()">
1057
1057
<a name="camel-object-hook-event"></a><h3>camel_object_hook_event ()</h3>
1058
1058
<pre class="programlisting"><a class="link" href="camel-CamelObject.html#CamelObjectHookID" title="CamelObjectHookID"><span class="returnvalue">CamelObjectHookID</span></a> camel_object_hook_event (<em class="parameter"><code><span class="type">gpointer</span> obj</code></em>,
1059
1059
<em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
1096
<div class="refsect2" lang="en">
1096
<div class="refsect2" title="camel_object_remove_event ()">
1097
1097
<a name="camel-object-remove-event"></a><h3>camel_object_remove_event ()</h3>
1098
1098
<pre class="programlisting"><span class="returnvalue">void</span> camel_object_remove_event (<em class="parameter"><code><span class="type">gpointer</span> obj</code></em>,
1099
1099
<em class="parameter"><code><a class="link" href="camel-CamelObject.html#CamelObjectHookID" title="CamelObjectHookID"><span class="type">CamelObjectHookID</span></a> id</code></em>);</pre>
1119
<div class="refsect2" lang="en">
1119
<div class="refsect2" title="camel_object_unhook_event ()">
1120
1120
<a name="camel-object-unhook-event"></a><h3>camel_object_unhook_event ()</h3>
1121
1121
<pre class="programlisting"><span class="returnvalue">void</span> camel_object_unhook_event (<em class="parameter"><code><span class="type">gpointer</span> obj</code></em>,
1122
1122
<em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
1154
<div class="refsect2" lang="en">
1154
<div class="refsect2" title="camel_object_trigger_event ()">
1155
1155
<a name="camel-object-trigger-event"></a><h3>camel_object_trigger_event ()</h3>
1156
1156
<pre class="programlisting"><span class="returnvalue">void</span> camel_object_trigger_event (<em class="parameter"><code><span class="type">gpointer</span> obj</code></em>,
1157
1157
<em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
1183
<div class="refsect2" lang="en">
1183
<div class="refsect2" title="camel_object_get_interface ()">
1184
1184
<a name="camel-object-get-interface"></a><h3>camel_object_get_interface ()</h3>
1185
1185
<pre class="programlisting"><span class="returnvalue">gpointer</span> camel_object_get_interface (<em class="parameter"><code><span class="type">gpointer</span> vo</code></em>,
1186
1186
<em class="parameter"><code><a class="link" href="camel-CamelObject.html#CamelType" title="CamelType"><span class="type">CamelType</span></a> itype</code></em>);</pre>
1187
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
1187
<div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
1188
1188
<h3 class="title">Warning</h3>
1189
1189
<p><code class="literal">camel_object_get_interface</code> is deprecated and should not be used in newly-written code.</p>
1215
<div class="refsect2" lang="en">
1215
<div class="refsect2" title="camel_object_set ()">
1216
1216
<a name="camel-object-set"></a><h3>camel_object_set ()</h3>
1217
1217
<pre class="programlisting"><span class="returnvalue">gint</span> camel_object_set (<em class="parameter"><code><span class="type">gpointer</span> obj</code></em>,
1218
1218
<em class="parameter"><code><span class="type">struct _CamelException</span> *ex</code></em>,
1249
<div class="refsect2" lang="en">
1249
<div class="refsect2" title="camel_object_setv ()">
1250
1250
<a name="camel-object-setv"></a><h3>camel_object_setv ()</h3>
1251
1251
<pre class="programlisting"><span class="returnvalue">gint</span> camel_object_setv (<em class="parameter"><code><span class="type">gpointer</span> obj</code></em>,
1252
1252
<em class="parameter"><code><span class="type">struct _CamelException</span> *ex</code></em>,
1283
<div class="refsect2" lang="en">
1283
<div class="refsect2" title="camel_object_get ()">
1284
1284
<a name="camel-object-get"></a><h3>camel_object_get ()</h3>
1285
1285
<pre class="programlisting"><span class="returnvalue">gint</span> camel_object_get (<em class="parameter"><code><span class="type">gpointer</span> obj</code></em>,
1286
1286
<em class="parameter"><code><span class="type">struct _CamelException</span> *ex</code></em>,
1317
<div class="refsect2" lang="en">
1317
<div class="refsect2" title="camel_object_getv ()">
1318
1318
<a name="camel-object-getv"></a><h3>camel_object_getv ()</h3>
1319
1319
<pre class="programlisting"><span class="returnvalue">gint</span> camel_object_getv (<em class="parameter"><code><span class="type">gpointer</span> obj</code></em>,
1320
1320
<em class="parameter"><code><span class="type">struct _CamelException</span> *ex</code></em>,
1351
<div class="refsect2" lang="en">
1351
<div class="refsect2" title="camel_object_get_ptr ()">
1352
1352
<a name="camel-object-get-ptr"></a><h3>camel_object_get_ptr ()</h3>
1353
1353
<pre class="programlisting"><span class="returnvalue">gpointer</span> camel_object_get_ptr (<em class="parameter"><code><span class="type">gpointer</span> vo</code></em>,
1354
1354
<em class="parameter"><code><a class="link" href="camel-camel-exception.html#CamelException" title="struct CamelException"><span class="type">CamelException</span></a> *ex</code></em>,
1385
<div class="refsect2" lang="en">
1385
<div class="refsect2" title="camel_object_get_int ()">
1386
1386
<a name="camel-object-get-int"></a><h3>camel_object_get_int ()</h3>
1387
1387
<pre class="programlisting"><span class="returnvalue">gint</span> camel_object_get_int (<em class="parameter"><code><span class="type">gpointer</span> vo</code></em>,
1388
1388
<em class="parameter"><code><a class="link" href="camel-camel-exception.html#CamelException" title="struct CamelException"><span class="type">CamelException</span></a> *ex</code></em>,
1419
<div class="refsect2" lang="en">
1419
<div class="refsect2" title="camel_object_meta_get ()">
1420
1420
<a name="camel-object-meta-get"></a><h3>camel_object_meta_get ()</h3>
1421
1421
<pre class="programlisting"><span class="returnvalue">gchar</span> * camel_object_meta_get (<em class="parameter"><code><span class="type">gpointer</span> vo</code></em>,
1422
1422
<em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);</pre>
1424
Get a meta-data on an object.</p>
1424
Get a meta-data on an object.
1425
1426
<div class="variablelist"><table border="0">
1426
1427
<col align="left" valign="top">
1435
<div class="refsect2" lang="en">
1436
<div class="refsect2" title="camel_object_meta_set ()">
1436
1437
<a name="camel-object-meta-set"></a><h3>camel_object_meta_set ()</h3>
1437
1438
<pre class="programlisting"><span class="returnvalue">gboolean</span> camel_object_meta_set (<em class="parameter"><code><span class="type">gpointer</span> vo</code></em>,
1438
1439
<em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
1445
1446
If the meta-data changes, is added, or removed, then a
1446
1447
"meta_changed" event will be triggered with the name of the changed
1448
1450
<div class="variablelist"><table border="0">
1449
1451
<col align="left" valign="top">
1471
<div class="refsect2" lang="en">
1473
<div class="refsect2" title="camel_object_state_read ()">
1472
1474
<a name="camel-object-state-read"></a><h3>camel_object_state_read ()</h3>
1473
1475
<pre class="programlisting"><span class="returnvalue">gint</span> camel_object_state_read (<em class="parameter"><code><span class="type">gpointer</span> vo</code></em>);</pre>
1475
Read persistent object state from object_set(CAMEL_OBJECT_STATE_FILE).</p>
1477
Read persistent object state from object_set(CAMEL_OBJECT_STATE_FILE).
1476
1479
<div class="variablelist"><table border="0">
1477
1480
<col align="left" valign="top">
1486
<div class="refsect2" lang="en">
1489
<div class="refsect2" title="camel_object_state_write ()">
1487
1490
<a name="camel-object-state-write"></a><h3>camel_object_state_write ()</h3>
1488
1491
<pre class="programlisting"><span class="returnvalue">gint</span> camel_object_state_write (<em class="parameter"><code><span class="type">gpointer</span> vo</code></em>);</pre>
1490
Write persistent state to the file as set by object_set(CAMEL_OBJECT_STATE_FILE).</p>
1493
Write persistent state to the file as set by object_set(CAMEL_OBJECT_STATE_FILE).
1491
1495
<div class="variablelist"><table border="0">
1492
1496
<col align="left" valign="top">
1501
<div class="refsect2" lang="en">
1505
<div class="refsect2" title="camel_object_free ()">
1502
1506
<a name="camel-object-free"></a><h3>camel_object_free ()</h3>
1503
1507
<pre class="programlisting"><span class="returnvalue">void</span> camel_object_free (<em class="parameter"><code><span class="type">gpointer</span> vo</code></em>,
1504
1508
<em class="parameter"><code><span class="type">guint32</span> tag</code></em>,
1530
<div class="refsect2" lang="en">
1534
<div class="refsect2" title="CamelObjectBag">
1531
1535
<a name="CamelObjectBag"></a><h3>CamelObjectBag</h3>
1532
1536
<pre class="programlisting">typedef struct _CamelObjectBag CamelObjectBag;</pre>
1537
<div class="refsect2" lang="en">
1541
<div class="refsect2" title="CamelCopyFunc ()">
1538
1542
<a name="CamelCopyFunc"></a><h3>CamelCopyFunc ()</h3>
1539
1543
<pre class="programlisting"><span class="returnvalue">gpointer</span> (*CamelCopyFunc) (<em class="parameter"><code><span class="type">gconstpointer</span> vo</code></em>);</pre>
1559
<div class="refsect2" lang="en">
1563
<div class="refsect2" title="camel_object_bag_new ()">
1560
1564
<a name="camel-object-bag-new"></a><h3>camel_object_bag_new ()</h3>
1561
1565
<pre class="programlisting"><a class="link" href="camel-CamelObject.html#CamelObjectBag" title="CamelObjectBag"><span class="returnvalue">CamelObjectBag</span></a> * camel_object_bag_new (<em class="parameter"><code><span class="type">GHashFunc</span> hash</code></em>,
1562
1566
<em class="parameter"><code><span class="type">GEqualFunc</span> equal</code></em>,
1566
1570
Allocate a new object bag. Object bag's are key'd hash tables of
1567
1571
camel-objects which can be updated atomically using transaction
1569
1574
<div class="variablelist"><table border="0">
1570
1575
<col align="left" valign="top">
1579
<div class="refsect2" lang="en">
1584
<div class="refsect2" title="camel_object_bag_get ()">
1580
1585
<a name="camel-object-bag-get"></a><h3>camel_object_bag_get ()</h3>
1581
1586
<pre class="programlisting"><span class="returnvalue">gpointer</span> camel_object_bag_get (<em class="parameter"><code><a class="link" href="camel-CamelObject.html#CamelObjectBag" title="CamelObjectBag"><span class="type">CamelObjectBag</span></a> *bag</code></em>,
1582
1587
<em class="parameter"><code><span class="type">gconstpointer</span> key</code></em>);</pre>
1584
1589
Lookup an object by <em class="parameter"><code>key</code></em>. If the key is currently reserved, then
1585
wait until the key has been committed before continuing.</p>
1590
wait until the key has been committed before continuing.
1586
1592
<div class="variablelist"><table border="0">
1587
1593
<col align="left" valign="top">
1598
<div class="refsect2" lang="en">
1604
<div class="refsect2" title="camel_object_bag_peek ()">
1599
1605
<a name="camel-object-bag-peek"></a><h3>camel_object_bag_peek ()</h3>
1600
1606
<pre class="programlisting"><span class="returnvalue">gpointer</span> camel_object_bag_peek (<em class="parameter"><code><a class="link" href="camel-CamelObject.html#CamelObjectBag" title="CamelObjectBag"><span class="type">CamelObjectBag</span></a> *bag</code></em>,
1601
1607
<em class="parameter"><code><span class="type">gconstpointer</span> key</code></em>);</pre>
1621
<div class="refsect2" lang="en">
1628
<div class="refsect2" title="camel_object_bag_reserve ()">
1622
1629
<a name="camel-object-bag-reserve"></a><h3>camel_object_bag_reserve ()</h3>
1623
1630
<pre class="programlisting"><span class="returnvalue">gpointer</span> camel_object_bag_reserve (<em class="parameter"><code><a class="link" href="camel-CamelObject.html#CamelObjectBag" title="CamelObjectBag"><span class="type">CamelObjectBag</span></a> *bag</code></em>,
1624
1631
<em class="parameter"><code><span class="type">gconstpointer</span> key</code></em>);</pre>
1636
1643
You may reserve multiple keys from the same thread, but they should
1637
always be reserved in the same order, to avoid deadlocks.</p>
1644
always be reserved in the same order, to avoid deadlocks.
1638
1646
<div class="variablelist"><table border="0">
1639
1647
<col align="left" valign="top">
1648
<div class="refsect2" lang="en">
1656
<div class="refsect2" title="camel_object_bag_add ()">
1649
1657
<a name="camel-object-bag-add"></a><h3>camel_object_bag_add ()</h3>
1650
1658
<pre class="programlisting"><span class="returnvalue">void</span> camel_object_bag_add (<em class="parameter"><code><a class="link" href="camel-CamelObject.html#CamelObjectBag" title="CamelObjectBag"><span class="type">CamelObjectBag</span></a> *bag</code></em>,
1651
1659
<em class="parameter"><code><span class="type">gconstpointer</span> key</code></em>,
1652
1660
<em class="parameter"><code><span class="type">gpointer</span> vo</code></em>);</pre>
1654
1662
Add an object <em class="parameter"><code>vo</code></em> to the object bag <em class="parameter"><code>bag</code></em>. The <em class="parameter"><code>key</code></em> MUST have
1655
previously been reserved using <a class="link" href="camel-CamelObject.html#camel-object-bag-reserve" title="camel_object_bag_reserve ()"><code class="function">camel_object_bag_reserve()</code></a>.</p>
1663
previously been reserved using <a class="link" href="camel-CamelObject.html#camel-object-bag-reserve" title="camel_object_bag_reserve ()"><code class="function">camel_object_bag_reserve()</code></a>.
1658
<div class="refsect2" lang="en">
1667
<div class="refsect2" title="camel_object_bag_abort ()">
1659
1668
<a name="camel-object-bag-abort"></a><h3>camel_object_bag_abort ()</h3>
1660
1669
<pre class="programlisting"><span class="returnvalue">void</span> camel_object_bag_abort (<em class="parameter"><code><a class="link" href="camel-CamelObject.html#CamelObjectBag" title="CamelObjectBag"><span class="type">CamelObjectBag</span></a> *bag</code></em>,
1661
1670
<em class="parameter"><code><span class="type">gconstpointer</span> key</code></em>);</pre>
1663
Abort a key reservation.</p>
1672
Abort a key reservation.
1666
<div class="refsect2" lang="en">
1676
<div class="refsect2" title="camel_object_bag_rekey ()">
1667
1677
<a name="camel-object-bag-rekey"></a><h3>camel_object_bag_rekey ()</h3>
1668
1678
<pre class="programlisting"><span class="returnvalue">void</span> camel_object_bag_rekey (<em class="parameter"><code><a class="link" href="camel-CamelObject.html#CamelObjectBag" title="CamelObjectBag"><span class="type">CamelObjectBag</span></a> *bag</code></em>,
1669
1679
<em class="parameter"><code><span class="type">gpointer</span> o</code></em>,
1673
1683
<em class="parameter"><code>newkey</code></em>, in an atomic manner.
1676
It is an api (fatal) error if <em class="parameter"><code>o</code></em> is not currently in the bag.</p>
1686
It is an api (fatal) error if <em class="parameter"><code>o</code></em> is not currently in the bag.
1679
<div class="refsect2" lang="en">
1690
<div class="refsect2" title="camel_object_bag_list ()">
1680
1691
<a name="camel-object-bag-list"></a><h3>camel_object_bag_list ()</h3>
1681
1692
<pre class="programlisting"><span class="returnvalue">GPtrArray</span> * camel_object_bag_list (<em class="parameter"><code><a class="link" href="camel-CamelObject.html#CamelObjectBag" title="CamelObjectBag"><span class="type">CamelObjectBag</span></a> *bag</code></em>);</pre>
1701
<div class="refsect2" lang="en">
1712
<div class="refsect2" title="camel_object_bag_remove ()">
1702
1713
<a name="camel-object-bag-remove"></a><h3>camel_object_bag_remove ()</h3>
1703
1714
<pre class="programlisting"><span class="returnvalue">void</span> camel_object_bag_remove (<em class="parameter"><code><a class="link" href="camel-CamelObject.html#CamelObjectBag" title="CamelObjectBag"><span class="type">CamelObjectBag</span></a> *bag</code></em>,
1704
1715
<em class="parameter"><code><span class="type">gpointer</span> o</code></em>);</pre>
1724
<div class="refsect2" lang="en">
1735
<div class="refsect2" title="camel_object_bag_destroy ()">
1725
1736
<a name="camel-object-bag-destroy"></a><h3>camel_object_bag_destroy ()</h3>
1726
1737
<pre class="programlisting"><span class="returnvalue">void</span> camel_object_bag_destroy (<em class="parameter"><code><a class="link" href="camel-CamelObject.html#CamelObjectBag" title="CamelObjectBag"><span class="type">CamelObjectBag</span></a> *bag</code></em>);</pre>
1739
<div class="refsect2" lang="en">
1750
<div class="refsect2" title="CAMEL_MAKE_CLASS()">
1740
1751
<a name="CAMEL-MAKE-CLASS:CAPS"></a><h3>CAMEL_MAKE_CLASS()</h3>
1741
1752
<pre class="programlisting">#define CAMEL_MAKE_CLASS(type, tname, parent, pname)</pre>
1771
<div class="refsect2" lang="en">
1782
<div class="refsect2" title="CamelIteratorVTable">
1772
1783
<a name="CamelIteratorVTable"></a><h3>CamelIteratorVTable</h3>
1773
1784
<pre class="programlisting">typedef struct {
1774
1785
/* free fields, dont free base object */
1781
1792
gint (*length)(gpointer it);
1782
1793
} CamelIteratorVTable;
1784
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
1795
<div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
1785
1796
<h3 class="title">Warning</h3>
1786
1797
<p><code class="literal">CamelIteratorVTable</code> is deprecated and should not be used in newly-written code.</p>
1792
<div class="refsect2" lang="en">
1803
<div class="refsect2" title="CamelIterator">
1793
1804
<a name="CamelIterator"></a><h3>CamelIterator</h3>
1794
1805
<pre class="programlisting">typedef struct {
1795
1806
CamelIteratorVTable *klass;
1797
1808
/* subclasses adds new fields afterwards */
1798
1809
} CamelIterator;
1800
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
1811
<div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
1801
1812
<h3 class="title">Warning</h3>
1802
1813
<p><code class="literal">CamelIterator</code> is deprecated and should not be used in newly-written code.</p>
1808
<div class="refsect2" lang="en">
1819
<div class="refsect2" title="camel_iterator_new ()">
1809
1820
<a name="camel-iterator-new"></a><h3>camel_iterator_new ()</h3>
1810
1821
<pre class="programlisting"><span class="returnvalue">gpointer</span> camel_iterator_new (<em class="parameter"><code><a class="link" href="camel-CamelObject.html#CamelIteratorVTable" title="CamelIteratorVTable"><span class="type">CamelIteratorVTable</span></a> *klass</code></em>,
1811
1822
<em class="parameter"><code><span class="type">gsize</span> size</code></em>);</pre>
1812
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
1823
<div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
1813
1824
<h3 class="title">Warning</h3>
1814
1825
<p><code class="literal">camel_iterator_new</code> is deprecated and should not be used in newly-written code.</p>
1840
<div class="refsect2" lang="en">
1851
<div class="refsect2" title="camel_iterator_free ()">
1841
1852
<a name="camel-iterator-free"></a><h3>camel_iterator_free ()</h3>
1842
1853
<pre class="programlisting"><span class="returnvalue">void</span> camel_iterator_free (<em class="parameter"><code><span class="type">gpointer</span> it</code></em>);</pre>
1843
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
1854
<div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
1844
1855
<h3 class="title">Warning</h3>
1845
1856
<p><code class="literal">camel_iterator_free</code> is deprecated and should not be used in newly-written code.</p>
1859
<div class="refsect2" lang="en">
1870
<div class="refsect2" title="camel_iterator_next ()">
1860
1871
<a name="camel-iterator-next"></a><h3>camel_iterator_next ()</h3>
1861
1872
<pre class="programlisting"><span class="returnvalue">gconstpointer</span> camel_iterator_next (<em class="parameter"><code><span class="type">gpointer</span> it</code></em>,
1862
1873
<em class="parameter"><code><a class="link" href="camel-camel-exception.html#CamelException" title="struct CamelException"><span class="type">CamelException</span></a> *ex</code></em>);</pre>
1863
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
1874
<div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
1864
1875
<h3 class="title">Warning</h3>
1865
1876
<p><code class="literal">camel_iterator_next</code> is deprecated and should not be used in newly-written code.</p>
1891
<div class="refsect2" lang="en">
1902
<div class="refsect2" title="camel_iterator_reset ()">
1892
1903
<a name="camel-iterator-reset"></a><h3>camel_iterator_reset ()</h3>
1893
1904
<pre class="programlisting"><span class="returnvalue">void</span> camel_iterator_reset (<em class="parameter"><code><span class="type">gpointer</span> it</code></em>);</pre>
1894
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
1905
<div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
1895
1906
<h3 class="title">Warning</h3>
1896
1907
<p><code class="literal">camel_iterator_reset</code> is deprecated and should not be used in newly-written code.</p>
1910
<div class="refsect2" lang="en">
1921
<div class="refsect2" title="camel_iterator_length ()">
1911
1922
<a name="camel-iterator-length"></a><h3>camel_iterator_length ()</h3>
1912
1923
<pre class="programlisting"><span class="returnvalue">gint</span> camel_iterator_length (<em class="parameter"><code><span class="type">gpointer</span> it</code></em>);</pre>
1913
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
1924
<div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
1914
1925
<h3 class="title">Warning</h3>
1915
1926
<p><code class="literal">camel_iterator_length</code> is deprecated and should not be used in newly-written code.</p>