38
36
<td valign="top" align="right"></td>
39
37
</tr></table></div>
40
<div class="refsynopsisdiv" title="Synopsis">
38
<div class="refsynopsisdiv">
41
39
<a name="libedataserver-EFlag.synopsis"></a><h2>Synopsis</h2>
42
<pre class="synopsis">
43
<a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag">EFlag</a>;
44
<a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag">EFlag</a> * <a class="link" href="libedataserver-EFlag.html#e-flag-new" title="e_flag_new ()">e_flag_new</a> (void);
46
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"
47
>gboolean</a> <a class="link" href="libedataserver-EFlag.html#e-flag-is-set" title="e_flag_is_set ()">e_flag_is_set</a> (<a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag">EFlag</a> *flag);
48
void <a class="link" href="libedataserver-EFlag.html#e-flag-set" title="e_flag_set ()">e_flag_set</a> (<a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag">EFlag</a> *flag);
49
void <a class="link" href="libedataserver-EFlag.html#e-flag-clear" title="e_flag_clear ()">e_flag_clear</a> (<a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag">EFlag</a> *flag);
50
void <a class="link" href="libedataserver-EFlag.html#e-flag-wait" title="e_flag_wait ()">e_flag_wait</a> (<a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag">EFlag</a> *flag);
52
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"
53
>gboolean</a> <a class="link" href="libedataserver-EFlag.html#e-flag-timed-wait" title="e_flag_timed_wait ()">e_flag_timed_wait</a> (<a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag">EFlag</a> *flag,
55
href="/usr/share/gtk-doc/html/glib/glib-Date-and-Time-Functions.html#GTimeVal"
56
>GTimeVal</a> *abs_time);
57
void <a class="link" href="libedataserver-EFlag.html#e-flag-free" title="e_flag_free ()">e_flag_free</a> (<a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag">EFlag</a> *flag);
40
<pre class="synopsis"> <a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag">EFlag</a>;
41
<a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="returnvalue">EFlag</span></a> * <a class="link" href="libedataserver-EFlag.html#e-flag-new" title="e_flag_new ()">e_flag_new</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
42
<span class="returnvalue">gboolean</span> <a class="link" href="libedataserver-EFlag.html#e-flag-is-set" title="e_flag_is_set ()">e_flag_is_set</a> (<em class="parameter"><code><a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a> *flag</code></em>);
43
<span class="returnvalue">void</span> <a class="link" href="libedataserver-EFlag.html#e-flag-set" title="e_flag_set ()">e_flag_set</a> (<em class="parameter"><code><a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a> *flag</code></em>);
44
<span class="returnvalue">void</span> <a class="link" href="libedataserver-EFlag.html#e-flag-clear" title="e_flag_clear ()">e_flag_clear</a> (<em class="parameter"><code><a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a> *flag</code></em>);
45
<span class="returnvalue">void</span> <a class="link" href="libedataserver-EFlag.html#e-flag-wait" title="e_flag_wait ()">e_flag_wait</a> (<em class="parameter"><code><a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a> *flag</code></em>);
46
<span class="returnvalue">gboolean</span> <a class="link" href="libedataserver-EFlag.html#e-flag-timed-wait" title="e_flag_timed_wait ()">e_flag_timed_wait</a> (<em class="parameter"><code><a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a> *flag</code></em>,
47
<em class="parameter"><code><span class="type">GTimeVal</span> *abs_time</code></em>);
48
<span class="returnvalue">void</span> <a class="link" href="libedataserver-EFlag.html#e-flag-free" title="e_flag_free ()">e_flag_free</a> (<em class="parameter"><code><a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a> *flag</code></em>);
60
<div class="refsect1" title="Description">
51
<div class="refsect1" lang="en">
61
52
<a name="libedataserver-EFlag.description"></a><h2>Description</h2>
63
54
An <a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a> is a simple thread synchronization mechanism. It implements a
64
55
thread-safe flag that can be blocked on.
67
<div class="refsect1" title="Details">
58
<div class="refsect1" lang="en">
68
59
<a name="libedataserver-EFlag.details"></a><h2>Details</h2>
69
<div class="refsect2" title="EFlag">
60
<div class="refsect2" lang="en">
70
61
<a name="EFlag"></a><h3>EFlag</h3>
71
62
<pre class="programlisting">typedef struct _EFlag EFlag;</pre>
96
<div class="refsect2" title="e_flag_is_set ()">
85
<div class="refsect2" lang="en">
97
86
<a name="e-flag-is-set"></a><h3>e_flag_is_set ()</h3>
98
<pre class="programlisting"><a
99
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"
100
>gboolean</a> e_flag_is_set (<a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag">EFlag</a> *flag);</pre>
87
<pre class="programlisting"><span class="returnvalue">gboolean</span> e_flag_is_set (<em class="parameter"><code><a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a> *flag</code></em>);</pre>
102
89
Returns the state of <em class="parameter"><code>flag</code></em>.</p>
105
90
<div class="variablelist"><table border="0">
106
91
<col align="left" valign="top">
109
94
<td><p><span class="term"><em class="parameter"><code>flag</code></em> :</span></p></td>
110
<td> an <a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a>
95
<td>an <a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a>
114
99
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
116
href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE--CAPS"
117
><code class="literal">TRUE</code></a> if <em class="parameter"><code>flag</code></em> is set
100
<td> <code class="literal">TRUE</code> if <em class="parameter"><code>flag</code></em> is set
124
<div class="refsect2" title="e_flag_set ()">
107
<div class="refsect2" lang="en">
125
108
<a name="e-flag-set"></a><h3>e_flag_set ()</h3>
126
<pre class="programlisting">void e_flag_set (<a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag">EFlag</a> *flag);</pre>
109
<pre class="programlisting"><span class="returnvalue">void</span> e_flag_set (<em class="parameter"><code><a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a> *flag</code></em>);</pre>
128
111
Sets <em class="parameter"><code>flag</code></em>. All threads waiting on <em class="parameter"><code>flag</code></em> are woken up. Threads that
129
112
call <a class="link" href="libedataserver-EFlag.html#e-flag-wait" title="e_flag_wait ()"><code class="function">e_flag_wait()</code></a> or <a class="link" href="libedataserver-EFlag.html#e-flag-timed-wait" title="e_flag_timed_wait ()"><code class="function">e_flag_timed_wait()</code></a> once <em class="parameter"><code>flag</code></em> is set will not
130
113
block at all.</p>
133
114
<div class="variablelist"><table border="0">
134
115
<col align="left" valign="top">
136
117
<td><p><span class="term"><em class="parameter"><code>flag</code></em> :</span></p></td>
137
<td> an <a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a>
118
<td>an <a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a>
143
<div class="refsect2" title="e_flag_clear ()">
124
<div class="refsect2" lang="en">
144
125
<a name="e-flag-clear"></a><h3>e_flag_clear ()</h3>
145
<pre class="programlisting">void e_flag_clear (<a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag">EFlag</a> *flag);</pre>
126
<pre class="programlisting"><span class="returnvalue">void</span> e_flag_clear (<em class="parameter"><code><a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a> *flag</code></em>);</pre>
147
128
Unsets <em class="parameter"><code>flag</code></em>. Subsequent calls to <a class="link" href="libedataserver-EFlag.html#e-flag-wait" title="e_flag_wait ()"><code class="function">e_flag_wait()</code></a> or <a class="link" href="libedataserver-EFlag.html#e-flag-timed-wait" title="e_flag_timed_wait ()"><code class="function">e_flag_timed_wait()</code></a>
148
129
will block until <em class="parameter"><code>flag</code></em> is set.</p>
151
130
<div class="variablelist"><table border="0">
152
131
<col align="left" valign="top">
154
133
<td><p><span class="term"><em class="parameter"><code>flag</code></em> :</span></p></td>
155
<td> an <a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a>
134
<td>an <a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a>
161
<div class="refsect2" title="e_flag_wait ()">
140
<div class="refsect2" lang="en">
162
141
<a name="e-flag-wait"></a><h3>e_flag_wait ()</h3>
163
<pre class="programlisting">void e_flag_wait (<a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag">EFlag</a> *flag);</pre>
142
<pre class="programlisting"><span class="returnvalue">void</span> e_flag_wait (<em class="parameter"><code><a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a> *flag</code></em>);</pre>
165
144
Blocks until <em class="parameter"><code>flag</code></em> is set. If <em class="parameter"><code>flag</code></em> is already set, the function returns
169
146
<div class="variablelist"><table border="0">
170
147
<col align="left" valign="top">
172
149
<td><p><span class="term"><em class="parameter"><code>flag</code></em> :</span></p></td>
173
<td> an <a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a>
150
<td>an <a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a>
179
<div class="refsect2" title="e_flag_timed_wait ()">
156
<div class="refsect2" lang="en">
180
157
<a name="e-flag-timed-wait"></a><h3>e_flag_timed_wait ()</h3>
181
<pre class="programlisting"><a
182
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"
183
>gboolean</a> e_flag_timed_wait (<a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag">EFlag</a> *flag,
185
href="/usr/share/gtk-doc/html/glib/glib-Date-and-Time-Functions.html#GTimeVal"
186
>GTimeVal</a> *abs_time);</pre>
158
<pre class="programlisting"><span class="returnvalue">gboolean</span> e_flag_timed_wait (<em class="parameter"><code><a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a> *flag</code></em>,
159
<em class="parameter"><code><span class="type">GTimeVal</span> *abs_time</code></em>);</pre>
188
161
Blocks until <em class="parameter"><code>flag</code></em> is set, or until the time specified by <em class="parameter"><code>abs_time</code></em>.
189
162
If <em class="parameter"><code>flag</code></em> is already set, the function returns immediately. The return
190
163
value indicates the state of <em class="parameter"><code>flag</code></em> after waiting.
193
If <em class="parameter"><code>abs_time</code></em> is <a
194
href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL--CAPS"
195
><code class="literal">NULL</code></a>, <a class="link" href="libedataserver-EFlag.html#e-flag-timed-wait" title="e_flag_timed_wait ()"><code class="function">e_flag_timed_wait()</code></a> acts like <a class="link" href="libedataserver-EFlag.html#e-flag-wait" title="e_flag_wait ()"><code class="function">e_flag_wait()</code></a>.
198
To easily calculate <em class="parameter"><code>abs_time</code></em>, a combination of <a
199
href="/usr/share/gtk-doc/html/glib/glib-Date-and-Time-Functions.html#g-get-current-time"
200
><code class="function">g_get_current_time()</code></a> and
202
href="/usr/share/gtk-doc/html/glib/glib-Date-and-Time-Functions.html#g-time-val-add"
203
><code class="function">g_time_val_add()</code></a> can be used.</p>
166
If <em class="parameter"><code>abs_time</code></em> is <code class="literal">NULL</code>, <a class="link" href="libedataserver-EFlag.html#e-flag-timed-wait" title="e_flag_timed_wait ()"><code class="function">e_flag_timed_wait()</code></a> acts like <a class="link" href="libedataserver-EFlag.html#e-flag-wait" title="e_flag_wait ()"><code class="function">e_flag_wait()</code></a>.
169
To easily calculate <em class="parameter"><code>abs_time</code></em>, a combination of <code class="function">g_get_current_time()</code> and
170
<code class="function">g_time_val_add()</code> can be used.</p>
206
171
<div class="variablelist"><table border="0">
207
172
<col align="left" valign="top">
210
175
<td><p><span class="term"><em class="parameter"><code>flag</code></em> :</span></p></td>
211
<td> an <a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a>
176
<td>an <a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a>
215
180
<td><p><span class="term"><em class="parameter"><code>abs_time</code></em> :</span></p></td>
217
href="/usr/share/gtk-doc/html/glib/glib-Date-and-Time-Functions.html#GTimeVal"
218
><span class="type">GTimeVal</span></a>, determining the final time
181
<td>a <span class="type">GTimeVal</span>, determining the final time
222
185
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
224
href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE--CAPS"
225
><code class="literal">TRUE</code></a> if <em class="parameter"><code>flag</code></em> is now set
186
<td> <code class="literal">TRUE</code> if <em class="parameter"><code>flag</code></em> is now set
232
<div class="refsect2" title="e_flag_free ()">
193
<div class="refsect2" lang="en">
233
194
<a name="e-flag-free"></a><h3>e_flag_free ()</h3>
234
<pre class="programlisting">void e_flag_free (<a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag">EFlag</a> *flag);</pre>
195
<pre class="programlisting"><span class="returnvalue">void</span> e_flag_free (<em class="parameter"><code><a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a> *flag</code></em>);</pre>
236
197
Destroys <em class="parameter"><code>flag</code></em>.</p>
239
198
<div class="variablelist"><table border="0">
240
199
<col align="left" valign="top">
242
201
<td><p><span class="term"><em class="parameter"><code>flag</code></em> :</span></p></td>
243
<td> an <a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a>
202
<td>an <a class="link" href="libedataserver-EFlag.html#EFlag" title="EFlag"><span class="type">EFlag</span></a>