Commit Graph

290 Commits

Author SHA1 Message Date
Martin Sustrik
73630de98a Version number bumped to 4.0.0
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-15 08:11:42 +02:00
Martin Sustrik
d7adc3f19a ZMQ_FILTER option removed
The filtering is now done depending on the socket type. SUB socket
filters the messages (end-to-end filtering) while XSUB relies
on upstream nodes to do (imprefect) filtering.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-11 09:57:59 +02:00
Martin Sustrik
a28928fe37 Introduce ZMQ_ROUTER and ZMQ_DEALER sockets
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-06-20 13:36:18 +02:00
Martin Sustrik
ab99975ad4 LABEL flag added to the wire format
So far there was no distinction between message parts used by 0MQ
and message parts used by user. Now, the message parts used by 0MQ
are marked as 'LABEL'.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-06-20 11:33:54 +02:00
Martin Sustrik
4b60023b96 Merge branch 'master' of github.com:zeromq/libzmq 2011-06-19 09:15:06 +02:00
Steven McCoy
9b795de4af Refactor Windows versioning and WinSock usage.Signed-off-by: Steven McCoy <steven.mccoy@miru.hk> 2011-06-18 20:44:03 +02:00
Fabien Ninoles
d7923f08ca Add sockopt ZMQ_RCVTIMEO/ZMQ_SNDTIMEO.
- Add doc and tests
- Add options and setup
- Wait using poll/select

Signed-off-by: Fabien Ninoles <fabien@tzone.org>
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-06-17 12:22:02 +02:00
Martin Sustrik
ff93f54653 ZMQ_FILTER socket option added
This option is a performance tweak. In devices XSUB socket filters
the messages just to send them to XPUB socket which filters them
once more. Setting ZMQ_FILTER option to 0 allows to switch the
filtering in XSUB socket off.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-06-12 15:24:08 +02:00
Martin Sustrik
5d0cffc52f ZMQ_MULTICAST_HOPS socket option added
Sets the time-to-live field in every multicast packet sent from the socket.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-05-15 18:25:43 +02:00
Martin Sustrik
e0246e32d7 Message-related functionality factored out into msg_t class.
This patch addresses serveral issues:
1. It gathers message related functionality scattered over whole
   codebase into a single class.
2. It makes zmq_msg_t an opaque datatype. Internals of the class
   don't pollute zmq.h header file.
3. zmq_msg_t size decreases from 48 to 32 bytes. That saves ~33%
   of memory in scenarios with large amount of small messages.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-04-21 22:27:48 +02:00
Martin Sustrik
581697695a Message validity is checked in the runtime
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-04-19 08:08:15 +02:00
Martin Sustrik
0839cceac9 Missing ENOTSOCK added on Win32
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-04-09 09:46:59 +02:00
Martin Sustrik
abb184a051 ZMQ_NOBLOCK renamed ZMQ_DONTWAIT
Done because of POSIX compliance

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-26 10:38:40 +01:00
Martin Sustrik
bc4a1ce334 ZMQ_HWM split into ZMQ_SNDHWM and ZMQ_RCVHWM
These new options allow to control the maximum size of the
inbound and outbound message pipe separately.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-24 16:47:33 +01:00
Martin Sustrik
a2252de2bc ZMQ_RECOVERY_IVL and ZMQ_RECOVERY_IVL_MSEC reconciled
There's only one option now -- ZMQ_RECOVRY_IVL --
and it's measured in milliseconds.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-24 14:36:40 +01:00
Martin Sustrik
8463b4d55e SWAP functionality removed
On-disk storage should be implemented in devices rather than
in 0MQ core. 0MQ is a networking library and there's no point
in storing network buffers on disk.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-24 12:27:06 +01:00
Martin Sustrik
fb27a000d9 send/recv was changed to send/recv/sendmsg/recvmsg
send/recv now complies with POSIX by using raw buffers instead
of message objects and by returning number of bytes sent/recvd
instead of 0/-1.

The return value is changed accordingly for sendmsg and recvmsg.

