diff options
author | Martin Hurton <hurtonm@gmail.com> | 2010-02-10 17:14:21 +0100 |
---|---|---|
committer | Martin Hurton <hurtonm@gmail.com> | 2010-02-10 17:14:21 +0100 |
commit | 7cab423fc20e46f54fa561e51b566cc8a63ca5c1 (patch) | |
tree | fa926432b8392e7717b7fbc1ecaf973ba60cb970 /man/man7/zmq_cl.7 | |
parent | bc9b7f1f54b9dcf754021f1f7eb766d71cc97f29 (diff) | |
parent | 354efc513fdb4096f8830e6c2e3e8f1311303e61 (diff) |
Merge branch 'master' of github.com:sustrik/zeromq2
Diffstat (limited to 'man/man7/zmq_cl.7')
-rw-r--r-- | man/man7/zmq_cl.7 | 124 |
1 files changed, 0 insertions, 124 deletions
diff --git a/man/man7/zmq_cl.7 b/man/man7/zmq_cl.7 deleted file mode 100644 index 0439028..0000000 --- a/man/man7/zmq_cl.7 +++ /dev/null @@ -1,124 +0,0 @@ -.TH zmq_cl 7 "" "(c)2007-2010 iMatix Corporation" "0MQ User Manuals" -.SH NAME -0MQ Common Lisp API \- interface between 0MQ and Common Lisp applications -.SH SYNOPSIS - -This manual page explains how Common Lisp API maps to underlying C -API. - -Common Lisp API repeats C API in general. All constants defined with C -API are available with Common Lisp API. C names are mapped to lisp -names by these rules: a) all names are `zmq' namespace; b) all names -are in lower case; c) underscores translate to dashes. - -Example of mappings: - -.IR zmq_msg_init_data -maps to -.IR zmq:msg-init-data - -.IR ZMQ_PUB -maps to -.IR zmq:pub - -To learn about individual functions and parameters check -appropriate C API manual pages. - -For example, to understand -.IR zmq:setsockopt -function check -.BR zmq_setsockopt(3) . - -.SH Data structures -Data structures are wrapped into CLOS classes with automatic memory -management. 0MQ describes two such structures: -.IR msg_t -and -.IR pollitem_t . - -Message constructor supports keywords -.IR :size -and -.IR :data. -Keyword :size specifies the size of -message. Keyword :data specifies initial contents of message, and it -can be either string or 8-bit array. For example: - -* (make-instance 'zmq:msg :data #(1 2 3)) - -creates a message with 3 bytes '1, 2, 3' in it. - -.SH Accessing message data - -There 3 functions to read message body in different forms: -msg-data-as-string, msg-data-as-array and msg-data-as-is, returning -data as string, as array and as raw foreign pointer to underlaying -buffer respectively. For example: - -* (zmq:msg-data-as-array msg) - -returns #(1 2 3) for message from previous example. - -It is possible to access underlying foreign object via class slot -named `raw'. - -* (slot-value obj 'zmq:raw) - -or, if `obj' is of known type `msg': - -* (zmq:msg-raw obj) - -.SH Macros -There are several macroses to help with managing zeromq objects: - -.SH with-context -Macro -.IR with-context -creates 0MQ context and requires 3 obligatory arguments: context name, -number of application threads and number of input/output -threads. Optional parameter `flags' can be also supplied, see -.BR zmq_init(3) . -Context is terminated implicitly at the end of macro block. - -.SH with-socket -Macro -.IR with-socket -creates 0MQ socket within given context. Requires 3 arguments: socket -name, context name and socket type. See -.BR zmq_socket(3) . -Socket is closed implicitly at the end of macro block. - -.SH with-polls -Macro -.IR with-polls -creates 0MQ polls, containing different sets of pollitems. For -example, to create two poll sets for network pipes: - -* (zmq:with-polls ((poll1 . ((sock1 . zmq:pollin) - (sock2 . zmq:pollout))) - (poll2 . ((sock1 . zmq:pollout) - (sock2 . zmq:pollin)))) - - (process-sockets (zmq:poll poll-set1)) - - (process-sockets (zmq:poll poll-set2))) - -Note, -.IR zmq:poll -returns list of revents for sockets from given poll set. - -Polls are closed implicitly at the end of macro block. - -.SH EXAMPLE -.nf - -(zmq::with-context (ctx 1 1) - (zmq:with-socket (s ctx zmq:pub) - (zmq:connect s "tcp://192.168.0.115:5555") - (zmq:send s (make-instance 'zmq:msg :data "Hello, world!")))) - -.SH "SEE ALSO" -.BR zmq(7) -.SH AUTHOR -Martin Sustrik <sustrik at 250bpm dot com>, -Vitaly Mayatskikh <v dot mayatskih at gmail dot com> |