31 Commits

Author SHA1 Message Date
Martin Hurton
8672f5829e Introduce abstract interface for message encoder/decoder 2012-09-05 18:31:27 +02:00
Martin Hurton
dfc0222ee6 Decouple encoder_t and decoder_t from session_base_t
This patch introduces i_msg_sink and i_msg_source interfaces. This
allows us to make message encoder and decoder more general.
2012-09-02 22:46:26 +02:00
Martin Hurton
641943944d Simplify encoder's loop 2012-05-08 14:23:05 +02:00
Martin Hurton
3d93c1af5b Fix issue #268
This patch fixes a bug in the message encoder which was
responsible for computing incorrect message offset.
The bug affected PGM receiver making it unable to
decode inital messages.
2012-05-08 09:44:45 +02:00
AJ Lewis
c79abee6bc Get AIX 6.1 compiling again by making msg_t class explicit
Older versions of gcc have problems with in-line forward declarations
when there's a naming conflict with a global symbol.

Signed-off-by: AJ Lewis <aj.lewis@quantum.com>

Expand the original patch to all such forward declarations.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-11-09 15:22:20 +01:00
Martin Sustrik
8e21d64c97 Copyright dates adjusted to reflect reality
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-11-01 18:06:11 +01:00
Martin Sustrik
ac7717b7b3 250bpm copyrights added
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-10-31 16:20:30 +01:00
Martin Sustrik
06bdf2c4f9 Check message syntax in REQ asynchronously
This patch adds support for checking messages as they arrive
(as opposed to when they are recv'd by the user) and drop
the connection if they are malformed.

It also uses this new feature to check for validity of inbound
messages in REQ socket.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-09-16 09:29:43 +02:00
Martin Sustrik
f78d9b6bfc Session class separated into socket-type-specific sessions
This is a preliminary patch allowing for socket-type-specific
functionality in the I/O thread. For example, message format
can be checked asynchronously and misbehaved connections dropped
straight away.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-09-15 10:00:23 +02:00
Martin Sustrik
7c1dca546d Session classes merged into a single class
Removal of ZMQ_IDENTITY resulted in various session classes doing
almost the same thing. This patch merges the classes into a single
class.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-24 18:25:30 +02:00
Martin Sustrik
f8bf3a4cef Rename i_inout to i_engine_sink
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-06-27 18:16:53 +02:00
Martin Sustrik
49df2f416c Fixes warning when compiling with MSVC on Win64
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-05-15 13:12:09 +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
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
43e8868875 Added explicit error message in case of memory exhaustion
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-02-22 16:23:36 +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
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
328c92a0a7 problem with engine being attached to session while it's being terminated fixed 2010-09-20 00:06:05 +02:00
Martin Sustrik
f5acbb5095 naming cleanup: zmq_encoder->encoder, zmq_decoder->decoder 2010-08-31 07:01:40 +02:00
Martin Sustrik
74a3907be2 couple of ICC warnings fixed 2010-06-10 12:36:27 +02:00
Martin Sustrik
76e0153d4f issue 33 - missing virtual destructors 2010-06-10 07:21:05 +02:00
Martin Sustrik
cf048bb1f8 platform.hpp for MSVC contains only very basic stuff 2010-06-04 16:29:36 +02:00
Martin Sustrik
4f6baf4dde Copyrights transferred from FastMQ to iMatix 2010-01-05 08:29:35 +01:00
Martin Sustrik
73b765e4b4 PGM transport fixed 2009-12-13 09:11:08 +01:00
Martin Sustrik
d5670f34ba ZMQII-26: Use zero-copy for large messages (rx side) 2009-12-11 22:29:04 +01:00
Martin Sustrik
72dacc3570 zero-copy on tx side optimised to minimise number of user/kernel space transitions 2009-12-10 08:25:21 +01:00
Martin Sustrik
cab5a4a159 minor documentation updates 2009-12-09 09:19:16 +01:00
Martin Sustrik
902d4f2282 minor fix of zero-copy on tx side 2009-12-08 16:13:51 +01:00
Martin Sustrik
9be877c685 ZMQII-26: Use zero-copy for large messages 2009-12-08 15:41:50 +01: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