Note that related man pages will be fixed in a separate patch.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-24 11:53:55 +01:00
Martin Sustrik
d4e83d2601 C++ binding removed from the core
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-24 10:18:06 +01:00
Martin Sustrik
941be8d217 zmq_device removed
Devices are basically applications on top of 0MQ stack. They
should reside in separate libraties.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-23 17:44:16 +01:00
Martin Sustrik
b45b68ae4a ZMQ_MCAST_LOOP removed
Multicast loopback is not a real multicast, rather a kernel-space
simulation. Moreover, it tends to be rather unreliable and lossy.
Removing the option will force users to use transports better
suited for the job, such as inproc or ipc.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-23 17:01:39 +01:00
Martin Sustrik
34d7854199 Obsolete constants ZMQ_UPSTREAM and ZMQ_DOWNSTREAM removed
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-23 15:26:47 +01:00
Martin Sustrik
dee5f650dd Version bumped to 3.0.0
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-23 15:24:18 +01:00
Guido Goldstein
d0c8edde35 Added missing close method w/ check if socket is already closed.
Signed-off-by: Guido Goldstein <github@a-nugget.de>
2011-03-12 17:16:27 +01:00
Martin Sustrik
18b9ebea32 The copyrights in file headers updated.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-02 16:30:40 +01:00
Martin Sustrik
5fcef1cac4 ZMQ_MAXMSGSIZE option added
The new option allows user to guard against peers sending
oversized messages. Connection to peer sending oversized message
is dropped.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-02 09:00:36 +01:00
Martin Sustrik
820fec7f28 Version bumped to 2.2.0
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-02-22 21:43:52 +01:00
Thijs Terlouw
042e34a5d9 operator void* () added to context_t.
Makes it possible to share the context from C++ to C.

Signed-off-by: Thijs Terlouw <thijsterlouw@gmail.com>
2011-02-04 16:44:13 +01:00
Thijs Terlouw
f7f1dfc86d ZMQ_RECONNECT_IVL_MAX socket option added
It allows for exponential back-off strategy when reconnecting.

Signed-off-by: Thijs Terlouw <thijsterlouw@gmail.com>
2011-01-26 07:01:06 +01:00
Martin Sustrik
725ebce13c Version bumped to 2.1.1
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-01-11 21:12:51 +01:00
Min Ragan-Kelley
08cd2ce05d resolve "function declaration isn't a prototype"
change two declarations in headers to form f(void); instead of f();
which eliminates the warnings when compiling against zeromq

Signed-off-by: MinRK <benjaminrk@gmail.com>
2011-01-06 08:42:57 +01:00
Bob Beaty
fcfad5682e Added Recovery Interval in Milliseconds
For very high-speed message systems, the memory used for recovery can get to
be very large. The corrent limitation on that reduction is the ZMQ_RECOVERY_IVL
of 1 sec. I added in an additional option ZMQ_RECOVERY_IVL_MSEC, which is the
Recovery Interval in milliseconds. If used, this will override the previous
one, and allow you to set a sub-second recovery interval. If not set, the
default behavior is to use ZMQ_RECOVERY_IVL.

Signed-off-by: Bob Beaty <rbeaty@peak6.com>
2010-12-09 21:42:58 +01:00
Martin Sustrik
c80e7b80cc XPUB and XSUB socket types added.
These are just placeholders. At the moment XPUB behaves th same
as PUB and XSUB as SUB.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-12-04 23:14:38 +01:00
Mikko Koppanen
5bb0a339be Prefix variables with "ac_zmq_"
- Added a macro for checking clang compiler
 - Moved basic compiler checks to a macro
 - Added a macro for checking if compiler supports a flag
 - Added --enable-debug flag
 - Added a macro for running normal autoconf check with compiler flags
 - Added a macro for checking for verbose flag for different compilers (-Wall)
 - Added a macro for turning on strict standards compliance
 - Added a macro for turning warnings to errors
 - Added a macro for checking if compiler supports given pragma
 - Most of the flags now go through checks if the compilers supports them
   rather than enumerating different compilers
 - Added DSO symbol visibility for sun compiler
 - Enabled verbose mode for sun compiler
 - Fixed build for ICC 12.x by adding -wd279 to size_t checks
 - Removed pkg-config checks as those don't seem to be used anywhere

Signed-off-by: Mikko Koppanen <mkoppanen@php.net>
2010-12-01 10:33:07 +01:00
Martin Lucina
c9584096e0 Control symbol exports using -fvisibility
On systems using GCC 4.0 or newer which support symbol visibility in shared
libraries, use -fvisibility=hidden and only export explict API functions
defined in zmq.cpp. We do not enable -fvisibility on MinGW since this uses a
separate mechanism (__declspec).

