mirror of
https://github.com/zeromq/libzmq.git
synced 2024-12-27 15:41:05 +08:00
commit
6cdd720400
@ -166,16 +166,16 @@ Library.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
SPECIAL EXCEPTION GRANTED BY IMATIX
|
||||
SPECIAL EXCEPTION GRANTED BY COPYRIGHT HOLDERS
|
||||
|
||||
As a special exception, iMatix gives you permission to link this library with
|
||||
independent modules to produce an executable, regardless of the license terms
|
||||
of these independent modules, and to copy and distribute the resulting
|
||||
executable under terms of your choice, provided that you also meet, for each
|
||||
linked independent module, the terms and conditions of the license of that
|
||||
module. An independent module is a module which is not derived from or based on
|
||||
this library. If you modify this library, you must extend this exception to your
|
||||
version of the library.
|
||||
As a special exception, copyright holders give you permission to link this
|
||||
library with independent modules to produce an executable, regardless of
|
||||
the license terms of these independent modules, and to copy and distribute
|
||||
the resulting executable under terms of your choice, provided that you also
|
||||
meet, for each linked independent module, the terms and conditions of
|
||||
the license of that module. An independent module is a module which is not
|
||||
derived from or based on this library. If you modify this library, you must
|
||||
extend this exception to your version of the library.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Copyright (c) 2007-2011 iMatix Corporation
|
||||
# Copyright (c) 2007-2009 iMatix Corporation
|
||||
# Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
#
|
||||
# This file is part of 0MQ.
|
||||
|
13
configure.in
13
configure.in
@ -348,19 +348,6 @@ fi
|
||||
|
||||
AC_SUBST(pgm_basename)
|
||||
|
||||
# VTCP extension
|
||||
libzmq_vtcp="no"
|
||||
|
||||
AC_ARG_WITH([vtcp], [AS_HELP_STRING([--with-vtcp],
|
||||
[build libzmq with VTCP extension [default=no]])],
|
||||
[with_vtcp=$withval], [with_vtcp=no])
|
||||
|
||||
if test "x$with_vtcp" != "xno"; then
|
||||
AC_DEFINE(ZMQ_HAVE_VTCP, 1, [Have VTCP extension])
|
||||
AC_CHECK_LIB(vtcp, vtcp_bind, ,
|
||||
[AC_MSG_ERROR([cannot link with -lvtcp, install libvtcp.])])
|
||||
fi
|
||||
|
||||
# Set -Wall, -Werror and -pedantic
|
||||
AC_LANG_PUSH([C++])
|
||||
|
||||
|
@ -39,19 +39,6 @@ Default value:: N/A
|
||||
Applicable socket types:: all
|
||||
|
||||
|
||||
ZMQ_RCVLABEL: Inquires whether last message received was a label
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
The 'ZMQ_RCVLABEL' option shall return True (1) if the message part last
|
||||
received from the 'socket' was an address label. Otherwise, this option
|
||||
shall return False (0).
|
||||
|
||||
[horizontal]
|
||||
Option value type:: int
|
||||
Option value unit:: boolean
|
||||
Default value:: N/A
|
||||
Applicable socket types:: all
|
||||
|
||||
|
||||
ZMQ_RCVMORE: More message data parts to follow
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
The 'ZMQ_RCVMORE' option shall return True (1) if the message part last
|
||||
@ -130,6 +117,22 @@ Option value unit:: N/A (bitmap)
|
||||
Default value:: 0
|
||||
Applicable socket types:: N/A
|
||||
|
||||
ZMQ_IDENTITY: Set socket identity
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
The 'ZMQ_IDENTITY' option shall retrieve the identity of the specified 'socket'.
|
||||
Socket identity is used only by request/reply pattern. Namely, it can be used
|
||||
in tandem with ROUTER socket to route messages to the peer with specific
|
||||
identity.
|
||||
|
||||
Identity should be at least one byte and at most 255 bytes long. Identities
|
||||
starting with binary zero are reserved for use by 0MQ infrastructure.
|
||||
|
||||
[horizontal]
|
||||
Option value type:: binary data
|
||||
Option value unit:: N/A
|
||||
Default value:: NULL
|
||||
Applicable socket types:: all
|
||||
|
||||
|
||||
ZMQ_RATE: Retrieve multicast data rate
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
@ -29,8 +29,7 @@ function shall fail with 'errno' set to EAGAIN.
|
||||
|
||||
Multi-part messages
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
A 0MQ message is composed of 1 or more message parts, starting with zero or
|
||||
more address 'label' parts, followed by 1 or more 'data' parts. Each message
|
||||
A 0MQ message is composed of 1 or more message parts. Each message
|
||||
part is an independent 'zmq_msg_t' in its own right. 0MQ ensures atomic
|
||||
delivery of messages; peers shall receive either all _message parts_ of a
|
||||
message or none at all. The total number of message parts is unlimited except
|
||||
@ -38,9 +37,7 @@ by available memory.
|
||||
|
||||
An application that processes multipart messages must use the _ZMQ_RCVMORE_
|
||||
linkzmq:zmq_getsockopt[3] option after calling _zmq_recv()_ to determine if
|
||||
there are further parts to receive. An application that manipulates address
|
||||
labels must use _ZMQ_RCVLABEL_ to determine the zero or more label parts
|
||||
that precede the data part(s).
|
||||
there are further parts to receive.
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
|
@ -29,8 +29,7 @@ function shall fail with 'errno' set to EAGAIN.
|
||||
|
||||
Multi-part messages
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
A 0MQ message is composed of 1 or more message parts, starting with zero or
|
||||
more address 'label' parts, followed by 1 or more 'data' parts. Each message
|
||||
A 0MQ message is composed of 1 or more message parts. Each message
|
||||
part is an independent 'zmq_msg_t' in its own right. 0MQ ensures atomic
|
||||
delivery of messages; peers shall receive either all _message parts_ of a
|
||||
message or none at all. The total number of message parts is unlimited except
|
||||
@ -38,9 +37,7 @@ by available memory.
|
||||
|
||||
An application that processes multipart messages must use the _ZMQ_RCVMORE_
|
||||
linkzmq:zmq_getsockopt[3] option after calling _zmq_recvmsg()_ to determine if
|
||||
there are further parts to receive. An application that manipulates address
|
||||
labels must use _ZMQ_RCVLABEL_ to determine the zero or more label parts
|
||||
that precede the data part(s).
|
||||
there are further parts to receive.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
|
@ -23,11 +23,6 @@ Specifies that the operation should be performed in non-blocking mode. If the
|
||||
message cannot be queued on the 'socket', the _zmq_send()_ function shall
|
||||
fail with 'errno' set to EAGAIN.
|
||||
|
||||
*ZMQ_SNDLABEL*::
|
||||
Specifies that the message part being sent is an address label, and that
|
||||
further message parts are to follow. Refer to linkzmq:zmq_socket[3] for the
|
||||
semantics of address labels in each socket pattern.
|
||||
|
||||
*ZMQ_SNDMORE*::
|
||||
Specifies that the message being sent is a multi-part message, and that further
|
||||
message parts are to follow. Refer to the section regarding multi-part messages
|
||||
@ -40,16 +35,14 @@ the 'socket' and 0MQ has assumed responsibility for the message.
|
||||
|
||||
Multi-part messages
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
A 0MQ message is composed of 1 or more message parts, starting with zero or
|
||||
more address 'label' parts, followed by 1 or more 'data' parts. Each message
|
||||
A 0MQ message is composed of 1 or more message parts. Each message
|
||||
part is an independent 'zmq_msg_t' in its own right. 0MQ ensures atomic
|
||||
delivery of messages; peers shall receive either all _message parts_ of a
|
||||
message or none at all. The total number of message parts is unlimited except
|
||||
by available memory.
|
||||
|
||||
An application that sends multipart messages must use the _ZMQ_SNDMORE_ flag
|
||||
when sending each data part except the final one. An application that sends
|
||||
address labels must use _ZMQ_SNDLABEL_ when sending each label.
|
||||
when sending each data part except the final one.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
|
@ -23,11 +23,6 @@ Specifies that the operation should be performed in non-blocking mode. If the
|
||||
message cannot be queued on the 'socket', the _zmq_sendmsg()_ function shall
|
||||
fail with 'errno' set to EAGAIN.
|
||||
|
||||
*ZMQ_SNDLABEL*::
|
||||
Specifies that the message part being sent is an address 'label', and that
|
||||
further message parts are to follow. Refer to linkzmq:zmq_socket[3] for the
|
||||
semantics of address labels in each socket pattern.
|
||||
|
||||
*ZMQ_SNDMORE*::
|
||||
Specifies that the message being sent is a multi-part message, and that further
|
||||
message parts are to follow. Refer to the section regarding multi-part messages
|
||||
@ -44,16 +39,14 @@ the 'socket' and 0MQ has assumed responsibility for the message.
|
||||
|
||||
Multi-part messages
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
A 0MQ message is composed of 1 or more message parts, starting with zero or
|
||||
more address 'label' parts, followed by 1 or more 'data' parts. Each message
|
||||
A 0MQ message is composed of 1 or more message parts. Each message
|
||||
part is an independent 'zmq_msg_t' in its own right. 0MQ ensures atomic
|
||||
delivery of messages; peers shall receive either all _message parts_ of a
|
||||
message or none at all. The total number of message parts is unlimited except
|
||||
by available memory.
|
||||
|
||||
An application that sends multipart messages must use the _ZMQ_SNDMORE_ flag
|
||||
when sending each data part except the final one. An application that sends
|
||||
address labels must use _ZMQ_SNDLABEL_ when sending each label.
|
||||
when sending each data part except the final one.
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
|
@ -122,6 +122,23 @@ Default value:: N/A
|
||||
Applicable socket types:: ZMQ_SUB
|
||||
|
||||
|
||||
ZMQ_IDENTITY: Set socket identity
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
The 'ZMQ_IDENTITY' option shall set the identity of the specified 'socket'.
|
||||
Socket identity is used only by request/reply pattern. Namely, it can be used
|
||||
in tandem with ROUTER socket to route messages to the peer with specific
|
||||
identity.
|
||||
|
||||
Identity should be at least one byte and at most 255 bytes long. Identities
|
||||
starting with binary zero are reserved for use by 0MQ infrastructure.
|
||||
|
||||
[horizontal]
|
||||
Option value type:: binary data
|
||||
Option value unit:: N/A
|
||||
Default value:: NULL
|
||||
Applicable socket types:: all
|
||||
|
||||
|
||||
ZMQ_RATE: Set multicast data rate
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
The 'ZMQ_RATE' option shall set the maximum send or receive data rate for
|
||||
|
@ -81,11 +81,6 @@ any linkzmq:zmq_send[3] operations on the socket shall block until the
|
||||
exceptional state ends or at least one _service_ becomes available for sending;
|
||||
messages are not discarded.
|
||||
|
||||
'ZMQ_REQ' socket adds a unique 'request ID' label to every outbound message.
|
||||
When receiving a reply, it checks whether the 'request ID' of the reply matches
|
||||
the last 'request ID' sent. If it does not, the message is silently dropped and
|
||||
waiting for the reply is resumed.
|
||||
|
||||
[horizontal]
|
||||
.Summary of ZMQ_REQ characteristics
|
||||
Compatible peer sockets:: 'ZMQ_REP'
|
||||
@ -108,10 +103,6 @@ When a 'ZMQ_REP' socket enters an exceptional state due to having reached the
|
||||
high water mark for a _client_, then any replies sent to the _client_ in
|
||||
question shall be dropped until the exceptional state ends.
|
||||
|
||||
'ZMQ_REP' socket strips all the labels from the incoming message, stores them
|
||||
and passes the remaining data parts to the user. When user sends the reply,
|
||||
the stored labels are re-attached to the reply.
|
||||
|
||||
[horizontal]
|
||||
.Summary of ZMQ_REP characteristics
|
||||
Compatible peer sockets:: 'ZMQ_REQ'
|
||||
@ -136,8 +127,6 @@ linkzmq:zmq_send[3] operations on the socket shall block until the exceptional
|
||||
state ends or at least one peer becomes available for sending; messages are not
|
||||
discarded.
|
||||
|
||||
'ZMQ_XREQ' socket doesn't inspect or modify the message labels.
|
||||
|
||||
[horizontal]
|
||||
.Summary of ZMQ_XREQ characteristics
|
||||
Compatible peer sockets:: 'ZMQ_XREP', 'ZMQ_REP'
|
||||
@ -162,14 +151,6 @@ messages sent to the socket shall be dropped until the exceptional state ends.
|
||||
Likewise, any messages to be routed to a non-existent peer or a peer for which
|
||||
the individual high water mark has been reached shall also be dropped.
|
||||
|
||||
When receiving messages a 'ZMQ_XREP' socket attaches a label uniquely
|
||||
identifying the originating peer to the message before passing it to the
|
||||
application.
|
||||
|
||||
When sending messages a 'ZMQ_XREP' socket removes the first label from the
|
||||
message and uses it to determine which the peer the message shall be routed to.
|
||||
If the peer does not exist anymore the message is silently discarded.
|
||||
|
||||
[horizontal]
|
||||
.Summary of ZMQ_XREP characteristics
|
||||
Compatible peer sockets:: 'ZMQ_XREQ', 'ZMQ_REQ'
|
||||
@ -196,8 +177,6 @@ high water mark for a _subscriber_, then any messages that would be sent to the
|
||||
_subscriber_ in question shall instead be dropped until the exceptional state
|
||||
ends. The _zmq_send()_ function shall never block for this socket type.
|
||||
|
||||
This socket type doesn't use message labels.
|
||||
|
||||
[horizontal]
|
||||
.Summary of ZMQ_PUB characteristics
|
||||
Compatible peer sockets:: 'ZMQ_SUB', 'ZMQ_XSUB'
|
||||
@ -215,8 +194,6 @@ any messages, use the 'ZMQ_SUBSCRIBE' option of linkzmq:zmq_setsockopt[3] to
|
||||
specify which messages to subscribe to. The _zmq_send()_ function is not
|
||||
implemented for this socket type.
|
||||
|
||||
This socket type doesn't use message labels.
|
||||
|
||||
[horizontal]
|
||||
.Summary of ZMQ_SUB characteristics
|
||||
Compatible peer sockets:: 'ZMQ_PUB', 'ZMQ_XPUB'
|
||||
@ -233,8 +210,6 @@ in form of incoming messages. Subscription message is a byte 1 (for
|
||||
subscriptions) or byte 0 (for unsubscriptions) followed by the subscription
|
||||
body.
|
||||
|
||||
This socket type doesn't use message labels.
|
||||
|
||||
[horizontal]
|
||||
.Summary of ZMQ_XPUB characteristics
|
||||
Compatible peer sockets:: 'ZMQ_SUB', 'ZMQ_XSUB'
|
||||
@ -250,8 +225,6 @@ Same as ZMQ_SUB except that you subscribe by sending subscription messages to
|
||||
the socket. Subscription message is a byte 1 (for subscriptions) or byte 0
|
||||
(for unsubscriptions) followed by the subscription body.
|
||||
|
||||
This socket type doesn't use message labels.
|
||||
|
||||
[horizontal]
|
||||
.Summary of ZMQ_XSUB characteristics
|
||||
Compatible peer sockets:: 'ZMQ_PUB', 'ZMQ_XPUB'
|
||||
@ -282,8 +255,6 @@ _nodes_ at all, then any linkzmq:zmq_send[3] operations on the socket shall
|
||||
block until the exceptional state ends or at least one downstream _node_
|
||||
becomes available for sending; messages are not discarded.
|
||||
|
||||
This socket type doesn't use message labels.
|
||||
|
||||
[horizontal]
|
||||
.Summary of ZMQ_PUSH characteristics
|
||||
Compatible peer sockets:: 'ZMQ_PULL'
|
||||
@ -301,8 +272,6 @@ from upstream pipeline _nodes_. Messages are fair-queued from among all
|
||||
connected upstream _nodes_. The _zmq_send()_ function is not implemented for
|
||||
this socket type.
|
||||
|
||||
This socket type doesn't use message labels.
|
||||
|
||||
[horizontal]
|
||||
.Summary of ZMQ_PULL characteristics
|
||||
Compatible peer sockets:: 'ZMQ_PUSH'
|
||||
@ -330,8 +299,6 @@ 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
|
||||
becomes available for sending; messages are not discarded.
|
||||
|
||||
This socket type doesn't use message labels.
|
||||
|
||||
NOTE: 'ZMQ_PAIR' sockets are experimental, and are currently missing several
|
||||
features such as auto-reconnection.
|
||||
|
||||
|
@ -1,5 +1,7 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2010 iMatix Corporation
|
||||
Copyright (c) 2011 VMware, Inc.
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
@ -162,10 +164,13 @@ ZMQ_EXPORT int zmq_term (void *context);
|
||||
#define ZMQ_PUSH 8
|
||||
#define ZMQ_XPUB 9
|
||||
#define ZMQ_XSUB 10
|
||||
#define ZMQ_ROUTER 13
|
||||
|
||||
#define ZMQ_ROUTER ZMQ_XREP
|
||||
#define ZMQ_DEALER ZMQ_XREQ
|
||||
|
||||
/* Socket options. */
|
||||
#define ZMQ_AFFINITY 4
|
||||
#define ZMQ_IDENTITY 5
|
||||
#define ZMQ_SUBSCRIBE 6
|
||||
#define ZMQ_UNSUBSCRIBE 7
|
||||
#define ZMQ_RATE 8
|
||||
@ -186,15 +191,11 @@ ZMQ_EXPORT int zmq_term (void *context);
|
||||
#define ZMQ_MULTICAST_HOPS 25
|
||||
#define ZMQ_RCVTIMEO 27
|
||||
#define ZMQ_SNDTIMEO 28
|
||||
#define ZMQ_RCVLABEL 29
|
||||
#define ZMQ_RCVCMD 30
|
||||
#define ZMQ_IPV4ONLY 31
|
||||
|
||||
/* Send/recv options. */
|
||||
#define ZMQ_DONTWAIT 1
|
||||
#define ZMQ_SNDMORE 2
|
||||
#define ZMQ_SNDLABEL 4
|
||||
#define ZMQ_SNDCMD 8
|
||||
|
||||
ZMQ_EXPORT void *zmq_socket (void *context, int type);
|
||||
ZMQ_EXPORT int zmq_close (void *s);
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -9,6 +9,7 @@ libzmq_la_SOURCES = \
|
||||
array.hpp \
|
||||
atomic_counter.hpp \
|
||||
atomic_ptr.hpp \
|
||||
blob.hpp \
|
||||
clock.hpp \
|
||||
command.hpp \
|
||||
config.hpp \
|
||||
@ -55,7 +56,6 @@ libzmq_la_SOURCES = \
|
||||
reaper.hpp \
|
||||
rep.hpp \
|
||||
req.hpp \
|
||||
router.hpp \
|
||||
select.hpp \
|
||||
session_base.hpp \
|
||||
signaler.hpp \
|
||||
@ -68,8 +68,6 @@ libzmq_la_SOURCES = \
|
||||
tcp_listener.hpp \
|
||||
thread.hpp \
|
||||
trie.hpp \
|
||||
vtcp_connecter.hpp \
|
||||
vtcp_listener.hpp \
|
||||
windows.hpp \
|
||||
wire.hpp \
|
||||
xpub.hpp \
|
||||
@ -113,7 +111,6 @@ libzmq_la_SOURCES = \
|
||||
reaper.cpp \
|
||||
pub.cpp \
|
||||
random.cpp \
|
||||
router.cpp \
|
||||
rep.cpp \
|
||||
req.cpp \
|
||||
select.cpp \
|
||||
@ -127,8 +124,6 @@ libzmq_la_SOURCES = \
|
||||
tcp_listener.cpp \
|
||||
thread.cpp \
|
||||
trie.cpp \
|
||||
vtcp_connecter.cpp \
|
||||
vtcp_listener.cpp \
|
||||
xpub.cpp \
|
||||
xrep.cpp \
|
||||
xreq.cpp \
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
35
src/blob.hpp
Normal file
35
src/blob.hpp
Normal file
@ -0,0 +1,35 @@
|
||||
/*
|
||||
Copyright (c) 2010 250bpm s.r.o.
|
||||
Copyright (c) 2010-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
||||
0MQ is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU Lesser General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
0MQ is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __ZMQ_BLOB_HPP_INCLUDED__
|
||||
#define __ZMQ_BLOB_HPP_INCLUDED__
|
||||
|
||||
#include <string>
|
||||
|
||||
namespace zmq
|
||||
{
|
||||
|
||||
// Object to hold dynamically allocated opaque binary data.
|
||||
typedef std::basic_string <unsigned char> blob_t;
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
Copyright (c) 2010-2011 250bpm s.r.o.
|
||||
Copyright (c) 2010-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
Copyright (c) 2010-2011 250bpm s.r.o.
|
||||
Copyright (c) 2010-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,4 +1,5 @@
|
||||
/*
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
10
src/dist.cpp
10
src/dist.cpp
@ -1,6 +1,7 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
Copyright (c) 2011 250bpm s.r.o.
|
||||
Copyright (c) 2011 VMware, Inc.
|
||||
Copyright (c) 2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
||||
@ -111,8 +112,7 @@ int zmq::dist_t::send_to_all (msg_t *msg_, int flags_)
|
||||
int zmq::dist_t::send_to_matching (msg_t *msg_, int flags_)
|
||||
{
|
||||
// Is this end of a multipart message?
|
||||
bool msg_more =
|
||||
msg_->flags () & (msg_t::more | msg_t::label) ? true : false;
|
||||
bool msg_more = msg_->flags () & msg_t::more ? true : false;
|
||||
|
||||
// Push the message to matching pipes.
|
||||
distribute (msg_, flags_);
|
||||
@ -181,7 +181,7 @@ bool zmq::dist_t::write (pipe_t *pipe_, msg_t *msg_)
|
||||
eligible--;
|
||||
return false;
|
||||
}
|
||||
if (!(msg_->flags () & (msg_t::more | msg_t::label)))
|
||||
if (!(msg_->flags () & msg_t::more))
|
||||
pipe_->flush ();
|
||||
return true;
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
Copyright (c) 2011 250bpm s.r.o.
|
||||
Copyright (c) 2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
||||
|
@ -1,5 +1,7 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2011 VMware, Inc.
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
@ -89,14 +91,14 @@ bool zmq::encoder_t::message_ready ()
|
||||
tmpbuf [0] = (unsigned char) size;
|
||||
tmpbuf [1] = (in_progress.flags () & ~msg_t::shared);
|
||||
next_step (tmpbuf, 2, &encoder_t::size_ready,
|
||||
!(in_progress.flags () & (msg_t::more | msg_t::label)));
|
||||
!(in_progress.flags () & msg_t::more));
|
||||
}
|
||||
else {
|
||||
tmpbuf [0] = 0xff;
|
||||
put_uint64 (tmpbuf + 1, size);
|
||||
tmpbuf [9] = (in_progress.flags () & ~msg_t::shared);
|
||||
next_step (tmpbuf, 10, &encoder_t::size_ready,
|
||||
!(in_progress.flags () & (msg_t::more | msg_t::label)));
|
||||
!(in_progress.flags () & msg_t::more));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,7 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2011 VMware, Inc.
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
@ -91,7 +93,7 @@ int zmq::fq_t::recvpipe (msg_t *msg_, int flags_, pipe_t **pipe_)
|
||||
if (pipe_)
|
||||
*pipe_ = pipes [current];
|
||||
more =
|
||||
msg_->flags () & (msg_t::more | msg_t::label) ? true : false;
|
||||
msg_->flags () & msg_t::more ? true : false;
|
||||
if (!more) {
|
||||
current++;
|
||||
if (current >= active)
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2010-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2010-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2010-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
Copyright (c) 2011 250bpm s.r.o.
|
||||
Copyright (c) 2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
Copyright (c) 2011 250bpm s.r.o.
|
||||
Copyright (c) 2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
Copyright (c) 2011 250bpm s.r.o.
|
||||
Copyright (c) 2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
Copyright (c) 2011 250bpm s.r.o.
|
||||
Copyright (c) 2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
Copyright (c) 2011 250bpm s.r.o.
|
||||
Copyright (c) 2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
Copyright (c) 2011 250bpm s.r.o.
|
||||
Copyright (c) 2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,7 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2010-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2011 VMware, Inc.
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
@ -75,7 +77,7 @@ int zmq::lb_t::send (msg_t *msg_, int flags_)
|
||||
// switch back to non-dropping mode.
|
||||
if (dropping) {
|
||||
|
||||
more = msg_->flags () & (msg_t::more | msg_t::label) ? true : false;
|
||||
more = msg_->flags () & msg_t::more ? true : false;
|
||||
if (!more)
|
||||
dropping = false;
|
||||
|
||||
@ -88,8 +90,7 @@ int zmq::lb_t::send (msg_t *msg_, int flags_)
|
||||
|
||||
while (active > 0) {
|
||||
if (pipes [current]->write (msg_)) {
|
||||
more =
|
||||
msg_->flags () & (msg_t::more | msg_t::label) ? true : false;
|
||||
more = msg_->flags () & msg_t::more ? true : false;
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2010-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2009-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
11
src/msg.hpp
11
src/msg.hpp
@ -1,5 +1,7 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2011 VMware, Inc.
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
@ -47,10 +49,9 @@ namespace zmq
|
||||
// Mesage flags.
|
||||
enum
|
||||
{
|
||||
label = 1,
|
||||
command = 2,
|
||||
shared = 64,
|
||||
more = 128
|
||||
more = 1,
|
||||
identity = 64,
|
||||
shared = 128
|
||||
};
|
||||
|
||||
bool check ();
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
Copyright (c) 2011 250bpm s.r.o.
|
||||
Copyright (c) 2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
Copyright (c) 2011 250bpm s.r.o.
|
||||
Copyright (c) 2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2010-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,7 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2011 VMware, Inc.
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
@ -27,6 +29,7 @@ zmq::options_t::options_t () :
|
||||
sndhwm (1000),
|
||||
rcvhwm (1000),
|
||||
affinity (0),
|
||||
identity_size (0),
|
||||
rate (100),
|
||||
recovery_ivl (10000),
|
||||
multicast_hops (1),
|
||||
@ -43,7 +46,9 @@ zmq::options_t::options_t () :
|
||||
ipv4only (1),
|
||||
delay_on_close (true),
|
||||
delay_on_disconnect (true),
|
||||
filter (false)
|
||||
filter (false),
|
||||
send_identity (false),
|
||||
recv_identity (false)
|
||||
{
|
||||
}
|
||||
|
||||
@ -76,6 +81,20 @@ int zmq::options_t::setsockopt (int option_, const void *optval_,
|
||||
affinity = *((uint64_t*) optval_);
|
||||
return 0;
|
||||
|
||||
case ZMQ_IDENTITY:
|
||||
|
||||
// Empty identity is invalid as well as identity longer than
|
||||
// 255 bytes. Identity starting with binary zero is invalid
|
||||
// as these are used for auto-generated identities.
|
||||
if (optvallen_ < 1 || optvallen_ > 255 ||
|
||||
*((const unsigned char*) optval_) == 0) {
|
||||
errno = EINVAL;
|
||||
return -1;
|
||||
}
|
||||
identity_size = optvallen_;
|
||||
memcpy (identity, optval_, identity_size);
|
||||
return 0;
|
||||
|
||||
case ZMQ_RATE:
|
||||
if (optvallen_ != sizeof (int) || *((int*) optval_) <= 0) {
|
||||
errno = EINVAL;
|
||||
@ -232,6 +251,15 @@ int zmq::options_t::getsockopt (int option_, void *optval_, size_t *optvallen_)
|
||||
*optvallen_ = sizeof (uint64_t);
|
||||
return 0;
|
||||
|
||||
case ZMQ_IDENTITY:
|
||||
if (*optvallen_ < identity_size) {
|
||||
errno = EINVAL;
|
||||
return -1;
|
||||
}
|
||||
memcpy (optval_, identity, identity_size);
|
||||
*optvallen_ = identity_size;
|
||||
return 0;
|
||||
|
||||
case ZMQ_RATE:
|
||||
if (*optvallen_ < sizeof (int)) {
|
||||
errno = EINVAL;
|
||||
|
@ -1,5 +1,7 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2011 VMware, Inc.
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
@ -41,6 +43,10 @@ namespace zmq
|
||||
// I/O thread affinity.
|
||||
uint64_t affinity;
|
||||
|
||||
// Socket identity
|
||||
unsigned char identity_size;
|
||||
unsigned char identity [256];
|
||||
|
||||
// Maximum tranfer rate [kb/s]. Default 100kb/s.
|
||||
int rate;
|
||||
|
||||
@ -93,6 +99,12 @@ namespace zmq
|
||||
|
||||
// If 1, (X)SUB socket should filter the messages. If 0, it should not.
|
||||
bool filter;
|
||||
|
||||
// Sends identity to all new connections.
|
||||
bool send_identity;
|
||||
|
||||
// Receivers identity from all new connections.
|
||||
bool recv_identity;
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
Copyright (c) 2010-2011 250bpm s.r.o.
|
||||
Copyright (c) 2010-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
Copyright (c) 2010-2011 250bpm s.r.o.
|
||||
Copyright (c) 2010-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,7 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2010-2011 Miru Limited
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,7 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2010-2011 Miru Limited
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,7 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2010-2011 Miru Limited
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,7 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2010-2011 Miru Limited
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,7 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2010-2011 Miru Limited
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,7 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2010-2011 Miru Limited
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
21
src/pipe.cpp
21
src/pipe.cpp
@ -1,5 +1,7 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2011 VMware, Inc.
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
@ -63,8 +65,7 @@ zmq::pipe_t::pipe_t (object_t *parent_, upipe_t *inpipe_, upipe_t *outpipe_,
|
||||
peer (NULL),
|
||||
sink (NULL),
|
||||
state (active),
|
||||
delay (delay_),
|
||||
pipe_id (0)
|
||||
delay (delay_)
|
||||
{
|
||||
}
|
||||
|
||||
@ -86,14 +87,14 @@ void zmq::pipe_t::set_event_sink (i_pipe_events *sink_)
|
||||
sink = sink_;
|
||||
}
|
||||
|
||||
void zmq::pipe_t::set_pipe_id (uint32_t id_)
|
||||
void zmq::pipe_t::set_identity (const blob_t &identity_)
|
||||
{
|
||||
pipe_id = id_;
|
||||
identity = identity_;
|
||||
}
|
||||
|
||||
uint32_t zmq::pipe_t::get_pipe_id ()
|
||||
zmq::blob_t zmq::pipe_t::get_identity ()
|
||||
{
|
||||
return pipe_id;
|
||||
return identity;
|
||||
}
|
||||
|
||||
bool zmq::pipe_t::check_read ()
|
||||
@ -136,7 +137,7 @@ bool zmq::pipe_t::read (msg_t *msg_)
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!(msg_->flags () & (msg_t::more | msg_t::label)))
|
||||
if (!(msg_->flags () & msg_t::more))
|
||||
msgs_read++;
|
||||
|
||||
if (lwm > 0 && msgs_read % lwm == 0)
|
||||
@ -165,7 +166,7 @@ bool zmq::pipe_t::write (msg_t *msg_)
|
||||
if (unlikely (!check_write (msg_)))
|
||||
return false;
|
||||
|
||||
bool more = msg_->flags () & (msg_t::more | msg_t::label) ? true : false;
|
||||
bool more = msg_->flags () & msg_t::more ? true : false;
|
||||
outpipe->write (*msg_, more);
|
||||
if (!more)
|
||||
msgs_written++;
|
||||
@ -179,7 +180,7 @@ void zmq::pipe_t::rollback ()
|
||||
msg_t msg;
|
||||
if (outpipe) {
|
||||
while (outpipe->unwrite (&msg)) {
|
||||
zmq_assert (msg.flags () & (msg_t::more | msg_t::label));
|
||||
zmq_assert (msg.flags () & msg_t::more);
|
||||
int rc = msg.close ();
|
||||
errno_assert (rc == 0);
|
||||
}
|
||||
|
13
src/pipe.hpp
13
src/pipe.hpp
@ -1,5 +1,7 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2011 VMware, Inc.
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
@ -27,6 +29,7 @@
|
||||
#include "object.hpp"
|
||||
#include "stdint.hpp"
|
||||
#include "array.hpp"
|
||||
#include "blob.hpp"
|
||||
|
||||
namespace zmq
|
||||
{
|
||||
@ -70,8 +73,8 @@ namespace zmq
|
||||
void set_event_sink (i_pipe_events *sink_);
|
||||
|
||||
// Pipe endpoint can store an opaque ID to be used by its clients.
|
||||
void set_pipe_id (uint32_t id_);
|
||||
uint32_t get_pipe_id ();
|
||||
void set_identity (const blob_t &identity_);
|
||||
blob_t get_identity ();
|
||||
|
||||
// Returns true if there is at least one message to read in the pipe.
|
||||
bool check_read ();
|
||||
@ -182,8 +185,8 @@ namespace zmq
|
||||
// asks us to.
|
||||
bool delay;
|
||||
|
||||
// Opaque ID. To be used by the clients, not the pipe itself.
|
||||
uint32_t pipe_id;
|
||||
// Identity of the writer. Used uniquely by the reader side.
|
||||
blob_t identity;
|
||||
|
||||
// Returns true if the message is delimiter; false otherwise.
|
||||
static bool is_delimiter (msg_t &msg_);
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2010-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
Copyright (c) 2010-2011 250bpm s.r.o.
|
||||
Copyright (c) 2010-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
Copyright (c) 2010-2011 250bpm s.r.o.
|
||||
Copyright (c) 2010-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2009 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2010 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2010 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2010 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2007-2010 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
Copyright (c) 2011 250bpm s.r.o.
|
||||
Copyright (c) 2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
Copyright (c) 2011 250bpm s.r.o.
|
||||
Copyright (c) 2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2007-2011 iMatix Corporation
|
||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||
Copyright (c) 2011 250bpm s.r.o.
|
||||
Copyright (c) 2011 Other contributors as noted in the AUTHORS file
|
||||
|
||||
This file is part of 0MQ.
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user