From 1aee86408d575d6572b071d7564da7f006d1757e Mon Sep 17 00:00:00 2001 From: Martin Lucina Date: Tue, 9 Mar 2010 18:47:31 +0100 Subject: Documentation rewrite --- doc/zmq_inproc.txt | 85 +++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 62 insertions(+), 23 deletions(-) (limited to 'doc/zmq_inproc.txt') diff --git a/doc/zmq_inproc.txt b/doc/zmq_inproc.txt index 7861201..2805f71 100644 --- a/doc/zmq_inproc.txt +++ b/doc/zmq_inproc.txt @@ -4,47 +4,86 @@ zmq_inproc(7) NAME ---- -zmq_inproc - 0MQ transport to pass messages between threads +zmq_inproc - 0MQ local in-process (inter-thread) communication transport SYNOPSIS -------- -In-process transport is optimised for passing messages between threads in the -same process. +The in-process transport passes messages via memory directly between threads +sharing a single 0MQ 'context'. -Messages are passed directly from one application thread to -another application thread. There are no intervening I/O threads involved. -Thus, if you are using 0MQ for in-process messaging only, you can initialise -the library (linkzmq:zmq_init[3]) with zero I/O worker threads. +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. -CONNECTION STRING ------------------ -Connection string for inproc transport is "inproc://" followed by an arbitrary -string. There are no restrictions on the string format: +ADDRESSING +---------- +A 0MQ address string consists of two parts as follows: +'transport'`://`'endpoint'. The 'transport' part specifies the underlying +transport protocol to use, and for the in-process transport shall be set to +`inproc`. The meaning of the 'endpoint' part for the in-process transport is +defined below. + + +Assigning a local address to a socket +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +When assigning a local address to a 'socket' using _zmq_bind()_ with the +'inproc' transport, the 'endpoint' shall be interpreted as an arbitrary string +identifying the 'name' to create. The 'name' must be unique within the 0MQ +'context' associated with the 'socket' and may be up to 256 characters in +length. No other restrictions are placed on the format of the 'name'. ----- - inproc://my_endpoint - inproc://feeds/opra/cboe - inproc://feeds.opra.nasdaq - inproc://!&W#($)_@_123*((^^^ ----- + +Connecting a socket +~~~~~~~~~~~~~~~~~~~ +When connecting a 'socket' to a peer address using _zmq_connect()_ with the +'inproc' transport, the 'endpoint' shall be interpreted as an arbitrary string +identifying the 'name' to connect to. The 'name' must have been previously +created by assigning it to at least one 'socket' within the same 0MQ 'context' +as the 'socket' being connected. WIRE FORMAT ----------- -In-process transport transfers messages via memory thus there is no need for a -wire format specification. +Not applicable. + + +EXAMPLES +-------- +.Assigning a local address to a socket +---- +/* Assign the in-process name "#1" */ +rc = zmq_bind(socket, "inproc://#1"); +assert (rc == 0); +/* Assign the in-process name "my-endpoint" */ +rc = zmq_bind(socket, "inproc://my-endpoint"); +assert (rc == 0); +---- + +.Connecting a socket +---- +/* Connect to the in-process name "#1" */ +rc = zmq_connect(socket, "inproc://#1"); +assert (rc == 0); +/* Connect to the in-process name "my-endpoint" */ +rc = zmq_connect(socket, "inproc://my-endpoint"); +assert (rc == 0); +---- SEE ALSO -------- +linkzmq:zmq_bind[3] +linkzmq:zmq_connect[3] linkzmq:zmq_ipc[7] linkzmq:zmq_tcp[7] -linkzmq:zmq_udp[7] linkzmq:zmq_pgm[7] +linkzmq:zmq[7] -AUTHOR ------- -Martin Sustrik +AUTHORS +------- +The 0MQ documentation was written by Martin Sustrik and +Martin Lucina . -- cgit v1.2.3