Signed-off-by: Martin Lucina <mato@kotelna.sk>
2010-11-25 17:12:31 +01:00
Martin Sustrik
b358df9fff Name of "GNU Lesser Public License" corrected.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-30 15:08:28 +02:00
Peter Bourgon
9384faf7e5 Add function to zmq::error_t to access errnum
Signed-off-by: Peter Bourgon <peter.bourgon@gmail.com>
2010-10-29 08:16:59 +02:00
Burak Arslan
3eb935ef6e switch to c++-specific headers
Signed-off-by: Burak Arslan <burak-github@arskom.com.tr>
2010-10-28 08:41:28 +02:00
Martin Sustrik
a780833683 ZMQ_BACKLOG socket option added.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-17 10:23:58 +02:00
Martin Sustrik
e8e2944f45 ZMQ_RECONNECT_IVL socket options added.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-17 09:54:12 +02:00
Martin Sustrik
0a03e86e95 ZMQ_LINGER socket option added.
1. ZMQ_LINGER option can be set/get
    2. options are part of own_t base class rather than being declared
       separately by individual objects
    3. Linger option is propagated with "term" command so that the
       newest value of it is used rather than the stored old one.
    4. Session sets the linger timer if needed and terminates
       as soon as it expires.
    5. Corresponding documentation updated.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-16 10:53:29 +02:00
Martin Sustrik
eeb8e7c8be Merge branch 'maint'
* maint:
  Makefile.am: Add missing files to distribution, improve maintainer-clean
  configure.in: Extract API version from zmq.h
  Added bin directory to ignore list.

Conflicts:
	configure.in
	include/zmq.h
2010-10-15 17:13:36 +02:00
Martin Lucina
3b3df731e6 configure.in: Extract API version from zmq.h
* Added a version.sh and relevant changes to configure.in to extract the API
  version from zmq.h at the time autogen.sh is run.
* Moved the version macros to be next to zmq_version in zmq.h and improved
  the comments.
* Modified ZMQ_MAKE_VERSION to use (x) instead of plain x when expanding
  macro parameters.

Signed-off-by: Martin Lucina <mato@kotelna.sk>
2010-10-15 16:53:15 +02:00
Martin Sustrik
318cdd1f24 Merge branch 'maint'
* maint:
  Version macros added

Conflicts:
	builds/msvc/platform.hpp

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-09 08:03:58 +02:00
Martin Sustrik
ef8db789a1 Version macros added
Macro ZMQ_VERSION represents the current version of 0MQ
Macro ZMQ_MAKE_VERSION(major,minor,patch) allows to create
a representation of the specified version.
The versions can be compared using simple <, >, ==, etc.
operators.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-09 07:53:24 +02:00
Ilja Golshtein
ec2e85919e C++ binding destructors don't throw exceptions 2010-09-30 09:11:51 +02:00
Gonzalo Diethelm
87beaaa00d ZMQ_TYPE socket option added 2010-09-28 15:27:45 +02:00
Martin Sustrik
a68e6739f4 when no I/O threads are available error is raised instead of assertion 2010-09-09 08:25:00 +02:00
Martin Sustrik
47e87b7e4b EMTHREAD error code returned to zmq.h to ensure backward compatibility 2010-09-08 15:45:59 +02:00
Martin Sustrik
76f2e5d544 Merge branch 'maint'
* maint:
  Broken device numbering reverted
  assert on malformed messages
  forwarder and streamer devices handle multi-part messages correctly
  improved null checking in zmq_term

Conflicts:
	AUTHORS
	include/zmq.h
	src/zmq.cpp
2010-09-04 17:19:38 +02:00
Martin Sustrik
db7fe858d6 Broken device numbering reverted 2010-09-04 17:12:08 +02:00
Martin Lucina
ca176121de Merge branch 'maint'
* maint:
  zmq::select_t, zmq_poll(): assert if FD_SETSIZE reached
  zmq.h: Fix typo and use of C99 comment

Conflicts:
	src/zmq.cpp
2010-09-04 16:24:21 +02:00
Martin Lucina
f850190c16 zmq.h: Fix typo and use of C99 comment 2010-09-04 16:10:14 +02:00
Martin Sustrik
05d908492d WIP: Socket migration between threads, new zmq_close() semantics
Sockets may now be migrated between OS threads; sockets may not be used by
more than one thread at any time. To migrate a socket to another thread the
caller must ensure that a full memory barrier is called before using the
socket from the target thread.

The new zmq_close() semantics implement the behaviour discussed at:

http://lists.zeromq.org/pipermail/zeromq-dev/2010-July/004244.html

Specifically, zmq_close() is now deterministic and while it still returns
immediately, it does not discard any data that may still be queued for
sending. Further, zmq_term() will now block until all outstanding data has
been sent.

