~ubuntu-branches/ubuntu/trusty/ocamlnet/trusty

« back to all changes in this revision

Viewing changes to doc/html-main/Unixqueue.event_system-c.html

  • Committer: Bazaar Package Importer
  • Author(s): Stéphane Glondu
  • Date: 2011-09-02 14:12:33 UTC
  • mfrom: (18.2.3 sid)
  • Revision ID: james.westby@ubuntu.com-20110902141233-zbj0ygxb92u6gy4z
Tags: 3.4-1
* New upstream release
  - add a new NetcgiRequire directive to ease dependency management
    (Closes: #637147)
  - remove patches that were applied upstream:
    + Added-missing-shebang-lines-in-example-shell-scripts
    + Try-also-ocamlc-for-POSIX-threads

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 
2
<html>
 
3
<head>
 
4
<link rel="stylesheet" href="style.css" type="text/css">
 
5
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
 
6
<link rel="Start" href="index.html">
 
7
<link rel="Up" href="Unixqueue.html">
 
8
<link title="Index of types" rel=Appendix href="index_types.html">
 
9
<link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
 
10
<link title="Index of values" rel=Appendix href="index_values.html">
 
11
<link title="Index of class attributes" rel=Appendix href="index_attributes.html">
 
12
<link title="Index of class methods" rel=Appendix href="index_methods.html">
 
13
<link title="Index of classes" rel=Appendix href="index_classes.html">
 
14
<link title="Index of class types" rel=Appendix href="index_class_types.html">
 
15
<link title="Index of modules" rel=Appendix href="index_modules.html">
 
16
<link title="Index of module types" rel=Appendix href="index_module_types.html">
 
17
<link title="Uq_gtk" rel="Chapter" href="Uq_gtk.html">
 
18
<link title="Uq_ssl" rel="Chapter" href="Uq_ssl.html">
 
19
<link title="Https_client" rel="Chapter" href="Https_client.html">
 
20
<link title="Uq_tcl" rel="Chapter" href="Uq_tcl.html">
 
21
<link title="Equeue" rel="Chapter" href="Equeue.html">
 
22
<link title="Unixqueue" rel="Chapter" href="Unixqueue.html">
 
23
<link title="Unixqueue_pollset" rel="Chapter" href="Unixqueue_pollset.html">
 
24
<link title="Unixqueue_select" rel="Chapter" href="Unixqueue_select.html">
 
25
<link title="Uq_resolver" rel="Chapter" href="Uq_resolver.html">
 
26
<link title="Uq_engines" rel="Chapter" href="Uq_engines.html">
 
27
<link title="Uq_socks5" rel="Chapter" href="Uq_socks5.html">
 
28
<link title="Uq_io" rel="Chapter" href="Uq_io.html">
 
29
<link title="Uq_lwt" rel="Chapter" href="Uq_lwt.html">
 
30
<link title="Uq_libevent" rel="Chapter" href="Uq_libevent.html">
 
31
<link title="Equeue_intro" rel="Chapter" href="Equeue_intro.html">
 
32
<link title="Netcamlbox" rel="Chapter" href="Netcamlbox.html">
 
33
<link title="Netcgi_apache" rel="Chapter" href="Netcgi_apache.html">
 
34
<link title="Netcgi_modtpl" rel="Chapter" href="Netcgi_modtpl.html">
 
35
<link title="Netcgi_plex" rel="Chapter" href="Netcgi_plex.html">
 
36
<link title="Netcgi_common" rel="Chapter" href="Netcgi_common.html">
 
37
<link title="Netcgi" rel="Chapter" href="Netcgi.html">
 
38
<link title="Netcgi_ajp" rel="Chapter" href="Netcgi_ajp.html">
 
39
<link title="Netcgi_scgi" rel="Chapter" href="Netcgi_scgi.html">
 
40
<link title="Netcgi_cgi" rel="Chapter" href="Netcgi_cgi.html">
 
41
<link title="Netcgi_fcgi" rel="Chapter" href="Netcgi_fcgi.html">
 
42
<link title="Netcgi_dbi" rel="Chapter" href="Netcgi_dbi.html">
 
43
<link title="Netcgi1_compat" rel="Chapter" href="Netcgi1_compat.html">
 
44
<link title="Netcgi_test" rel="Chapter" href="Netcgi_test.html">
 
45
<link title="Netcgi_porting" rel="Chapter" href="Netcgi_porting.html">
 
46
<link title="Http_client_conncache" rel="Chapter" href="Http_client_conncache.html">
 
47
<link title="Http_client" rel="Chapter" href="Http_client.html">
 
48
<link title="Telnet_client" rel="Chapter" href="Telnet_client.html">
 
49
<link title="Ftp_data_endpoint" rel="Chapter" href="Ftp_data_endpoint.html">
 
50
<link title="Ftp_client" rel="Chapter" href="Ftp_client.html">
 
51
<link title="Http_fs" rel="Chapter" href="Http_fs.html">
 
52
<link title="Ftp_fs" rel="Chapter" href="Ftp_fs.html">
 
53
<link title="Netclient_tut" rel="Chapter" href="Netclient_tut.html">
 
54
<link title="Netgssapi" rel="Chapter" href="Netgssapi.html">
 
55
<link title="Nethttpd_types" rel="Chapter" href="Nethttpd_types.html">
 
56
<link title="Nethttpd_kernel" rel="Chapter" href="Nethttpd_kernel.html">
 
57
<link title="Nethttpd_reactor" rel="Chapter" href="Nethttpd_reactor.html">
 
58
<link title="Nethttpd_engine" rel="Chapter" href="Nethttpd_engine.html">
 
59
<link title="Nethttpd_services" rel="Chapter" href="Nethttpd_services.html">
 
60
<link title="Nethttpd_plex" rel="Chapter" href="Nethttpd_plex.html">
 
61
<link title="Nethttpd_util" rel="Chapter" href="Nethttpd_util.html">
 
62
<link title="Nethttpd_intro" rel="Chapter" href="Nethttpd_intro.html">
 
63
<link title="Netmech_scram" rel="Chapter" href="Netmech_scram.html">
 
64
<link title="Netmech_scram_gssapi" rel="Chapter" href="Netmech_scram_gssapi.html">
 
65
<link title="Netmcore" rel="Chapter" href="Netmcore.html">
 
66
<link title="Netmcore_camlbox" rel="Chapter" href="Netmcore_camlbox.html">
 
67
<link title="Netmcore_mempool" rel="Chapter" href="Netmcore_mempool.html">
 
68
<link title="Netmcore_heap" rel="Chapter" href="Netmcore_heap.html">
 
69
<link title="Netmcore_ref" rel="Chapter" href="Netmcore_ref.html">
 
70
<link title="Netmcore_array" rel="Chapter" href="Netmcore_array.html">
 
71
<link title="Netmcore_sem" rel="Chapter" href="Netmcore_sem.html">
 
72
<link title="Netmcore_mutex" rel="Chapter" href="Netmcore_mutex.html">
 
73
<link title="Netmcore_condition" rel="Chapter" href="Netmcore_condition.html">
 
74
<link title="Netmcore_queue" rel="Chapter" href="Netmcore_queue.html">
 
75
<link title="Netmcore_buffer" rel="Chapter" href="Netmcore_buffer.html">
 
76
<link title="Netmcore_matrix" rel="Chapter" href="Netmcore_matrix.html">
 
77
<link title="Netmcore_hashtbl" rel="Chapter" href="Netmcore_hashtbl.html">
 
78
<link title="Netmcore_process" rel="Chapter" href="Netmcore_process.html">
 
79
<link title="Netmcore_tut" rel="Chapter" href="Netmcore_tut.html">
 
80
<link title="Netplex_types" rel="Chapter" href="Netplex_types.html">
 
81
<link title="Netplex_mp" rel="Chapter" href="Netplex_mp.html">
 
82
<link title="Netplex_mt" rel="Chapter" href="Netplex_mt.html">
 
83
<link title="Netplex_log" rel="Chapter" href="Netplex_log.html">
 
84
<link title="Netplex_controller" rel="Chapter" href="Netplex_controller.html">
 
85
<link title="Netplex_container" rel="Chapter" href="Netplex_container.html">
 
86
<link title="Netplex_sockserv" rel="Chapter" href="Netplex_sockserv.html">
 
87
<link title="Netplex_workload" rel="Chapter" href="Netplex_workload.html">
 
88
<link title="Netplex_main" rel="Chapter" href="Netplex_main.html">
 
89
<link title="Netplex_config" rel="Chapter" href="Netplex_config.html">
 
90
<link title="Netplex_kit" rel="Chapter" href="Netplex_kit.html">
 
91
<link title="Rpc_netplex" rel="Chapter" href="Rpc_netplex.html">
 
92
<link title="Netplex_cenv" rel="Chapter" href="Netplex_cenv.html">
 
93
<link title="Netplex_semaphore" rel="Chapter" href="Netplex_semaphore.html">
 
94
<link title="Netplex_sharedvar" rel="Chapter" href="Netplex_sharedvar.html">
 
95
<link title="Netplex_mutex" rel="Chapter" href="Netplex_mutex.html">
 
96
<link title="Netplex_encap" rel="Chapter" href="Netplex_encap.html">
 
97
<link title="Netplex_intro" rel="Chapter" href="Netplex_intro.html">
 
98
<link title="Netplex_advanced" rel="Chapter" href="Netplex_advanced.html">
 
99
<link title="Netplex_admin" rel="Chapter" href="Netplex_admin.html">
 
100
<link title="Netshm" rel="Chapter" href="Netshm.html">
 
101
<link title="Netshm_data" rel="Chapter" href="Netshm_data.html">
 
102
<link title="Netshm_hashtbl" rel="Chapter" href="Netshm_hashtbl.html">
 
103
<link title="Netshm_array" rel="Chapter" href="Netshm_array.html">
 
104
<link title="Netshm_intro" rel="Chapter" href="Netshm_intro.html">
 
105
<link title="Netconversion" rel="Chapter" href="Netconversion.html">
 
106
<link title="Netchannels" rel="Chapter" href="Netchannels.html">
 
107
<link title="Netstream" rel="Chapter" href="Netstream.html">
 
108
<link title="Mimestring" rel="Chapter" href="Mimestring.html">
 
109
<link title="Netmime" rel="Chapter" href="Netmime.html">
 
110
<link title="Netsendmail" rel="Chapter" href="Netsendmail.html">
 
111
<link title="Neturl" rel="Chapter" href="Neturl.html">
 
112
<link title="Netaddress" rel="Chapter" href="Netaddress.html">
 
113
<link title="Netbuffer" rel="Chapter" href="Netbuffer.html">
 
114
<link title="Netdate" rel="Chapter" href="Netdate.html">
 
115
<link title="Netencoding" rel="Chapter" href="Netencoding.html">
 
116
<link title="Netulex" rel="Chapter" href="Netulex.html">
 
117
<link title="Netaccel" rel="Chapter" href="Netaccel.html">
 
118
<link title="Netaccel_link" rel="Chapter" href="Netaccel_link.html">
 
119
<link title="Nethtml" rel="Chapter" href="Nethtml.html">
 
120
<link title="Netstring_str" rel="Chapter" href="Netstring_str.html">
 
121
<link title="Netstring_pcre" rel="Chapter" href="Netstring_pcre.html">
 
122
<link title="Netmappings" rel="Chapter" href="Netmappings.html">
 
123
<link title="Netaux" rel="Chapter" href="Netaux.html">
 
124
<link title="Nethttp" rel="Chapter" href="Nethttp.html">
 
125
<link title="Netpagebuffer" rel="Chapter" href="Netpagebuffer.html">
 
126
<link title="Netfs" rel="Chapter" href="Netfs.html">
 
127
<link title="Netglob" rel="Chapter" href="Netglob.html">
 
128
<link title="Netauth" rel="Chapter" href="Netauth.html">
 
129
<link title="Netsockaddr" rel="Chapter" href="Netsockaddr.html">
 
130
<link title="Netnumber" rel="Chapter" href="Netnumber.html">
 
131
<link title="Rtypes" rel="Chapter" href="Rtypes.html">
 
132
<link title="Xdr_mstring" rel="Chapter" href="Xdr_mstring.html">
 
133
<link title="Xdr" rel="Chapter" href="Xdr.html">
 
134
<link title="Netcompression" rel="Chapter" href="Netcompression.html">
 
135
<link title="Netchannels_tut" rel="Chapter" href="Netchannels_tut.html">
 
136
<link title="Netmime_tut" rel="Chapter" href="Netmime_tut.html">
 
137
<link title="Netsendmail_tut" rel="Chapter" href="Netsendmail_tut.html">
 
138
<link title="Netulex_tut" rel="Chapter" href="Netulex_tut.html">
 
139
<link title="Neturl_tut" rel="Chapter" href="Neturl_tut.html">
 
140
<link title="Netsys" rel="Chapter" href="Netsys.html">
 
141
<link title="Netsys_posix" rel="Chapter" href="Netsys_posix.html">
 
142
<link title="Netsys_pollset" rel="Chapter" href="Netsys_pollset.html">
 
143
<link title="Netlog" rel="Chapter" href="Netlog.html">
 
144
<link title="Netexn" rel="Chapter" href="Netexn.html">
 
145
<link title="Netsys_win32" rel="Chapter" href="Netsys_win32.html">
 
146
<link title="Netsys_pollset_posix" rel="Chapter" href="Netsys_pollset_posix.html">
 
147
<link title="Netsys_pollset_win32" rel="Chapter" href="Netsys_pollset_win32.html">
 
148
<link title="Netsys_pollset_generic" rel="Chapter" href="Netsys_pollset_generic.html">
 
149
<link title="Netsys_signal" rel="Chapter" href="Netsys_signal.html">
 
150
<link title="Netsys_oothr" rel="Chapter" href="Netsys_oothr.html">
 
151
<link title="Netsys_xdr" rel="Chapter" href="Netsys_xdr.html">
 
152
<link title="Netsys_rng" rel="Chapter" href="Netsys_rng.html">
 
153
<link title="Netsys_types" rel="Chapter" href="Netsys_types.html">
 
154
<link title="Netsys_mem" rel="Chapter" href="Netsys_mem.html">
 
155
<link title="Netsys_tmp" rel="Chapter" href="Netsys_tmp.html">
 
156
<link title="Netgzip" rel="Chapter" href="Netgzip.html">
 
157
<link title="Netpop" rel="Chapter" href="Netpop.html">
 
158
<link title="Rpc_auth_dh" rel="Chapter" href="Rpc_auth_dh.html">
 
159
<link title="Rpc_key_service" rel="Chapter" href="Rpc_key_service.html">
 
160
<link title="Rpc_time" rel="Chapter" href="Rpc_time.html">
 
161
<link title="Rpc_auth_local" rel="Chapter" href="Rpc_auth_local.html">
 
162
<link title="Rpc_ssl" rel="Chapter" href="Rpc_ssl.html">
 
163
<link title="Rpc_xti_client" rel="Chapter" href="Rpc_xti_client.html">
 
164
<link title="Rpc" rel="Chapter" href="Rpc.html">
 
165
<link title="Rpc_program" rel="Chapter" href="Rpc_program.html">
 
166
<link title="Rpc_util" rel="Chapter" href="Rpc_util.html">
 
167
<link title="Rpc_portmapper_aux" rel="Chapter" href="Rpc_portmapper_aux.html">
 
168
<link title="Rpc_packer" rel="Chapter" href="Rpc_packer.html">
 
169
<link title="Rpc_transport" rel="Chapter" href="Rpc_transport.html">
 
170
<link title="Rpc_client" rel="Chapter" href="Rpc_client.html">
 
171
<link title="Rpc_simple_client" rel="Chapter" href="Rpc_simple_client.html">
 
172
<link title="Rpc_portmapper_clnt" rel="Chapter" href="Rpc_portmapper_clnt.html">
 
173
<link title="Rpc_portmapper" rel="Chapter" href="Rpc_portmapper.html">
 
174
<link title="Rpc_server" rel="Chapter" href="Rpc_server.html">
 
175
<link title="Rpc_auth_sys" rel="Chapter" href="Rpc_auth_sys.html">
 
176
<link title="Rpc_auth_gssapi" rel="Chapter" href="Rpc_auth_gssapi.html">
 
177
<link title="Rpc_proxy" rel="Chapter" href="Rpc_proxy.html">
 
178
<link title="Rpc_intro" rel="Chapter" href="Rpc_intro.html">
 
179
<link title="Rpc_mapping_ref" rel="Chapter" href="Rpc_mapping_ref.html">
 
180
<link title="Rpc_intro_gss" rel="Chapter" href="Rpc_intro_gss.html">
 
181
<link title="Shell_sys" rel="Chapter" href="Shell_sys.html">
 
182
<link title="Shell" rel="Chapter" href="Shell.html">
 
183
<link title="Shell_uq" rel="Chapter" href="Shell_uq.html">
 
184
<link title="Shell_fs" rel="Chapter" href="Shell_fs.html">
 
185
<link title="Shell_intro" rel="Chapter" href="Shell_intro.html">
 
186
<link title="Netsmtp" rel="Chapter" href="Netsmtp.html">
 
187
<link title="Intro" rel="Chapter" href="Intro.html">
 
188
<link title="Platform" rel="Chapter" href="Platform.html">
 
189
<link title="Foreword" rel="Chapter" href="Foreword.html">
 
190
<link title="Ipv6" rel="Chapter" href="Ipv6.html"><title>Ocamlnet 3 Reference Manual : Unixqueue.event_system</title>
 
191
</head>
 
192
<body>
 
193
<div class="navbar">&nbsp;<a href="Unixqueue.html">Up</a>
 
194
&nbsp;</div>
 
195
<center><h1>Class type <a href="type_Unixqueue.event_system.html">Unixqueue.event_system</a></h1></center>
 
196
<br>
 
197
<pre><span id="TYPEevent_system"><span class="keyword">class type</span> event_system</span> = <code class="code">object</code> <a href="Unixqueue.event_system-c.html">..</a> <code class="code">end</code></pre>The <code class="code">event_system</code> manages events, handlers, resources, groups,
 
198
 etc. It is now a class type, and you may invoke the operations directly
 
199
 for the class. The operations are still available as functions (below).
 
200
<p>
 
201
 
 
202
 A <b>resource</b> is an operation with an optional timer. The operation
 
203
 describes the condition to watch for, and the timer defines the
 
204
 maximum period of time for that. If the condition becomes true,
 
205
 an <code class="code">Input_arrived</code>, <code class="code">Output_readiness</code>, or <code class="code">Out_of_band</code> event
 
206
 will be triggered. If the timer expires, a <code class="code">Timeout</code> event will be
 
207
 generated. After the event the resource remains active, and the
 
208
 timeout period begins anew.
 
209
<p>
 
210
 
 
211
 A resource is usually bound to a file descriptor. It is allowed
 
212
 to watch the same descriptor for several different conditions,
 
213
 but it is forbidden to watch the same descriptor for the same kind
 
214
 of condition several times.
 
215
<p>
 
216
 
 
217
 As a special case, the operation <code class="code">Wait</code> is not bound to a
 
218
 file descriptor, but simply starts a timer. The argument of <code class="code">Wait</code>
 
219
 can be used to distinguish between several timers that are active
 
220
 at the same time.
 
221
<p>
 
222
 
 
223
 <b>Event handlers</b> get the events one after the other, and 
 
224
 process them. When a handler is called for an event, there are
 
225
 several possible reactions: (1) The handler can return normally,
 
226
 which means that the event has been accepted, and will not be
 
227
 passed to any other handler. (2) The handler can raise
 
228
 <a href="Equeue.html#EXCEPTIONReject"><code class="code">Equeue.Reject</code></a>, which means that the handler cannot process
 
229
 the event, and that another handler should get it. (3) The handler
 
230
 can raise <a href="Equeue.html#EXCEPTIONTerminate"><code class="code">Equeue.Terminate</code></a> which means that the event has been
 
231
 accepted, and that the handler is terminated (it will never be
 
232
 called again). (4) The handler can raise <code class="code">Abort</code> which means that
 
233
 the event is deferred, and that a special abort mechanism is
 
234
 triggered (see the description for <code class="code">Abort</code> above), this is also
 
235
 terminates the handler. The deferred event will again be processed
 
236
 in the future. (5) The handler can raise any other exception.
 
237
 This causes that the event is deferred, and the exception falls
 
238
 through to the caller of <code class="code">run</code>.
 
239
<p>
 
240
 
 
241
 <b>Groups</b> are used to simplify the association of events to
 
242
 handlers, and to simplify the termination of handlers (see <code class="code">clear</code>).
 
243
 If an event is associated with a group, only handlers associated with
 
244
 the same group will get them.
 
245
<p>
 
246
 
 
247
 There is a special <b>Close handler</b> which is useful to close file
 
248
 descriptors no longer needed. It is called when all resources are
 
249
 removed from the event system dealing with the file descriptor. 
 
250
 The close handler should close the descriptor. Note that close handlers
 
251
 are only useful under certain circumstances.
 
252
<br>
 
253
<hr width="100%">
 
254
<pre><span id="METHODnew_group"><span class="keyword">method</span> new_group</span> : <code class="type">unit -> <a href="Unixqueue.html#TYPEgroup">group</a></code></pre><pre><span id="METHODnew_wait_id"><span class="keyword">method</span> new_wait_id</span> : <code class="type">unit -> <a href="Unixqueue.html#TYPEwait_id">wait_id</a></code></pre><pre><span id="METHODexists_resource"><span class="keyword">method</span> exists_resource</span> : <code class="type"><a href="Unixqueue.html#TYPEoperation">operation</a> -> bool</code></pre><pre><span id="METHODadd_resource"><span class="keyword">method</span> add_resource</span> : <code class="type"><a href="Unixqueue.html#TYPEgroup">group</a> -> <a href="Unixqueue.html#TYPEoperation">operation</a> * float -> unit</code></pre><pre><span id="METHODadd_weak_resource"><span class="keyword">method</span> add_weak_resource</span> : <code class="type"><a href="Unixqueue.html#TYPEgroup">group</a> -> <a href="Unixqueue.html#TYPEoperation">operation</a> * float -> unit</code></pre><pre><span id="METHODadd_close_action"><span class="keyword">method</span> add_close_action</span> : <code class="type"><a href="Unixqueue.html#TYPEgroup">group</a> -> Unix.file_descr * (Unix.file_descr -> unit) -> unit</code></pre><pre><span id="METHODadd_abort_action"><span class="keyword">method</span> add_abort_action</span> : <code class="type"><a href="Unixqueue.html#TYPEgroup">group</a> -> (<a href="Unixqueue.html#TYPEgroup">group</a> -> exn -> unit) -> unit</code></pre><pre><span id="METHODremove_resource"><span class="keyword">method</span> remove_resource</span> : <code class="type"><a href="Unixqueue.html#TYPEgroup">group</a> -> <a href="Unixqueue.html#TYPEoperation">operation</a> -> unit</code></pre><pre><span id="METHODadd_handler"><span class="keyword">method</span> add_handler</span> : <code class="type"><a href="Unixqueue.html#TYPEgroup">group</a> -><br>       (<a href="Unixqueue.event_system-c.html">event_system</a> -><br>        <a href="Unixqueue.html#TYPEevent">event</a> <a href="Equeue.html#TYPEt">Equeue.t</a> -> <a href="Unixqueue.html#TYPEevent">event</a> -> unit) -><br>       unit</code></pre><pre><span id="METHODadd_event"><span class="keyword">method</span> add_event</span> : <code class="type"><a href="Unixqueue.html#TYPEevent">event</a> -> unit</code></pre><pre><span id="METHODclear"><span class="keyword">method</span> clear</span> : <code class="type"><a href="Unixqueue.html#TYPEgroup">group</a> -> unit</code></pre><pre><span id="METHODrun"><span class="keyword">method</span> run</span> : <code class="type">unit -> unit</code></pre><pre><span id="METHODis_running"><span class="keyword">method</span> is_running</span> : <code class="type">bool</code></pre><pre><span id="METHODwhen_blocking"><span class="keyword">method</span> when_blocking</span> : <code class="type">(unit -> unit) -> unit</code></pre></body></html>
 
 
b'\\ No newline at end of file'