/usr/share/zproject/czmq/zloop.api is in libczmq-dev 4.0.2-7.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <class name = "zloop" state = "stable">
<!--
Copyright (c) the Contributors as noted in the AUTHORS file.
This file is part of CZMQ, the high-level C binding for 0MQ:
http://czmq.zeromq.org.
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/.
-->
event-driven reactor
<callback_type name = "reader_fn">
Callback function for reactor socket activity
<argument name = "loop" type = "zloop" />
<argument name = "reader" type = "zsock" />
<argument name = "arg" type = "anything" />
<return type = "integer" />
</callback_type>
<callback_type name = "fn">
Callback function for reactor events (low-level)
<argument name = "loop" type = "zloop" />
<argument name = "item" type = "zmq_pollitem" />
<argument name = "arg" type = "anything" />
<return type = "integer" />
</callback_type>
<callback_type name = "timer_fn">
Callback for reactor timer events
<argument name = "loop" type = "zloop" />
<argument name = "timer_id" type = "integer" />
<argument name = "arg" type = "anything" />
<return type = "integer" />
</callback_type>
<constructor>
Create a new zloop reactor
</constructor>
<destructor>
Destroy a reactor
</destructor>
<method name = "reader">
Register socket reader with the reactor. When the reader has messages,
the reactor will call the handler, passing the arg. Returns 0 if OK, -1
if there was an error. If you register the same socket more than once,
each instance will invoke its corresponding handler.
<argument name = "sock" type = "zsock" />
<argument name = "handler" type = "zloop_reader_fn" callback = "1" />
<argument name = "arg" type = "anything" />
<return type = "integer" />
</method>
<method name = "reader end">
Cancel a socket reader from the reactor. If multiple readers exist for
same socket, cancels ALL of them.
<argument name = "sock" type = "zsock" />
</method>
<method name = "reader set tolerant">
Configure a registered reader to ignore errors. If you do not set this,
then readers that have errors are removed from the reactor silently.
<argument name = "sock" type = "zsock" />
</method>
<method name = "poller">
Register low-level libzmq pollitem with the reactor. When the pollitem
is ready, will call the handler, passing the arg. Returns 0 if OK, -1
if there was an error. If you register the pollitem more than once, each
instance will invoke its corresponding handler. A pollitem with
socket=NULL and fd=0 means 'poll on FD zero'.
<argument name = "item" type = "zmq_pollitem" />
<argument name = "handler" type = "zloop_fn" callback = "1" />
<argument name = "arg" type = "anything" />
<return type = "integer" />
</method>
<method name = "poller end">
Cancel a pollitem from the reactor, specified by socket or FD. If both
are specified, uses only socket. If multiple poll items exist for same
socket/FD, cancels ALL of them.
<argument name = "item" type = "zmq_pollitem" />
</method>
<method name = "poller set tolerant">
Configure a registered poller to ignore errors. If you do not set this,
then poller that have errors are removed from the reactor silently.
<argument name = "item" type = "zmq_pollitem" />
</method>
<method name = "timer">
Register a timer that expires after some delay and repeats some number of
times. At each expiry, will call the handler, passing the arg. To run a
timer forever, use 0 times. Returns a timer_id that is used to cancel the
timer in the future. Returns -1 if there was an error.
<argument name = "delay" type = "size" />
<argument name = "times" type = "size" />
<argument name = "handler" type = "zloop_timer_fn" callback = "1" />
<argument name = "arg" type = "anything" />
<return type = "integer" />
</method>
<method name = "timer end">
Cancel a specific timer identified by a specific timer_id (as returned by
zloop_timer).
<argument name = "timer id" type = "integer" />
<return type = "integer" />
</method>
<method name = "ticket">
Register a ticket timer. Ticket timers are very fast in the case where
you use a lot of timers (thousands), and frequently remove and add them.
The main use case is expiry timers for servers that handle many clients,
and which reset the expiry timer for each message received from a client.
Whereas normal timers perform poorly as the number of clients grows, the
cost of ticket timers is constant, no matter the number of clients. You
must set the ticket delay using zloop_set_ticket_delay before creating a
ticket. Returns a handle to the timer that you should use in
zloop_ticket_reset and zloop_ticket_delete.
<argument name = "handler" type = "zloop_timer_fn" callback = "1" />
<argument name = "arg" type = "anything" />
<return type = "anything" />
</method>
<method name = "ticket reset">
Reset a ticket timer, which moves it to the end of the ticket list and
resets its execution time. This is a very fast operation.
<argument name = "handle" type = "anything" />
</method>
<method name = "ticket delete">
Delete a ticket timer. We do not actually delete the ticket here, as
other code may still refer to the ticket. We mark as deleted, and remove
later and safely.
<argument name = "handle" type = "anything" />
</method>
<method name = "set ticket delay">
Set the ticket delay, which applies to all tickets. If you lower the
delay and there are already tickets created, the results are undefined.
<argument name = "ticket delay" type = "size" />
</method>
<method name = "set max timers">
Set hard limit on number of timers allowed. Setting more than a small
number of timers (10-100) can have a dramatic impact on the performance
of the reactor. For high-volume cases, use ticket timers. If the hard
limit is reached, the reactor stops creating new timers and logs an
error.
<argument name = "max timers" type = "size" />
</method>
<method name = "set verbose">
Set verbose tracing of reactor on/off. The default verbose setting is
off (false).
<argument name = "verbose" type = "boolean" />
</method>
<method name = "set nonstop" >
By default the reactor stops if the process receives a SIGINT or SIGTERM
signal. This makes it impossible to shut-down message based architectures
like zactors. This method lets you switch off break handling. The default
nonstop setting is off (false).
<argument name = "nonstop" type = "boolean" />
</method>
<method name = "start">
Start the reactor. Takes control of the thread and returns when the 0MQ
context is terminated or the process is interrupted, or any event handler
returns -1. Event handlers may register new sockets and timers, and
cancel sockets. Returns 0 if interrupted, -1 if canceled by a handler.
<return type = "integer" />
</method>
</class>
|