TODO: Many bugs have been introduced, needs testing. Further, SO_LINGER or
an equivalent mechanism (possibly a configurable timeout to zmq_term())
needs to be implemented.
2010-08-25 15:39:20 +02:00
Pieter Hintjens
11a410b658 Renamed ZMQ_UPSTREAM to ZMQ_PULL, and ZMQ_DOWNSTREAM to ZMQ_PUSH. Left the old
definitions as aliases, to be removed in release 3.0.  Also renamed the source
files implementing these two socket types.  This change does not break existing
applications nor bindings, but allows us to fix the documentation and user guide
now, rather than keeping the old (confusing) names.
2010-08-04 14:38:56 +02:00
Martin Sustrik
cff7ba2315 Windows build fixed 2010-06-17 17:09:51 +02:00
Martin Sustrik
7f01e9970d stopwatch returned to libzmq 2010-06-17 16:51:53 +02:00
Martin Sustrik
67ca7dcbe6 obsolete API elements removed - this commit breaks backward compatibility 2010-06-04 15:24:06 +02:00
Martin Lucina
606c77368c Move perf helper functions to perf/helpers.cpp 2010-06-04 14:48:49 +02:00
Martin Sustrik
8408ae066d LWM is computed rather than explicitly specified by user 2010-05-25 15:03:57 +02:00
Martin Sustrik
c193fd1466 lock-free polling removed; ZMQ_POLL flag removed 2010-04-29 17:20:23 +02:00
Martin Sustrik
beffee92a8 P2P renamed to PAIR 2010-04-26 16:51:05 +02:00
Martin Sustrik
1c33941be9 Merge branch 'master' of git@github.com:sustrik/zeromq2 2010-04-15 07:32:49 +02:00
Martin Sustrik
ea18d30c20 atomic_ptr fix of Win64 2010-04-15 07:32:25 +02:00
Martin Lucina
0024d29076 Build fixes for cross compiling and Win32 2010-04-12 16:49:13 +02:00
Martin Sustrik
fba28c7c0c issue 1 - Change zmq_term semantics 2010-04-11 16:36:27 +02:00
Martin Sustrik
6cf076510a C-style comments in zmq.h 2010-04-11 14:00:40 +02:00
Martin Sustrik
00cf3ceb8d multi-part message functionality available via ZMQ_SNDMORE and ZMQ_RCVMORE 2010-04-11 10:26:47 +02:00
Martin Sustrik
6fea422583 getsockopt added to c++ binding 2010-04-11 07:59:03 +02:00
Martin Sustrik
716f4ac871 zmq_getsockopt function added 2010-04-09 13:04:15 +02:00
Jon Dyte
edfd05df8e devices can be created via API 2010-04-07 08:20:01 +02:00
Martin Sustrik
2f219d7c28 ZMQ_TBC renamed to ZMQ_MORE 2010-03-27 21:25:40 +01:00
Martin Sustrik
842b4dd2e4 muti-part message functionality available via API 2010-03-27 14:57:56 +01:00
Martin Sustrik
8d8e0857be as advertised, zmq_flush and ZMQ_NOFLUSH were removed 2010-03-27 14:50:35 +01:00
Martin Sustrik
61ad236e95 ZMQ_NOFLUSH and zmq_flush obsoleted 2010-03-13 14:40:10 +01:00
Martin Lucina
27e2d08449 Restructure language bindings
C and C++ headers moved from bindings/ to include/, bindings/ removed
--with-c and --with-cpp options to configure removed, C and C++ now built
and installed by default
2010-03-11 20:33:27 +01:00
malosek
b71c3005e6 include directory split into c and cpp dirs, added --with-c and --with-cpp configure options 2009-09-07 17:06:47 +02:00
unknown
f895426c18 initial changes for win port 2009-09-07 15:41:43 +02:00
Martin Sustrik
6a5120b1f1 python extension & perf tests 2009-09-02 10:22:23 +02:00
Martin Sustrik
314deb6185 build system for perf/C and perf/C++ 2009-08-30 15:47:39 +02:00
Martin Sustrik
6996ef6f1a improved error handling 2009-08-29 09:41:50 +02:00
Martin Sustrik
99c5d92836 pipes added 2009-08-27 10:54:28 +02:00
Martin Sustrik
6be4b01437 session management implemented 2009-08-21 14:29:22 +02:00
Martin Sustrik
131f2e3096 subscribe API removed 2009-08-17 14:07:34 +02:00
Martin Sustrik
059beca59d listener/connecter/init/session added 2009-08-12 09:40:16 +02:00
Martin Sustrik
3147ff8523 getsockopt implemented 2009-08-09 11:57:21 +02:00
Martin Sustrik
5b5b513330 socket options interface modeled as in BSD sockets 2009-08-09 09:24:48 +02:00
Martin Sustrik
a8b410e66c lockfree interaction patter for 3 theads implemented 2009-08-08 16:01:58 +02:00
Martin Hurton
43fa72b7ee C++ binding uses exceptions to signal failure 2009-08-03 11:59:55 +02:00
Martin Sustrik
cc3755a16f renamed from zs to zmq 2009-08-03 11:30:13 +02:00
Martin Sustrik
4ed70a9302 initial commit 2009-07-29 12:07:54 +02:00