Commit Graph

41 Commits

Author SHA1 Message Date
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
507718ee1a ZMQ_HWM type changed to int
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-24 15:43:03 +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
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
18f29ded6a Make cppcheck not complain about "'operator=' should return something"
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-01-13 11:44:23 +01:00
Mikko Koppanen
27e83cc525 Fixes assertion on pipe.cpp:237 when swap fills up.
Fixes swap::full () functionality

Signed-off-by: Mikko Koppanen <mkoppanen@php.net>
2010-12-15 20:10:27 +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
Martin Sustrik
733c6780c5 Minor code clean-up to keep clang compiler happy.
"warning: extra ';' inside a struct or union [-pedantic]"

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-16 01:22:18 +02:00
Mikko Koppanen
e33e4d7650 ICC related qualifier fix
Signed-off-by: Mikko Koppanen <mkoppanen@php.net>
2010-10-15 10:38:09 +02:00
Martin Sustrik
7a685b0f88 Clean-up of session termination process
Specifically, shutdown of child objects is initiated *before* termination
handshake with socket object.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-08 17:23:21 +02:00
Martin Sustrik
f374431ebe get rid of 'has virtual functions but non-virtual destructor' warnings in pipe.hpp 2010-09-07 17:06:33 +02:00
Martin Sustrik
090e460d6f naming cleanup: yarray->array 2010-08-31 21:03:34 +02:00
Martin Sustrik
d8b975f4e7 msg_store_t renamed to swap_t 2010-08-28 13:14:45 +02:00
Martin Sustrik
d90b407115 refactoring of pipe/swap interaction 2010-08-28 13:06:58 +02:00
Martin Sustrik
42000d2c4f terminology unified: revive->activate 2010-08-28 10:15:03 +02:00
Martin Sustrik
b608c19c5a MSVC build fixed 2010-08-25 15:39:21 +02:00
Martin Sustrik
f77edfce26 Destruction of session is delayed till both in & out pipes are closed 2010-08-25 15:39:20 +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
Martin Hurton
10533a560b pipe: check_read() should check for message delimiter 2010-07-24 17:33:54 +02:00
Martin Hurton
fca2e8e8cc Add SWAP support 2010-06-21 15:06:51 +02:00
Martin Sustrik
8408ae066d LWM is computed rather than explicitly specified by user 2010-05-25 15:03:57 +02:00
Martin Sustrik
235ed3a3dc signaler transports commands per se rather than one-bit signals 2010-05-04 10:22:16 +02:00
Martin Sustrik
c42343d3f0 pipe_t::rollback removes only unfinished message from the pipe rather than all unflushed messages 2010-03-13 12:34:55 +01:00
Martin Hurton
61ee6fae53 Implement flow control
This commit introduces the necessary changes necessary
for implementing flow control. None of the socket types
implements the flow control yet. The code will crash when
the flow control is enabled and the thw lwm is reached.

The following commits will add flow-control support for
individual socket types.
2010-03-12 11:07:38 +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
Martin Sustrik
e04e2cdbba rollback functionality added to pipe 2010-03-09 08:43:20 +01:00
Martin Sustrik
4f6baf4dde Copyrights transferred from FastMQ to iMatix 2010-01-05 08:29:35 +01:00
unknown
0d704fceee MSVC warnings fixed 2009-12-01 14:58:00 +01:00
Martin Sustrik
f2ff2c6e5c checking for available messages added to ypipe/pipe 2009-09-30 10:08:35 +02:00
Martin Sustrik
088a2db674 ZMQII-16: Change "struct zmq_msg_t" to "zmq_msg_t" in C binding 2009-09-23 10:22:54 +02:00
Martin Sustrik
cb1b6fe32c initial version of req/rep sockets 2009-09-21 14:39:59 +02:00
malosek
1b2a426656 c and cpp directories moved into bindings directory 2009-09-16 16:49:09 +02: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
Martin Sustrik
cb09c6951e pipe deallocation added 2009-08-28 16:51:46 +02:00
Martin Sustrik
2dd5016515 multiple bugs fixed 2009-08-27 16:24:21 +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
0b5cc026fb clean up - session/socket/engine stuff removed 2009-08-06 12:51:32 +02:00
Martin Sustrik
b8b4acef4c dispatcher renamed to context 2009-08-06 10:47:34 +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