mirror of
				https://github.com/zeromq/libzmq.git
				synced 2025-10-30 13:47:13 +01:00 
			
		
		
		
	Merge pull request #2624 from msune/master
Problem: adapt, clarify docs ZMQ_ROUTER_MANDATORY
This commit is contained in:
		| @@ -745,6 +745,11 @@ code if the SNDHWM is reached and ZMQ_DONTWAIT was used. Without ZMQ_DONTWAIT | |||||||
| it will block until the SNDTIMEO is reached or a spot in the send queue opens | it will block until the SNDTIMEO is reached or a spot in the send queue opens | ||||||
| up. | up. | ||||||
|  |  | ||||||
|  | When ZMQ_ROUTER_MANDATORY is set to `1`, 'ZMQ_POLLOUT' events will be generated | ||||||
|  | if one or more messages can be sent to at least one of the peers. If | ||||||
|  | ZMQ_ROUTER_MANDATORY is set to `0`, the socket will generate a 'ZMQ_POLLOUT' | ||||||
|  | event on every call to 'zmq_poll'. | ||||||
|  |  | ||||||
| [horizontal] | [horizontal] | ||||||
| Option value type:: int | Option value type:: int | ||||||
| Option value unit:: 0, 1 | Option value unit:: 0, 1 | ||||||
|   | |||||||
| @@ -504,15 +504,22 @@ prepend a message part containing the _identity_ of the originating peer to the | |||||||
| message before passing it to the application. Messages received are fair-queued | message before passing it to the application. Messages received are fair-queued | ||||||
| from among all connected peers. When sending messages a 'ZMQ_ROUTER' socket shall | from among all connected peers. When sending messages a 'ZMQ_ROUTER' socket shall | ||||||
| remove the first part of the message and use it to determine the _identity_ of | remove the first part of the message and use it to determine the _identity_ of | ||||||
| the peer the message shall be routed to. If the peer does not exist anymore | the peer the message shall be routed to. If the peer does not exist anymore, or | ||||||
| the message shall be silently discarded by default, unless 'ZMQ_ROUTER_MANDATORY' | has never existed, the message shall be silently discarded. However, if | ||||||
| socket option is set to '1'. | 'ZMQ_ROUTER_MANDATORY' socket option is set to '1', the socket shall fail | ||||||
|  | with EHOSTUNREACH in both cases. | ||||||
|  |  | ||||||
| When a 'ZMQ_ROUTER' socket enters the 'mute' state due to having reached the | When a 'ZMQ_ROUTER' socket enters the 'mute' state due to having reached the | ||||||
| high water mark for all peers, then any messages sent to the socket shall be dropped | high water mark for all peers, then any messages sent to the socket shall be dropped | ||||||
| until the mute state ends. Likewise, any messages routed to a peer for which | until the mute state ends. Likewise, any messages routed to a peer for which | ||||||
| the individual high water mark has been reached shall also be dropped, | the individual high water mark has been reached shall also be dropped. If, | ||||||
| unless 'ZMQ_ROUTER_MANDATORY' socket option is set. | 'ZMQ_ROUTER_MANDATORY' is set to '1', the socket shall block or return EAGAIN in | ||||||
|  | both cases. | ||||||
|  |  | ||||||
|  | When a 'ZMQ_ROUTER' socket has 'ZMQ_ROUTER_MANDATORY' flag set to '1', the | ||||||
|  | socket shall generate 'ZMQ_POLLIN' events upon reception of messages from one | ||||||
|  | or more peers. Likewise, the socket shall generate 'ZMQ_POLLOUT' events when | ||||||
|  | at least one message can be sent to one or more peers. | ||||||
|  |  | ||||||
| When a 'ZMQ_REQ' socket is connected to a 'ZMQ_ROUTER' socket, in addition to the | When a 'ZMQ_REQ' socket is connected to a 'ZMQ_ROUTER' socket, in addition to the | ||||||
| _identity_ of the originating peer each message received shall contain an empty | _identity_ of the originating peer each message received shall contain an empty | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Luca Boccassi
					Luca Boccassi