0
0
mirror of https://github.com/zeromq/libzmq.git synced 2024-12-25 22:30:51 +08:00

add ReadTheDocs integration

This commit is contained in:
f18m 2023-11-02 00:06:22 +01:00 committed by Luca Boccassi
parent 267699b1ce
commit bf70ba7097
57 changed files with 567 additions and 340 deletions

1
.gitignore vendored
View File

@ -17,7 +17,6 @@ autom4te.cache
*.html
*.pdf
*.ps
.*
*~
.*~
tools/curve_keygen.o

37
.readthedocs.yaml Normal file
View File

@ -0,0 +1,37 @@
#
# libzmq readthedocs.io integration
#
# This configuration file is processed by readthedocs.io to rebuild the
# libzmq documentation using Asciidoctor, see
# https://docs.readthedocs.io/en/stable/build-customization.html#asciidoc
version: "2"
formats:
- htmlzip
build:
os: "ubuntu-22.04"
tools:
nodejs: "20"
# NOTE: as of Nov 2023, build.apt_packages is NOT considered when using build.commands
#apt_packages:
# - automake
# - autoconf
# - cmake
# - libtool
commands:
# install required tools
- npm install -g asciidoctor
# HTML docs
# ---------
- doc/create_page_list.sh "$(pwd)/doc/__pagelist" "$(pwd)/doc"
- asciidoctor --backend html --destination-dir $READTHEDOCS_OUTPUT/html --attribute zmq_version='4.0.10' --attribute zmq_pagelist_dir=$(pwd)/doc doc/*.txt
# HTMLZIP docs
# ------------
# Note that for usability we make sure zip will create a zipfile containing just a flat list of HTML files;
# to achieve that it's important to avoid storing absolute paths when invoking "zip", thus we use -j
- mkdir -p $READTHEDOCS_OUTPUT/htmlzip/
- cd $READTHEDOCS_OUTPUT/html && zip -j ../htmlzip/zeromq.zip *.html

20
doc/create_page_list.sh Executable file
View File

@ -0,0 +1,20 @@
#!/bin/bash
# This Bash snippet is used to automatically generate an alphabetical list included by index.adoc
# It's invoked by at least 2 callers:
# - the Makefile[.am] for automake builds
# - the ReadTheDocs pipeline, see .readthedocs.yaml
OUTPUT_FILE="$1"
ASCIIDOC_DIR="$2"
echo >$OUTPUT_FILE
for adocfile in $(ls ${ASCIIDOC_DIR}/*.txt); do
adocfile_basename=$(basename ${adocfile})
# this script is used to produce an Asciidoc snippet that goes inside index.adoc... avoid listing index.adoc itself!
if [ "${adocfile_basename}" != "index.txt" ]; then
adocfile_basename_noext=${adocfile_basename//.txt/}
echo "* link:${adocfile_basename_noext}.html[${adocfile_basename_noext}]" >>$OUTPUT_FILE
fi
done

9
doc/index.txt Normal file
View File

@ -0,0 +1,9 @@
ZMQ API reference
=================
This documentation is for libzmq {zmq_version}.
Alphabetic list of documentation pages
--------------------------------------
include::{zmq_pagelist_dir}/__pagelist[]

View File

@ -35,22 +35,22 @@ you exit your application you must destroy the 'context'. These functions let
you work with 'contexts':
Create a new 0MQ context::
linkzmq:zmq_ctx_new[3]
link:zmq_ctx_new.html[zmq_ctx_new]
Work with context properties::
linkzmq:zmq_ctx_set[3]
linkzmq:zmq_ctx_get[3]
link:zmq_ctx_set.html[zmq_ctx_set]
link:zmq_ctx_get.html[zmq_ctx_get]
Destroy a 0MQ context::
linkzmq:zmq_ctx_term[3]
link:zmq_ctx_term.html[zmq_ctx_term]
These deprecated functions let you create and destroy 'contexts':
Initialise 0MQ context::
linkzmq:zmq_init[3]
link:zmq_init.html[zmq_init]
Terminate 0MQ context::
linkzmq:zmq_term[3]
link:zmq_term.html[zmq_term]
Thread safety
@ -85,68 +85,68 @@ data.
The following functions are provided to work with messages:
Initialise a message::
linkzmq:zmq_msg_init[3]
linkzmq:zmq_msg_init_size[3]
linkzmq:zmq_msg_init_data[3]
link:zmq_msg_init.html[zmq_msg_init]
link:zmq_msg_init_size.html[zmq_msg_init_size]
link:zmq_msg_init_data.html[zmq_msg_init_data]
Sending and receiving a message::
linkzmq:zmq_msg_send[3]
linkzmq:zmq_msg_recv[3]
link:zmq_msg_send.html[zmq_msg_send]
link:zmq_msg_recv.html[zmq_msg_recv]
Release a message::
linkzmq:zmq_msg_close[3]
link:zmq_msg_close.html[zmq_msg_close]
Access message content::
linkzmq:zmq_msg_data[3]
linkzmq:zmq_msg_size[3]
linkzmq:zmq_msg_more[3]
link:zmq_msg_data.html[zmq_msg_data]
link:zmq_msg_size.html[zmq_msg_size]
link:zmq_msg_more.html[zmq_msg_more]
Work with message properties::
linkzmq:zmq_msg_get[3]
linkzmq:zmq_msg_set[3]
link:zmq_msg_get.html[zmq_msg_get]
link:zmq_msg_set.html[zmq_msg_set]
Message manipulation::
linkzmq:zmq_msg_copy[3]
linkzmq:zmq_msg_move[3]
link:zmq_msg_copy.html[zmq_msg_copy]
link:zmq_msg_move.html[zmq_msg_move]
Sockets
~~~~~~~
0MQ sockets present an abstraction of a asynchronous _message queue_, with the
exact queueing semantics depending on the socket type in use. See
linkzmq:zmq_socket[3] for the socket types provided.
link:zmq_socket.html[zmq_socket] for the socket types provided.
The following functions are provided to work with sockets:
Creating a socket::
linkzmq:zmq_socket[3]
link:zmq_socket.html[zmq_socket]
Closing a socket::
linkzmq:zmq_close[3]
link:zmq_close.html[zmq_close]
Manipulating socket options::
linkzmq:zmq_getsockopt[3]
linkzmq:zmq_setsockopt[3]
link:zmq_getsockopt.html[zmq_getsockopt]
link:zmq_setsockopt.html[zmq_setsockopt]
Establishing a message flow::
linkzmq:zmq_bind[3]
linkzmq:zmq_connect[3]
link:zmq_bind.html[zmq_bind]
link:zmq_connect.html[zmq_connect]
Sending and receiving messages::
linkzmq:zmq_msg_send[3]
linkzmq:zmq_msg_recv[3]
linkzmq:zmq_send[3]
linkzmq:zmq_recv[3]
linkzmq:zmq_send_const[3]
link:zmq_msg_send.html[zmq_msg_send]
link:zmq_msg_recv.html[zmq_msg_recv]
link:zmq_send.html[zmq_send]
link:zmq_recv.html[zmq_recv]
link:zmq_send_const.html[zmq_send_const]
Monitoring socket events:
linkzmq:zmq_socket_monitor[3]
link:zmq_socket_monitor.html[zmq_socket_monitor]
.Input/output multiplexing
0MQ provides a mechanism for applications to multiplex input/output events over
a set containing both 0MQ sockets and standard sockets. This mechanism mirrors
the standard _poll()_ system call, and is described in detail in
linkzmq:zmq_poll[3].
link:zmq_poll.html[zmq_poll].
Transports
@ -158,16 +158,16 @@ advantages and drawbacks.
The following transport mechanisms are provided:
Unicast transport using TCP::
linkzmq:zmq_tcp[7]
link:zmq_tcp.html[zmq_tcp]
Reliable multicast transport using PGM::
linkzmq:zmq_pgm[7]
link:zmq_pgm.html[zmq_pgm]
Local inter-process communication transport::
linkzmq:zmq_ipc[7]
link:zmq_ipc.html[zmq_ipc]
Local in-process (inter-thread) communication transport::
linkzmq:zmq_inproc[7]
link:zmq_inproc.html[zmq_inproc]
Proxies
@ -175,7 +175,7 @@ Proxies
0MQ provides 'proxies' to create fanout and fan-in topologies. A proxy connects
a 'frontend' socket to a 'backend' socket and switches all messages between the
two sockets, opaquely. A proxy may optionally capture all traffic to a third
socket. To start a proxy in an application thread, use linkzmq:zmq_proxy[3].
socket. To start a proxy in an application thread, use link:zmq_proxy.html[zmq_proxy].
Security
@ -186,22 +186,22 @@ security mechanism.
The following security mechanisms are provided for IPC and TCP connections:
Null security::
linkzmq:zmq_null[7]
link:zmq_null.html[zmq_null]
Plain-text authentication using username and password::
linkzmq:zmq_plain[7]
link:zmq_plain.html[zmq_plain]
Elliptic curve authentication and encryption::
linkzmq:zmq_curve[7]
link:zmq_curve.html[zmq_curve]
Generate a CURVE keypair in armored text format:
linkzmq:zmq_curve_keypair[3]
link:zmq_curve_keypair.html[zmq_curve_keypair]
Convert an armored key into a 32-byte binary key:
linkzmq:zmq_z85_decode[3]
link:zmq_z85_decode.html[zmq_z85_decode]
Convert a 32-byte binary CURVE key to an armored text string:
linkzmq:zmq_z85_encode[3]
link:zmq_z85_encode.html[zmq_z85_encode]
ERROR HANDLING
@ -214,10 +214,10 @@ shall return either a NULL value (if returning a pointer) or a negative value
On non-POSIX systems some users may experience issues with retrieving the
correct value of the 'errno' variable. The _zmq_errno()_ function is provided
to assist in these cases; for details refer to linkzmq:zmq_errno[3].
to assist in these cases; for details refer to link:zmq_errno.html[zmq_errno].
The _zmq_strerror()_ function is provided to translate 0MQ-specific error codes
into error message strings; for details refer to linkzmq:zmq_strerror[3].
into error message strings; for details refer to link:zmq_strerror.html[zmq_strerror].
MISCELLANEOUS
@ -225,7 +225,7 @@ MISCELLANEOUS
The following miscellaneous functions are provided:
Report 0MQ library version::
linkzmq:zmq_version[3]
link:zmq_version.html[zmq_version]
LANGUAGE BINDINGS

View File

@ -23,17 +23,17 @@ The 'endpoint' is a string consisting of a 'transport'`://` followed by an
0MQ provides the the following transports:
'tcp':: unicast transport using TCP, see linkzmq:zmq_tcp[7]
'ipc':: local inter-process communication transport, see linkzmq:zmq_ipc[7]
'inproc':: local in-process (inter-thread) communication transport, see linkzmq:zmq_inproc[7]
'pgm', 'epgm':: reliable multicast transport using PGM, see linkzmq:zmq_pgm[7]
'tcp':: unicast transport using TCP, see link:zmq_tcp.html[zmq_tcp]
'ipc':: local inter-process communication transport, see link:zmq_ipc.html[zmq_ipc]
'inproc':: local in-process (inter-thread) communication transport, see link:zmq_inproc.html[zmq_inproc]
'pgm', 'epgm':: reliable multicast transport using PGM, see link:zmq_pgm.html[zmq_pgm]
Every 0MQ socket type except 'ZMQ_PAIR' supports one-to-many and many-to-one
semantics. The precise semantics depend on the socket type and are defined in
linkzmq:zmq_socket[3].
link:zmq_socket.html[zmq_socket].
The 'ipc' and 'tcp' transports accept wildcard addresses: see linkzmq:zmq_ipc[7]
and linkzmq:zmq_tcp[7] for details.
The 'ipc' and 'tcp' transports accept wildcard addresses: see link:zmq_ipc.html[zmq_ipc]
and link:zmq_tcp.html[zmq_tcp] for details.
NOTE: the address syntax may be different for _zmq_bind()_ and _zmq_connect()_
especially for the 'tcp', 'pgm' and 'epgm' transports.
@ -41,7 +41,7 @@ especially for the 'tcp', 'pgm' and 'epgm' transports.
NOTE: following a _zmq_bind()_, the socket enters a 'mute' state unless or
until at least one incoming or outgoing connection is made, at which point
the socket enters a 'ready' state. In the mute state, the socket blocks or
drops messages according to the socket type, as defined in linkzmq:zmq_socket[3].
drops messages according to the socket type, as defined in link:zmq_socket.html[zmq_socket].
By contrast, following a libzmq:zmq_connect[3], the socket enters the 'ready' state.
@ -91,9 +91,9 @@ assert (rc == 0);
SEE ALSO
--------
linkzmq:zmq_connect[3]
linkzmq:zmq_socket[3]
linkzmq:zmq[7]
link:zmq_connect.html[zmq_connect]
link:zmq_socket.html[zmq_socket]
link:zmq.html[zmq]
AUTHORS

View File

@ -23,7 +23,7 @@ _ZMQ_LINGER_ socket option for the specified 'socket'.
NOTE: The default setting of _ZMQ_LINGER_ does not discard unsent messages;
this behaviour may cause the application to block when calling _zmq_term()_.
For details refer to linkzmq:zmq_setsockopt[3] and linkzmq:zmq_term[3].
For details refer to link:zmq_setsockopt.html[zmq_setsockopt] and link:zmq_term.html[zmq_term].
RETURN VALUE
@ -40,10 +40,10 @@ The provided 'socket' was invalid.
SEE ALSO
--------
linkzmq:zmq_socket[3]
linkzmq:zmq_term[3]
linkzmq:zmq_setsockopt[3]
linkzmq:zmq[7]
link:zmq_socket.html[zmq_socket]
link:zmq_term.html[zmq_term]
link:zmq_setsockopt.html[zmq_setsockopt]
link:zmq.html[zmq]
AUTHORS

View File

@ -23,14 +23,14 @@ The 'endpoint' is a string consisting of a 'transport'`://` followed by an
0MQ provides the the following transports:
'tcp':: unicast transport using TCP, see linkzmq:zmq_tcp[7]
'ipc':: local inter-process communication transport, see linkzmq:zmq_ipc[7]
'inproc':: local in-process (inter-thread) communication transport, see linkzmq:zmq_inproc[7]
'pgm', 'epgm':: reliable multicast transport using PGM, see linkzmq:zmq_pgm[7]
'tcp':: unicast transport using TCP, see link:zmq_tcp.html[zmq_tcp]
'ipc':: local inter-process communication transport, see link:zmq_ipc.html[zmq_ipc]
'inproc':: local in-process (inter-thread) communication transport, see link:zmq_inproc.html[zmq_inproc]
'pgm', 'epgm':: reliable multicast transport using PGM, see link:zmq_pgm.html[zmq_pgm]
Every 0MQ socket type except 'ZMQ_PAIR' supports one-to-many and many-to-one
semantics. The precise semantics depend on the socket type and are defined in
linkzmq:zmq_socket[3].
link:zmq_socket.html[zmq_socket].
NOTE: for most transports and socket types the connection is not performed
immediately but as needed by 0MQ. Thus a successful call to _zmq_connect()_
@ -45,7 +45,7 @@ NOTE: following a _zmq_connect()_, for socket types except for ZMQ_ROUTER,
the socket enters its normal 'ready' state. By contrast, following a
_zmq_bind()_ alone, the socket enters a 'mute' state in which the socket
blocks or drops messages according to the socket type, as defined in
linkzmq:zmq_socket[3]. A ZMQ_ROUTER socket enters its normal 'ready' state
link:zmq_socket.html[zmq_socket]. A ZMQ_ROUTER socket enters its normal 'ready' state
for a specific peer only when handshaking is complete for that peer, which
may take an arbitrary time.
@ -89,9 +89,9 @@ assert (rc == 0);
SEE ALSO
--------
linkzmq:zmq_bind[3]
linkzmq:zmq_socket[3]
linkzmq:zmq[7]
link:zmq_bind.html[zmq_bind]
link:zmq_socket.html[zmq_socket]
link:zmq.html[zmq]
AUTHORS

View File

@ -34,9 +34,9 @@ Context termination is performed in the following steps:
option has expired.
For further details regarding socket linger behavior refer to the _ZMQ_LINGER_
option in linkzmq:zmq_setsockopt[3].
option in link:zmq_setsockopt.html[zmq_setsockopt].
This function is deprecated by linkzmq:zmq_ctx_term[3].
This function is deprecated by link:zmq_ctx_term.html[zmq_ctx_term].
RETURN VALUE
@ -55,10 +55,10 @@ Termination was interrupted by a signal. It can be restarted if needed.
SEE ALSO
--------
linkzmq:zmq[7]
linkzmq:zmq_init[3]
linkzmq:zmq_close[3]
linkzmq:zmq_setsockopt[3]
link:zmq.html[zmq]
link:zmq_init.html[zmq_init]
link:zmq_close.html[zmq_close]
link:zmq_setsockopt.html[zmq_setsockopt]
AUTHORS

View File

@ -62,8 +62,8 @@ assert (max_sockets == 256);
SEE ALSO
--------
linkzmq:zmq_ctx_set[3]
linkzmq:zmq[7]
link:zmq_ctx_set.html[zmq_ctx_set]
link:zmq.html[zmq]
AUTHORS

View File

@ -16,7 +16,7 @@ DESCRIPTION
-----------
The _zmq_ctx_new()_ function creates a new 0MQ 'context'.
This function replaces the deprecated function linkzmq:zmq_init[3].
This function replaces the deprecated function link:zmq_init.html[zmq_init].
.Thread safety
A 0MQ 'context' is thread safe and may be shared among as many application
@ -38,10 +38,10 @@ No error values are defined for this function.
SEE ALSO
--------
linkzmq:zmq[7]
linkzmq:zmq_ctx_set[3]
linkzmq:zmq_ctx_get[3]
linkzmq:zmq_ctx_term[3]
link:zmq.html[zmq]
link:zmq_ctx_set.html[zmq_ctx_set]
link:zmq_ctx_get.html[zmq_ctx_get]
link:zmq_ctx_term.html[zmq_ctx_term]
AUTHORS

View File

@ -77,8 +77,8 @@ assert (max_sockets == 256);
SEE ALSO
--------
linkzmq:zmq_ctx_get[3]
linkzmq:zmq[7]
link:zmq_ctx_get.html[zmq_ctx_get]
link:zmq.html[zmq]
AUTHORS

View File

@ -21,7 +21,7 @@ sockets open within 'context' to return immediately with an error code of ETERM.
With the exception of _zmq_close()_, any further operations on sockets open within
'context' shall fail with an error code of ETERM.
This function is optional, client code is still required to call the linkzmq:zmq_ctx_term[3]
This function is optional, client code is still required to call the link:zmq_ctx_term.html[zmq_ctx_term]
function to free all resources allocated by zeromq.
@ -39,11 +39,11 @@ The provided 'context' was invalid.
SEE ALSO
--------
linkzmq:zmq[7]
linkzmq:zmq_init[3]
linkzmq:zmq_ctx_term[3]
linkzmq:zmq_close[3]
linkzmq:zmq_setsockopt[3]
link:zmq.html[zmq]
link:zmq_init.html[zmq_init]
link:zmq_ctx_term.html[zmq_ctx_term]
link:zmq_close.html[zmq_close]
link:zmq_setsockopt.html[zmq_setsockopt]
AUTHORS

View File

@ -34,9 +34,9 @@ Context termination is performed in the following steps:
option has expired.
For further details regarding socket linger behavior refer to the _ZMQ_LINGER_
option in linkzmq:zmq_setsockopt[3].
option in link:zmq_setsockopt.html[zmq_setsockopt].
This function replaces the deprecated function linkzmq:zmq_term[3].
This function replaces the deprecated function link:zmq_term.html[zmq_term].
WARNING
@ -64,10 +64,10 @@ Termination was interrupted by a signal. It can be restarted if needed.
SEE ALSO
--------
linkzmq:zmq[7]
linkzmq:zmq_init[3]
linkzmq:zmq_close[3]
linkzmq:zmq_setsockopt[3]
link:zmq.html[zmq]
link:zmq_init.html[zmq_init]
link:zmq_close.html[zmq_close]
link:zmq_setsockopt.html[zmq_setsockopt]
AUTHORS

View File

@ -78,12 +78,12 @@ secret:
SEE ALSO
--------
linkzmq:zmq_z85_encode[3]
linkzmq:zmq_z85_decode[3]
linkzmq:zmq_setsockopt[3]
linkzmq:zmq_null[7]
linkzmq:zmq_plain[7]
linkzmq:zmq[7]
link:zmq_z85_encode.html[zmq_z85_encode]
link:zmq_z85_decode.html[zmq_z85_decode]
link:zmq_setsockopt.html[zmq_setsockopt]
link:zmq_null.html[zmq_null]
link:zmq_plain.html[zmq_plain]
link:zmq.html[zmq]
AUTHORS

View File

@ -17,7 +17,7 @@ DESCRIPTION
The _zmq_curve_keypair()_ function shall return a newly generated random
keypair consisting of a public key and a secret key. The caller provides
two buffers, each at least 41 octets large, in which this method will
store the keys. The keys are encoded using linkzmq:zmq_z85_encode[3].
store the keys. The keys are encoded using link:zmq_z85_encode.html[zmq_z85_encode].
RETURN VALUE
@ -45,9 +45,9 @@ assert (rc == 0);
SEE ALSO
--------
linkzmq:zmq_z85_decode[3]
linkzmq:zmq_z85_encode[3]
linkzmq:zmq_curve[7]
link:zmq_z85_decode.html[zmq_z85_decode]
link:zmq_z85_encode.html[zmq_z85_encode]
link:zmq_curve.html[zmq_curve]
AUTHORS

View File

@ -18,7 +18,7 @@ The _zmq_disconnect()_ function shall disconnect a socket specified
by the 'socket' argument from the endpoint specified by the 'endpoint'
argument.
The 'endpoint' argument is as described in linkzmq:zmq_connect[3]
The 'endpoint' argument is as described in link:zmq_connect.html[zmq_connect]
RETURN VALUE
@ -56,9 +56,9 @@ assert (rc == 0);
SEE ALSO
--------
linkzmq:zmq_connect[3]
linkzmq:zmq_socket[3]
linkzmq:zmq[7]
link:zmq_connect.html[zmq_connect]
link:zmq_socket.html[zmq_socket]
link:zmq.html[zmq]
AUTHORS

View File

@ -1 +0,0 @@
zmq_pgm.txt

163
doc/zmq_epgm.txt Normal file
View File

@ -0,0 +1,163 @@
zmq_pgm(7)
==========
NAME
----
zmq_pgm - 0MQ reliable multicast transport using PGM
SYNOPSIS
--------
PGM (Pragmatic General Multicast) is a protocol for reliable multicast
transport of data over IP networks.
DESCRIPTION
-----------
0MQ implements two variants of PGM, the standard protocol where PGM datagrams
are layered directly on top of IP datagrams as defined by RFC 3208 (the 'pgm'
transport) and "Encapsulated PGM" or EPGM where PGM datagrams are encapsulated
inside UDP datagrams (the 'epgm' transport).
The 'pgm' and 'epgm' transports can only be used with the 'ZMQ_PUB' and
'ZMQ_SUB' socket types.
Further, PGM sockets are rate limited by default. For details, refer to the
'ZMQ_RATE', and 'ZMQ_RECOVERY_IVL' options documented in
link:zmq_setsockopt.html[zmq_setsockopt].
CAUTION: The 'pgm' transport implementation requires access to raw IP sockets.
Additional privileges may be required on some operating systems for this
operation. Applications not requiring direct interoperability with other PGM
implementations are encouraged to use the 'epgm' transport instead which does
not require any special privileges.
ADDRESSING
----------
A 0MQ endpoint is a string consisting of a 'transport'`://` followed by an
'address'. The 'transport' specifies the underlying protocol to use. The
'address' specifies the transport-specific address to connect to.
For the PGM transport, the transport is `pgm`, and for the EPGM protocol the
transport is `epgm`. The meaning of the 'address' part is defined below.
Connecting a socket
~~~~~~~~~~~~~~~~~~~
When connecting a socket to a peer address using _zmq_connect()_ with the 'pgm'
or 'epgm' transport, the 'endpoint' shall be interpreted as an 'interface'
followed by a semicolon, followed by a 'multicast address', followed by a colon
and a port number.
An 'interface' may be specified by either of the following:
* The interface name as defined by the operating system.
* The primary IPv4 address assigned to the interface, in its numeric
representation.
NOTE: Interface names are not standardised in any way and should be assumed to
be arbitrary and platform dependent. On Win32 platforms no short interface
names exist, thus only the primary IPv4 address may be used to specify an
'interface'. The 'interface' part can be omitted, in that case the default one
will be selected.
A 'multicast address' is specified by an IPv4 multicast address in its numeric
representation.
WIRE FORMAT
-----------
Consecutive PGM datagrams are interpreted by 0MQ as a single continuous stream
of data where 0MQ messages are not necessarily aligned with PGM datagram
boundaries and a single 0MQ message may span several PGM datagrams. This stream
of data consists of 0MQ messages encapsulated in 'frames' as described in
link:zmq_tcp.html[zmq_tcp].
PGM datagram payload
~~~~~~~~~~~~~~~~~~~~
The following ABNF grammar represents the payload of a single PGM datagram as
used by 0MQ:
....
datagram = (offset data)
offset = 2OCTET
data = *OCTET
....
In order for late joining consumers to be able to identify message boundaries,
each PGM datagram payload starts with a 16-bit unsigned integer in network byte
order specifying either the offset of the first message 'frame' in the datagram
or containing the value `0xFFFF` if the datagram contains solely an
intermediate part of a larger message.
Note that offset specifies where the first message begins rather than the first
message part. Thus, if there are trailing message parts at the beginning of
the packet the offset ignores them and points to first initial message part
in the packet.
The following diagram illustrates the layout of a single PGM datagram payload:
....
+------------------+----------------------+
| offset (16 bits) | data |
+------------------+----------------------+
....
The following diagram further illustrates how three example 0MQ frames are laid
out in consecutive PGM datagram payloads:
....
First datagram payload
+--------------+-------------+---------------------+
| Frame offset | Frame 1 | Frame 2, part 1 |
| 0x0000 | (Message 1) | (Message 2, part 1) |
+--------------+-------------+---------------------+
Second datagram payload
+--------------+---------------------+
| Frame offset | Frame 2, part 2 |
| 0xFFFF | (Message 2, part 2) |
+--------------+---------------------+
Third datagram payload
+--------------+----------------------------+-------------+
| Frame offset | Frame 2, final 8 bytes | Frame 3 |
| 0x0008 | (Message 2, final 8 bytes) | (Message 3) |
+--------------+----------------------------+-------------+
....
EXAMPLE
-------
.Connecting a socket
----
// Connecting to the multicast address 239.192.1.1, port 5555,
// using the first Ethernet network interface on Linux
// and the Encapsulated PGM protocol
rc = zmq_connect(socket, "epgm://eth0;239.192.1.1:5555");
assert (rc == 0);
// Connecting to the multicast address 239.192.1.1, port 5555,
// using the network interface with the address 192.168.1.1
// and the standard PGM protocol
rc = zmq_connect(socket, "pgm://192.168.1.1;239.192.1.1:5555");
assert (rc == 0);
----
SEE ALSO
--------
link:zmq_connect.html[zmq_connect]
link:zmq_setsockopt.html[zmq_setsockopt]
link:zmq_tcp.html[zmq_tcp]
link:zmq_ipc.html[zmq_ipc]
link:zmq_inproc.html[zmq_inproc]
link:zmq.html[zmq]
AUTHORS
-------
This page was written by the 0MQ community. To make a change please
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.

View File

@ -41,7 +41,7 @@ No errors are defined.
SEE ALSO
--------
linkzmq:zmq[7]
link:zmq.html[zmq]
AUTHORS

View File

@ -45,7 +45,7 @@ The 'ZMQ_RCVMORE' option shall return True (1) if the message part last
received from the 'socket' was a data part with more parts to follow. If there
are no data parts to follow, this option shall return False (0).
Refer to linkzmq:zmq_send[3] and linkzmq:zmq_recv[3] for a detailed description
Refer to link:zmq_send.html[zmq_send] and link:zmq_recv.html[zmq_recv] for a detailed description
of multi-part messages.
[horizontal]
@ -66,7 +66,7 @@ limit.
If this limit has been reached the socket shall enter an exceptional state and
depending on the socket type, 0MQ shall take appropriate action such as
blocking or dropping sent messages. Refer to the individual socket descriptions
in linkzmq:zmq_socket[3] for details on the exact action taken for each socket
in link:zmq_socket.html[zmq_socket] for details on the exact action taken for each socket
type.
[horizontal]
@ -87,7 +87,7 @@ limit.
If this limit has been reached the socket shall enter an exceptional state and
depending on the socket type, 0MQ shall take appropriate action such as
blocking or dropping sent messages. Refer to the individual socket descriptions
in linkzmq:zmq_socket[3] for details on the exact action taken for each socket
in link:zmq_socket.html[zmq_socket] for details on the exact action taken for each socket
type.
[horizontal]
@ -110,7 +110,7 @@ corresponds to thread 1, second lowest bit to thread 2 and so on. For example,
a value of 3 specifies that subsequent connections on 'socket' shall be handled
exclusively by I/O threads 1 and 2.
See also linkzmq:zmq_init[3] for details on allocating the number of I/O
See also link:zmq_init.html[zmq_init] for details on allocating the number of I/O
threads for a specific _context_.
[horizontal]
@ -196,8 +196,8 @@ ZMQ_LINGER: Retrieve linger period for socket shutdown
The 'ZMQ_LINGER' option shall retrieve the linger period for the specified
'socket'. The linger period determines how long pending messages which have
yet to be sent to a peer shall linger in memory after a socket is closed with
linkzmq:zmq_close[3], and further affects the termination of the socket's
context with linkzmq:zmq_term[3]. The following outlines the different
link:zmq_close.html[zmq_close], and further affects the termination of the socket's
context with link:zmq_term.html[zmq_term]. The following outlines the different
behaviours:
* The default value of '-1' specifies an infinite linger period. Pending
@ -630,9 +630,9 @@ assert (rc == 0);
SEE ALSO
--------
linkzmq:zmq_setsockopt[3]
linkzmq:zmq_socket[3]
linkzmq:zmq[7]
link:zmq_setsockopt.html[zmq_setsockopt]
link:zmq_socket.html[zmq_socket]
link:zmq.html[zmq]
AUTHORS

View File

@ -25,7 +25,7 @@ A 0MQ 'context' is thread safe and may be shared among as many application
threads as necessary, without any additional locking required on the part of
the caller.
This function is deprecated by linkzmq:zmq_ctx_new[3].
This function is deprecated by link:zmq_ctx_new.html[zmq_ctx_new].
RETURN VALUE
------------
@ -42,8 +42,8 @@ An invalid number of 'io_threads' was requested.
SEE ALSO
--------
linkzmq:zmq[7]
linkzmq:zmq_term[3]
link:zmq.html[zmq]
link:zmq_term.html[zmq_term]
AUTHORS

View File

@ -15,7 +15,7 @@ sharing a single 0MQ 'context'.
NOTE: No I/O threads are involved in passing messages using the 'inproc'
transport. Therefore, if you are using a 0MQ 'context' for in-process messaging
only you can initialise the 'context' with zero I/O threads. See
linkzmq:zmq_init[3] for details.
link:zmq_init.html[zmq_init] for details.
ADDRESSING
@ -71,12 +71,12 @@ assert (rc == 0);
SEE ALSO
--------
linkzmq:zmq_bind[3]
linkzmq:zmq_connect[3]
linkzmq:zmq_ipc[7]
linkzmq:zmq_tcp[7]
linkzmq:zmq_pgm[7]
linkzmq:zmq[7]
link:zmq_bind.html[zmq_bind]
link:zmq_connect.html[zmq_connect]
link:zmq_ipc.html[zmq_ipc]
link:zmq_tcp.html[zmq_tcp]
link:zmq_pgm.html[zmq_pgm]
link:zmq.html[zmq]
AUTHORS

View File

@ -37,7 +37,7 @@ any restrictions placed by the operating system on the format and length of a
When the address is `*`, _zmq_bind()_ shall generate a unique temporary
pathname. The caller should retrieve this pathname using the ZMQ_LAST_ENDPOINT
socket option. See linkzmq:zmq_getsockopt[3] for details.
socket option. See link:zmq_getsockopt.html[zmq_getsockopt] for details.
NOTE: any existing binding to the same endpoint shall be overridden. That is,
if a second process binds to an endpoint already bound by a process, this
@ -80,13 +80,13 @@ assert (rc == 0);
SEE ALSO
--------
linkzmq:zmq_bind[3]
linkzmq:zmq_connect[3]
linkzmq:zmq_inproc[7]
linkzmq:zmq_tcp[7]
linkzmq:zmq_pgm[7]
linkzmq:zmq_getsockopt[3]
linkzmq:zmq[7]
link:zmq_bind.html[zmq_bind]
link:zmq_connect.html[zmq_connect]
link:zmq_inproc.html[zmq_inproc]
link:zmq_tcp.html[zmq_tcp]
link:zmq_pgm.html[zmq_pgm]
link:zmq_getsockopt.html[zmq_getsockopt]
link:zmq.html[zmq]
AUTHORS

View File

@ -42,12 +42,12 @@ Invalid message.
SEE ALSO
--------
linkzmq:zmq_msg_init[3]
linkzmq:zmq_msg_init_size[3]
linkzmq:zmq_msg_init_data[3]
linkzmq:zmq_msg_data[3]
linkzmq:zmq_msg_size[3]
linkzmq:zmq[7]
link:zmq_msg_init.html[zmq_msg_init]
link:zmq_msg_init_size.html[zmq_msg_init_size]
link:zmq_msg_init_data.html[zmq_msg_init_data]
link:zmq_msg_data.html[zmq_msg_data]
link:zmq_msg_size.html[zmq_msg_size]
link:zmq.html[zmq]
AUTHORS

View File

@ -43,12 +43,12 @@ Invalid message.
SEE ALSO
--------
linkzmq:zmq_msg_move[3]
linkzmq:zmq_msg_init[3]
linkzmq:zmq_msg_init_size[3]
linkzmq:zmq_msg_init_data[3]
linkzmq:zmq_msg_close[3]
linkzmq:zmq[7]
link:zmq_msg_move.html[zmq_msg_move]
link:zmq_msg_init.html[zmq_msg_init]
link:zmq_msg_init_size.html[zmq_msg_init_size]
link:zmq_msg_init_data.html[zmq_msg_init_data]
link:zmq_msg_close.html[zmq_msg_close]
link:zmq.html[zmq]
AUTHORS

View File

@ -34,12 +34,12 @@ No errors are defined.
SEE ALSO
--------
linkzmq:zmq_msg_size[3]
linkzmq:zmq_msg_init[3]
linkzmq:zmq_msg_init_size[3]
linkzmq:zmq_msg_init_data[3]
linkzmq:zmq_msg_close[3]
linkzmq:zmq[7]
link:zmq_msg_size.html[zmq_msg_size]
link:zmq_msg_init.html[zmq_msg_init]
link:zmq_msg_init_size.html[zmq_msg_init_size]
link:zmq_msg_init_data.html[zmq_msg_init_data]
link:zmq_msg_close.html[zmq_msg_close]
link:zmq.html[zmq]
AUTHORS

View File

@ -61,10 +61,10 @@ while (true) {
SEE ALSO
--------
linkzmq:zmq_msg_set[3]
linkzmq:zmq_msg_init[3]
linkzmq:zmq_msg_close[3]
linkzmq:zmq[7]
link:zmq_msg_set.html[zmq_msg_set]
link:zmq_msg_init.html[zmq_msg_init]
link:zmq_msg_close.html[zmq_msg_close]
link:zmq.html[zmq]
AUTHORS

View File

@ -50,12 +50,12 @@ assert (rc == 0);
SEE ALSO
--------
linkzmq:zmq_msg_init_size[3]
linkzmq:zmq_msg_init_data[3]
linkzmq:zmq_msg_close[3]
linkzmq:zmq_msg_data[3]
linkzmq:zmq_msg_size[3]
linkzmq:zmq[7]
link:zmq_msg_init_size.html[zmq_msg_init_size]
link:zmq_msg_init_data.html[zmq_msg_init_data]
link:zmq_msg_close.html[zmq_msg_close]
link:zmq_msg_data.html[zmq_msg_data]
link:zmq_msg_size.html[zmq_msg_size]
link:zmq.html[zmq]
AUTHORS

View File

@ -71,12 +71,12 @@ assert (rc == 0);
SEE ALSO
--------
linkzmq:zmq_msg_init_size[3]
linkzmq:zmq_msg_init[3]
linkzmq:zmq_msg_close[3]
linkzmq:zmq_msg_data[3]
linkzmq:zmq_msg_size[3]
linkzmq:zmq[7]
link:zmq_msg_init_size.html[zmq_msg_init_size]
link:zmq_msg_init.html[zmq_msg_init]
link:zmq_msg_close.html[zmq_msg_close]
link:zmq_msg_data.html[zmq_msg_data]
link:zmq_msg_size.html[zmq_msg_size]
link:zmq.html[zmq]
AUTHORS

View File

@ -44,12 +44,12 @@ Insufficient storage space is available.
SEE ALSO
--------
linkzmq:zmq_msg_init_data[3]
linkzmq:zmq_msg_init[3]
linkzmq:zmq_msg_close[3]
linkzmq:zmq_msg_data[3]
linkzmq:zmq_msg_size[3]
linkzmq:zmq[7]
link:zmq_msg_init_data.html[zmq_msg_init_data]
link:zmq_msg_init.html[zmq_msg_init]
link:zmq_msg_close.html[zmq_msg_close]
link:zmq_msg_data.html[zmq_msg_data]
link:zmq_msg_size.html[zmq_msg_size]
link:zmq.html[zmq]
AUTHORS

View File

@ -52,11 +52,11 @@ while (true) {
SEE ALSO
--------
linkzmq:zmq_msg_get[3]
linkzmq:zmq_msg_set[3]
linkzmq:zmq_msg_init[3]
linkzmq:zmq_msg_close[3]
linkzmq:zmq[7]
link:zmq_msg_get.html[zmq_msg_get]
link:zmq_msg_set.html[zmq_msg_set]
link:zmq_msg_init.html[zmq_msg_init]
link:zmq_msg_close.html[zmq_msg_close]
link:zmq.html[zmq]
AUTHORS

View File

@ -38,12 +38,12 @@ Invalid message.
SEE ALSO
--------
linkzmq:zmq_msg_copy[3]
linkzmq:zmq_msg_init[3]
linkzmq:zmq_msg_init_size[3]
linkzmq:zmq_msg_init_data[3]
linkzmq:zmq_msg_close[3]
linkzmq:zmq[7]
link:zmq_msg_copy.html[zmq_msg_copy]
link:zmq_msg_init.html[zmq_msg_init]
link:zmq_msg_init_size.html[zmq_msg_init_size]
link:zmq_msg_init_data.html[zmq_msg_init_data]
link:zmq_msg_close.html[zmq_msg_close]
link:zmq.html[zmq]
AUTHORS

View File

@ -14,7 +14,7 @@ SYNOPSIS
DESCRIPTION
-----------
The _zmq_msg_recv()_ function is identical to linkzmq:zmq_recvmsg[3], which
The _zmq_msg_recv()_ function is identical to link:zmq_recvmsg.html[zmq_recvmsg], which
shall be deprecated in future versions. _zmq_msg_recv()_ is more consistent
with other message manipulation functions.
@ -40,7 +40,7 @@ message or none at all. The total number of message parts is unlimited except
by available memory.
An application that processes multi-part messages must use the _ZMQ_RCVMORE_
linkzmq:zmq_getsockopt[3] option after calling _zmq_msg_recv()_ to determine if
link:zmq_getsockopt.html[zmq_getsockopt] option after calling _zmq_msg_recv()_ to determine if
there are further parts to receive.
@ -61,7 +61,7 @@ The _zmq_msg_recv()_ operation is not supported by this socket type.
The _zmq_msg_recv()_ operation cannot be performed on this socket at the moment
due to the socket not being in the appropriate state. This error may occur with
socket types that switch between several states, such as ZMQ_REP. See the
_messaging patterns_ section of linkzmq:zmq_socket[3] for more information.
_messaging patterns_ section of link:zmq_socket.html[zmq_socket] for more information.
*ETERM*::
The 0MQ 'context' associated with the specified 'socket' was terminated.
*ENOTSOCK*::
@ -110,12 +110,12 @@ do {
SEE ALSO
--------
linkzmq:zmq_recv[3]
linkzmq:zmq_send[3]
linkzmq:zmq_msg_send[3]
linkzmq:zmq_getsockopt[3]
linkzmq:zmq_socket[7]
linkzmq:zmq[7]
link:zmq_recv.html[zmq_recv]
link:zmq_send.html[zmq_send]
link:zmq_msg_send.html[zmq_msg_send]
link:zmq_getsockopt.html[zmq_getsockopt]
link:zmq_socket.html[zmq_socket]
link:zmq.html[zmq]
AUTHORS

View File

@ -14,7 +14,7 @@ SYNOPSIS
DESCRIPTION
-----------
The _zmq_msg_send()_ function is identical to linkzmq:zmq_sendmsg[3], which
The _zmq_msg_send()_ function is identical to link:zmq_sendmsg.html[zmq_sendmsg], which
shall be deprecated in future versions. _zmq_msg_send()_ is more consistent
with other message manipulation functions.
@ -71,7 +71,7 @@ The _zmq_msg_send()_ operation is not supported by this socket type.
The _zmq_msg_send()_ operation cannot be performed on this socket at the moment
due to the socket not being in the appropriate state. This error may occur with
socket types that switch between several states, such as ZMQ_REP. See the
_messaging patterns_ section of linkzmq:zmq_socket[3] for more information.
_messaging patterns_ section of link:zmq_socket.html[zmq_socket] for more information.
*ETERM*::
The 0MQ 'context' associated with the specified 'socket' was terminated.
*ENOTSOCK*::
@ -112,11 +112,11 @@ rc = zmq_msg_send (&part3, socket, 0);
SEE ALSO
--------
linkzmq:zmq_recv[3]
linkzmq:zmq_send[3]
linkzmq:zmq_msg_recv[3]
linkzmq:zmq_socket[7]
linkzmq:zmq[7]
link:zmq_recv.html[zmq_recv]
link:zmq_send.html[zmq_send]
link:zmq_msg_recv.html[zmq_msg_recv]
link:zmq_socket.html[zmq_socket]
link:zmq.html[zmq]
AUTHORS

View File

@ -36,8 +36,8 @@ The requested property _property_ is unknown.
SEE ALSO
--------
linkzmq:zmq_msg_get[3]
linkzmq:zmq[7]
link:zmq_msg_get.html[zmq_msg_get]
link:zmq.html[zmq]
AUTHORS

View File

@ -34,12 +34,12 @@ No errors are defined.
SEE ALSO
--------
linkzmq:zmq_msg_data[3]
linkzmq:zmq_msg_init[3]
linkzmq:zmq_msg_init_size[3]
linkzmq:zmq_msg_init_data[3]
linkzmq:zmq_msg_close[3]
linkzmq:zmq[7]
link:zmq_msg_data.html[zmq_msg_data]
link:zmq_msg_init.html[zmq_msg_init]
link:zmq_msg_init_size.html[zmq_msg_init_size]
link:zmq_msg_init_data.html[zmq_msg_init_data]
link:zmq_msg_close.html[zmq_msg_close]
link:zmq.html[zmq]
AUTHORS

View File

@ -16,9 +16,9 @@ for ZeroMQ sockets.
SEE ALSO
--------
linkzmq:zmq_plain[7]
linkzmq:zmq_curve[7]
linkzmq:zmq[7]
link:zmq_plain.html[zmq_plain]
link:zmq_curve.html[zmq_curve]
link:zmq.html[zmq]
AUTHORS

View File

@ -25,7 +25,7 @@ The 'pgm' and 'epgm' transports can only be used with the 'ZMQ_PUB' and
Further, PGM sockets are rate limited by default. For details, refer to the
'ZMQ_RATE', and 'ZMQ_RECOVERY_IVL' options documented in
linkzmq:zmq_setsockopt[3].
link:zmq_setsockopt.html[zmq_setsockopt].
CAUTION: The 'pgm' transport implementation requires access to raw IP sockets.
Additional privileges may be required on some operating systems for this
@ -73,7 +73,7 @@ Consecutive PGM datagrams are interpreted by 0MQ as a single continuous stream
of data where 0MQ messages are not necessarily aligned with PGM datagram
boundaries and a single 0MQ message may span several PGM datagrams. This stream
of data consists of 0MQ messages encapsulated in 'frames' as described in
linkzmq:zmq_tcp[7].
link:zmq_tcp.html[zmq_tcp].
PGM datagram payload
@ -149,12 +149,12 @@ assert (rc == 0);
SEE ALSO
--------
linkzmq:zmq_connect[3]
linkzmq:zmq_setsockopt[3]
linkzmq:zmq_tcp[7]
linkzmq:zmq_ipc[7]
linkzmq:zmq_inproc[7]
linkzmq:zmq[7]
link:zmq_connect.html[zmq_connect]
link:zmq_setsockopt.html[zmq_setsockopt]
link:zmq_tcp.html[zmq_tcp]
link:zmq_ipc.html[zmq_ipc]
link:zmq_inproc.html[zmq_inproc]
link:zmq.html[zmq]
AUTHORS

View File

@ -25,10 +25,10 @@ options. Which peer binds, and which connects, is not relevant.
SEE ALSO
--------
linkzmq:zmq_setsockopt[3]
linkzmq:zmq_null[7]
linkzmq:zmq_curve[7]
linkzmq:zmq[7]
link:zmq_setsockopt.html[zmq_setsockopt]
link:zmq_null.html[zmq_null]
link:zmq_curve.html[zmq_curve]
link:zmq.html[zmq]
AUTHORS

View File

@ -114,10 +114,10 @@ assert (rc >= 0);
SEE ALSO
--------
linkzmq:zmq_socket[3]
linkzmq:zmq_send[3]
linkzmq:zmq_recv[3]
linkzmq:zmq[7]
link:zmq_socket.html[zmq_socket]
link:zmq_send.html[zmq_send]
link:zmq_recv.html[zmq_recv]
link:zmq.html[zmq]
Your operating system documentation for the _poll()_ system call.

View File

@ -31,7 +31,7 @@ If the capture socket is not NULL, the proxy shall send all messages, received
on both frontend and backend, to the capture socket. The capture socket should
be a 'ZMQ_PUB', 'ZMQ_DEALER', 'ZMQ_PUSH', or 'ZMQ_PAIR' socket.
Refer to linkzmq:zmq_socket[3] for a description of the available socket types.
Refer to link:zmq_socket.html[zmq_socket] for a description of the available socket types.
EXAMPLE USAGE
-------------
@ -86,10 +86,10 @@ zmq_proxy (frontend, backend, NULL);
SEE ALSO
--------
linkzmq:zmq_bind[3]
linkzmq:zmq_connect[3]
linkzmq:zmq_socket[3]
linkzmq:zmq[7]
link:zmq_bind.html[zmq_bind]
link:zmq_connect.html[zmq_connect]
link:zmq_socket.html[zmq_socket]
link:zmq.html[zmq]
AUTHORS

View File

@ -29,8 +29,8 @@ If the control socket is NULL, the function behave exactly as if zmq_proxy
had been called.
Refer to linkzmq:zmq_socket[3] for a description of the available socket types.
Refer to linkzmq:zmq_proxy[3] for a description of the zmq_proxy.
Refer to link:zmq_socket.html[zmq_socket] for a description of the available socket types.
Refer to link:zmq_proxy.html[zmq_proxy] for a description of the zmq_proxy.
EXAMPLE USAGE
-------------
@ -86,11 +86,11 @@ assert (zmq_send (control, "TERMINATE", 9, 0) == 0);
SEE ALSO
--------
linkzmq:zmq_proxy[3]
linkzmq:zmq_bind[3]
linkzmq:zmq_connect[3]
linkzmq:zmq_socket[3]
linkzmq:zmq[7]
link:zmq_proxy.html[zmq_proxy]
link:zmq_bind.html[zmq_bind]
link:zmq_connect.html[zmq_connect]
link:zmq_socket.html[zmq_socket]
link:zmq.html[zmq]
AUTHORS

View File

@ -35,7 +35,7 @@ message or none at all. The total number of message parts is unlimited except
by available memory.
An application that processes multi-part messages must use the _ZMQ_RCVMORE_
linkzmq:zmq_getsockopt[3] option after calling _zmq_recv()_ to determine if
link:zmq_getsockopt.html[zmq_getsockopt] option after calling _zmq_recv()_ to determine if
there are further parts to receive.
RETURN VALUE
@ -56,7 +56,7 @@ The _zmq_recv()_ operation is not supported by this socket type.
The _zmq_recv()_ operation cannot be performed on this socket at the moment
due to the socket not being in the appropriate state. This error may occur with
socket types that switch between several states, such as ZMQ_REP. See the
_messaging patterns_ section of linkzmq:zmq_socket[3] for more information.
_messaging patterns_ section of link:zmq_socket.html[zmq_socket] for more information.
*ETERM*::
The 0MQ 'context' associated with the specified 'socket' was terminated.
*ENOTSOCK*::
@ -78,10 +78,10 @@ assert (nbytes != -1);
SEE ALSO
--------
linkzmq:zmq_send[3]
linkzmq:zmq_getsockopt[3]
linkzmq:zmq_socket[7]
linkzmq:zmq[7]
link:zmq_send.html[zmq_send]
link:zmq_getsockopt.html[zmq_getsockopt]
link:zmq_socket.html[zmq_socket]
link:zmq.html[zmq]
AUTHORS

View File

@ -38,7 +38,7 @@ message or none at all. The total number of message parts is unlimited except
by available memory.
An application that processes multi-part messages must use the _ZMQ_RCVMORE_
linkzmq:zmq_getsockopt[3] option after calling _zmq_recvmsg()_ to determine if
link:zmq_getsockopt.html[zmq_getsockopt] option after calling _zmq_recvmsg()_ to determine if
there are further parts to receive.
@ -59,7 +59,7 @@ The _zmq_recvmsg()_ operation is not supported by this socket type.
The _zmq_recvmsg()_ operation cannot be performed on this socket at the moment
due to the socket not being in the appropriate state. This error may occur with
socket types that switch between several states, such as ZMQ_REP. See the
_messaging patterns_ section of linkzmq:zmq_socket[3] for more information.
_messaging patterns_ section of link:zmq_socket.html[zmq_socket] for more information.
*ETERM*::
The 0MQ 'context' associated with the specified 'socket' was terminated.
*ENOTSOCK*::
@ -108,11 +108,11 @@ do {
SEE ALSO
--------
linkzmq:zmq_recv[3]
linkzmq:zmq_send[3]
linkzmq:zmq_getsockopt[3]
linkzmq:zmq_socket[7]
linkzmq:zmq[7]
link:zmq_recv.html[zmq_recv]
link:zmq_send.html[zmq_send]
link:zmq_getsockopt.html[zmq_getsockopt]
link:zmq_socket.html[zmq_socket]
link:zmq.html[zmq]
AUTHORS

View File

@ -62,7 +62,7 @@ The _zmq_send()_ operation is not supported by this socket type.
The _zmq_send()_ operation cannot be performed on this socket at the moment
due to the socket not being in the appropriate state. This error may occur with
socket types that switch between several states, such as ZMQ_REP. See the
_messaging patterns_ section of linkzmq:zmq_socket[3] for more information.
_messaging patterns_ section of link:zmq_socket.html[zmq_socket] for more information.
*ETERM*::
The 0MQ 'context' associated with the specified 'socket' was terminated.
*ENOTSOCK*::
@ -90,10 +90,10 @@ assert (rc == 2);
SEE ALSO
--------
linkzmq:zmq_send_const[3]
linkzmq:zmq_recv[3]
linkzmq:zmq_socket[7]
linkzmq:zmq[7]
link:zmq_send_const.html[zmq_send_const]
link:zmq_recv.html[zmq_recv]
link:zmq_socket.html[zmq_socket]
link:zmq.html[zmq]
AUTHORS

View File

@ -63,7 +63,7 @@ The _zmq_send_const()_ operation is not supported by this socket type.
The _zmq_send_const()_ operation cannot be performed on this socket at the moment
due to the socket not being in the appropriate state. This error may occur with
socket types that switch between several states, such as ZMQ_REP. See the
_messaging patterns_ section of linkzmq:zmq_socket[3] for more information.
_messaging patterns_ section of link:zmq_socket.html[zmq_socket] for more information.
*ETERM*::
The 0MQ 'context' associated with the specified 'socket' was terminated.
*ENOTSOCK*::
@ -91,10 +91,10 @@ assert (rc == 2);
SEE ALSO
--------
linkzmq:zmq_send[3]
linkzmq:zmq_recv[3]
linkzmq:zmq_socket[7]
linkzmq:zmq[7]
link:zmq_send.html[zmq_send]
link:zmq_recv.html[zmq_recv]
link:zmq_socket.html[zmq_socket]
link:zmq.html[zmq]
AUTHORS

View File

@ -67,7 +67,7 @@ The _zmq_sendmsg()_ operation is not supported by this socket type.
The _zmq_sendmsg()_ operation cannot be performed on this socket at the moment
due to the socket not being in the appropriate state. This error may occur with
socket types that switch between several states, such as ZMQ_REP. See the
_messaging patterns_ section of linkzmq:zmq_socket[3] for more information.
_messaging patterns_ section of link:zmq_socket.html[zmq_socket] for more information.
*ETERM*::
The 0MQ 'context' associated with the specified 'socket' was terminated.
*ENOTSOCK*::
@ -108,9 +108,9 @@ rc = zmq_sendmsg (socket, &part3, 0);
SEE ALSO
--------
linkzmq:zmq_recv[3]
linkzmq:zmq_socket[7]
linkzmq:zmq[7]
link:zmq_recv.html[zmq_recv]
link:zmq_socket.html[zmq_socket]
link:zmq.html[zmq]
AUTHORS

View File

@ -41,7 +41,7 @@ limit.
If this limit has been reached the socket shall enter an exceptional state and
depending on the socket type, 0MQ shall take appropriate action such as
blocking or dropping sent messages. Refer to the individual socket descriptions
in linkzmq:zmq_socket[3] for details on the exact action taken for each socket
in link:zmq_socket.html[zmq_socket] for details on the exact action taken for each socket
type.
NOTE: 0MQ does not guarantee that the socket will accept as many as ZMQ_SNDHWM
@ -66,7 +66,7 @@ limit.
If this limit has been reached the socket shall enter an exceptional state and
depending on the socket type, 0MQ shall take appropriate action such as
blocking or dropping sent messages. Refer to the individual socket descriptions
in linkzmq:zmq_socket[3] for details on the exact action taken for each socket
in link:zmq_socket.html[zmq_socket] for details on the exact action taken for each socket
type.
[horizontal]
@ -89,7 +89,7 @@ corresponds to thread 1, second lowest bit to thread 2 and so on. For example,
a value of 3 specifies that subsequent connections on 'socket' shall be handled
exclusively by I/O threads 1 and 2.
See also linkzmq:zmq_init[3] for details on allocating the number of I/O
See also link:zmq_init.html[zmq_init] for details on allocating the number of I/O
threads for a specific _context_.
[horizontal]
@ -153,7 +153,7 @@ Applicable socket types:: ZMQ_REQ, ZMQ_REP, ZMQ_ROUTER, ZMQ_DEALER.
ZMQ_RATE: Set multicast data rate
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The 'ZMQ_RATE' option shall set the maximum send or receive data rate for
multicast transports such as linkzmq:zmq_pgm[7] using the specified 'socket'.
multicast transports such as link:zmq_pgm.html[zmq_pgm] using the specified 'socket'.
[horizontal]
Option value type:: int
@ -213,8 +213,8 @@ ZMQ_LINGER: Set linger period for socket shutdown
The 'ZMQ_LINGER' option shall set the linger period for the specified 'socket'.
The linger period determines how long pending messages which have yet to be
sent to a peer shall linger in memory after a socket is closed with
linkzmq:zmq_close[3], and further affects the termination of the socket's
context with linkzmq:zmq_term[3]. The following outlines the different
link:zmq_close.html[zmq_close], and further affects the termination of the socket's
context with link:zmq_term.html[zmq_term]. The following outlines the different
behaviours:
* The default value of '-1' specifies an infinite linger period. Pending
@ -571,7 +571,7 @@ ZMQ_PLAIN_SERVER: Set PLAIN server role
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Defines whether the socket will act as server for PLAIN security, see
linkzmq:zmq_plain[7]. A value of '1' means the socket will act as
link:zmq_plain.html[zmq_plain]. A value of '1' means the socket will act as
PLAIN server. A value of '0' means the socket will not act as PLAIN
server, and its security role then depends on other option settings.
Setting this to '0' shall reset the socket security to NULL.
@ -588,8 +588,8 @@ ZMQ_PLAIN_USERNAME: Set PLAIN security username
Sets the username for outgoing connections over TCP or IPC. If you set this
to a non-null value, the security mechanism used for connections shall be
PLAIN, see linkzmq:zmq_plain[7]. If you set this to a null value, the security
mechanism used for connections shall be NULL, see linkzmq:zmq_null[3].
PLAIN, see link:zmq_plain.html[zmq_plain]. If you set this to a null value, the security
mechanism used for connections shall be NULL, see link:zmq_null.html[zmq_null].
[horizontal]
Option value type:: character string
@ -603,8 +603,8 @@ ZMQ_PLAIN_PASSWORD: Set PLAIN security password
Sets the password for outgoing connections over TCP or IPC. If you set this
to a non-null value, the security mechanism used for connections shall be
PLAIN, see linkzmq:zmq_plain[7]. If you set this to a null value, the security
mechanism used for connections shall be NULL, see linkzmq:zmq_null[3].
PLAIN, see link:zmq_plain.html[zmq_plain]. If you set this to a null value, the security
mechanism used for connections shall be NULL, see link:zmq_null.html[zmq_null].
[horizontal]
Option value type:: character string
@ -617,7 +617,7 @@ ZMQ_CURVE_SERVER: Set CURVE server role
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Defines whether the socket will act as server for CURVE security, see
linkzmq:zmq_curve[7]. A value of '1' means the socket will act as
link:zmq_curve.html[zmq_curve]. A value of '1' means the socket will act as
CURVE server. A value of '0' means the socket will not act as CURVE
server, and its security role then depends on other option settings.
Setting this to '0' shall reset the socket security to NULL. When you
@ -636,10 +636,10 @@ ZMQ_CURVE_PUBLICKEY: Set CURVE public key
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sets the socket's long term public key. You must set this on CURVE client
sockets, see linkzmq:zmq_curve[7]. You can provide the key as 32 binary
sockets, see link:zmq_curve.html[zmq_curve]. You can provide the key as 32 binary
bytes, or as a 40-character string encoded in the Z85 encoding format.
The public key must always be used with the matching secret key. To
generate a public/secret key pair, use linkzmq:zmq_curve_keypair[3].
generate a public/secret key pair, use link:zmq_curve_keypair.html[zmq_curve_keypair].
[horizontal]
Option value type:: binary data or Z85 text string
@ -652,10 +652,10 @@ ZMQ_CURVE_SECRETKEY: Set CURVE secret key
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sets the socket's long term secret key. You must set this on both CURVE
client and server sockets, see linkzmq:zmq_curve[7]. You can provide the
client and server sockets, see link:zmq_curve.html[zmq_curve]. You can provide the
key as 32 binary bytes, or as a 40-character string encoded in the Z85
encoding format. To generate a public/secret key pair, use
linkzmq:zmq_curve_keypair[3].
link:zmq_curve_keypair.html[zmq_curve_keypair].
[horizontal]
Option value type:: binary data or Z85 text string
@ -668,7 +668,7 @@ ZMQ_CURVE_SERVERKEY: Set CURVE server key
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sets the socket's long term server key. You must set this on CURVE client
sockets, see linkzmq:zmq_curve[7]. You can provide the key as 32 binary
sockets, see link:zmq_curve.html[zmq_curve]. You can provide the key as 32 binary
bytes, or as a 40-character string encoded in the Z85 encoding format.
This key must have been generated together with the server's secret key.
@ -760,11 +760,11 @@ assert (rc);
SEE ALSO
--------
linkzmq:zmq_getsockopt[3]
linkzmq:zmq_socket[3]
linkzmq:zmq_plain[7]
linkzmq:zmq_curve[7]
linkzmq:zmq[7]
link:zmq_getsockopt.html[zmq_getsockopt]
link:zmq_socket.html[zmq_socket]
link:zmq_plain.html[zmq_plain]
link:zmq_curve.html[zmq_curve]
link:zmq.html[zmq]
AUTHORS

View File

@ -21,9 +21,9 @@ communication over the socket.
The newly created socket is initially unbound, and not associated with any
endpoints. In order to establish a message flow a socket must first be
connected to at least one endpoint with linkzmq:zmq_connect[3], or at least one
connected to at least one endpoint with link:zmq_connect.html[zmq_connect], or at least one
endpoint must be created for accepting incoming connections with
linkzmq:zmq_bind[3].
link:zmq_bind.html[zmq_bind].
.Key differences to conventional sockets
Generally speaking, conventional sockets present a _synchronous_ interface to
@ -112,7 +112,7 @@ peers, and each message received is fair-queued from all connected peers.
When a 'ZMQ_DEALER' socket enters the 'mute' state due to having reached the
high water mark for all peers, or if there are no peers at all, then any
linkzmq:zmq_send[3] operations on the socket shall block until the mute
link:zmq_send.html[zmq_send] operations on the socket shall block until the mute
state ends or at least one peer becomes available for sending; messages are not
discarded.
@ -175,7 +175,7 @@ ZMQ_PUB
^^^^^^^
A socket of type 'ZMQ_PUB' is used by a _publisher_ to distribute data.
Messages sent are distributed in a fan out fashion to all connected peers.
The linkzmq:zmq_recv[3] function is not implemented for this socket type.
The link:zmq_recv.html[zmq_recv] function is not implemented for this socket type.
When a 'ZMQ_PUB' socket enters the 'mute' state due to having reached the
high water mark for a _subscriber_, then any messages that would be sent to the
@ -196,7 +196,7 @@ ZMQ_SUB
^^^^^^^
A socket of type 'ZMQ_SUB' is used by a _subscriber_ to subscribe to data
distributed by a _publisher_. Initially a 'ZMQ_SUB' socket is not subscribed to
any messages, use the 'ZMQ_SUBSCRIBE' option of linkzmq:zmq_setsockopt[3] to
any messages, use the 'ZMQ_SUBSCRIBE' option of link:zmq_setsockopt.html[zmq_setsockopt] to
specify which messages to subscribe to. The _zmq_send()_ function is not
implemented for this socket type.
@ -262,7 +262,7 @@ socket type.
When a 'ZMQ_PUSH' socket enters the 'mute' state due to having reached the
high water mark for all downstream _nodes_, or if there are no downstream
_nodes_ at all, then any linkzmq:zmq_send[3] operations on the socket shall
_nodes_ at all, then any link:zmq_send.html[zmq_send] operations on the socket shall
block until the mute state ends or at least one downstream _node_
becomes available for sending; messages are not discarded.
@ -309,11 +309,11 @@ time. No message routing or filtering is performed on messages sent over a
When a 'ZMQ_PAIR' socket enters the 'mute' state due to having reached the
high water mark for the connected peer, or if no peer is connected, then
any linkzmq:zmq_send[3] operations on the socket shall block until the peer
any link:zmq_send.html[zmq_send] operations on the socket shall block until the peer
becomes available for sending; messages are not discarded.
NOTE: 'ZMQ_PAIR' sockets are designed for inter-thread communication across
the linkzmq:zmq_inproc[7] transport and do not implement functionality such
the link:zmq_inproc.html[zmq_inproc] transport and do not implement functionality such
as auto-reconnection. 'ZMQ_PAIR' sockets are considered experimental and may
have other missing or broken aspects.
@ -428,14 +428,14 @@ zmq_ctx_destroy (ctx);
SEE ALSO
--------
linkzmq:zmq_init[3]
linkzmq:zmq_setsockopt[3]
linkzmq:zmq_bind[3]
linkzmq:zmq_connect[3]
linkzmq:zmq_send[3]
linkzmq:zmq_recv[3]
linkzmq:zmq_inproc[7]
linkzmq:zmq[7]
link:zmq_init.html[zmq_init]
link:zmq_setsockopt.html[zmq_setsockopt]
link:zmq_bind.html[zmq_bind]
link:zmq_connect.html[zmq_connect]
link:zmq_send.html[zmq_send]
link:zmq_recv.html[zmq_recv]
link:zmq_inproc.html[zmq_inproc]
link:zmq.html[zmq]
AUTHORS

View File

@ -250,7 +250,7 @@ int main()
SEE ALSO
--------
linkzmq:zmq[7]
link:zmq.html[zmq]
AUTHORS

View File

@ -46,7 +46,7 @@ if (!ctx) {
SEE ALSO
--------
linkzmq:zmq[7]
link:zmq.html[zmq]
AUTHORS

View File

@ -43,7 +43,7 @@ The TCP port number may be specified by:
* The wild-card `*`, meaning a system-assigned ephemeral port.
When using ephemeral ports, the caller should retrieve the actual assigned
port using the ZMQ_LAST_ENDPOINT socket option. See linkzmq:zmq_getsockopt[3]
port using the ZMQ_LAST_ENDPOINT socket option. See link:zmq_getsockopt.html[zmq_getsockopt]
for details.
@ -89,12 +89,12 @@ assert (rc == 0);
SEE ALSO
--------
linkzmq:zmq_bind[3]
linkzmq:zmq_connect[3]
linkzmq:zmq_pgm[7]
linkzmq:zmq_ipc[7]
linkzmq:zmq_inproc[7]
linkzmq:zmq[7]
link:zmq_bind.html[zmq_bind]
link:zmq_connect.html[zmq_connect]
link:zmq_pgm.html[zmq_pgm]
link:zmq_ipc.html[zmq_ipc]
link:zmq_inproc.html[zmq_inproc]
link:zmq.html[zmq]
AUTHORS

View File

@ -34,9 +34,9 @@ Context termination is performed in the following steps:
option has expired.
For further details regarding socket linger behaviour refer to the _ZMQ_LINGER_
option in linkzmq:zmq_setsockopt[3].
option in link:zmq_setsockopt.html[zmq_setsockopt].
This function is deprecated by linkzmq:zmq_ctx_term[3].
This function is deprecated by link:zmq_ctx_term.html[zmq_ctx_term].
RETURN VALUE
------------
@ -54,10 +54,10 @@ Termination was interrupted by a signal. It can be restarted if needed.
SEE ALSO
--------
linkzmq:zmq[7]
linkzmq:zmq_init[3]
linkzmq:zmq_close[3]
linkzmq:zmq_setsockopt[3]
link:zmq.html[zmq]
link:zmq_init.html[zmq_init]
link:zmq_close.html[zmq_close]
link:zmq_setsockopt.html[zmq_setsockopt]
AUTHORS

View File

@ -18,7 +18,7 @@ The _zmq_unbind()_ function shall unbind a socket specified
by the 'socket' argument from the endpoint specified by the 'endpoint'
argument.
The 'endpoint' argument is as described in linkzmq:zmq_bind[3]
The 'endpoint' argument is as described in link:zmq_bind.html[zmq_bind]
RETURN VALUE
@ -54,9 +54,9 @@ assert (rc == 0);
SEE ALSO
--------
linkzmq:zmq_bind[3]
linkzmq:zmq_socket[3]
linkzmq:zmq[7]
link:zmq_bind.html[zmq_bind]
link:zmq_socket.html[zmq_socket]
link:zmq.html[zmq]
AUTHORS

View File

@ -45,7 +45,7 @@ printf ("Current 0MQ version is %d.%d.%d\n", major, minor, patch);
SEE ALSO
--------
linkzmq:zmq[7]
link:zmq.html[zmq]
AUTHORS

View File

@ -39,9 +39,9 @@ zmq_z85_decode (public_key, decoded);
SEE ALSO
--------
linkzmq:zmq_z85_decode[3]
linkzmq:zmq_curve_keypair[3]
linkzmq:zmq_curve[7]
link:zmq_z85_decode.html[zmq_z85_decode]
link:zmq_curve_keypair.html[zmq_curve_keypair]
link:zmq_curve.html[zmq_curve]
AUTHORS

View File

@ -46,9 +46,9 @@ puts (encoded);
SEE ALSO
--------
linkzmq:zmq_z85_decode[3]
linkzmq:zmq_curve_keypair[3]
linkzmq:zmq_curve[7]
link:zmq_z85_decode.html[zmq_z85_decode]
link:zmq_curve_keypair.html[zmq_curve_keypair]
link:zmq_curve.html[zmq_curve]
AUTHORS