summaryrefslogtreecommitdiff
path: root/src/object.hpp
AgeCommit message (Collapse)Author
2012-02-16More logging infrastructureMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2012-02-16Logging functionality available for individual objectsMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2012-02-16Old logging infrastructure removedMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-11-09Get AIX 6.1 compiling again by making msg_t class explicitAJ Lewis
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-01Copyright dates adjusted to reflect realityMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-10-31250bpm copyrights addedMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-09-15Session class separated into socket-type-specific sessionsMartin Sustrik
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-07-15ZMQ_IDENTITY socket option removedMartin Sustrik
This patch simplifies the whole codebase significantly, including dropping depedency on libuuid. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-05-30Patches from sub-forward branch incorporatedMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-05-22Introduces bi-directional pipesMartin Sustrik
So far, there was a pair of unidirectional pipes between a socket and a session (or an inproc peer). This resulted in complex problems with half-closed states and tracking which inpipe corresponds to which outpipe. This patch doesn't add any functionality in itself, but is essential for further work on features like subscription forwarding. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-04-21Message-related functionality factored out into msg_t class.Martin Sustrik
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-03-02The copyrights in file headers updated.Martin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-02-18Logging of duplicit identities addedMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-02-09Reaper thread waits for commands rather them retrieving them periodicallyMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-02-09Initial implementation of reaper thread.Martin Sustrik
Reaper thread destroys the socket asynchronously. zmq_term() can be interrupted by a signal (EINTR). zmq_socket() will return ETERM after zmq_term() was called. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-01-13Make cppcheck not complain about "'operator=' should return something"Martin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-01-10Size of inproc hwm and swap is sum of peers' hwms and swapsMartin Sustrik
The meat of the patch was contributed by Douglas Creager. Martin Sustrik implemented storing peer options in inproc endpoint repository. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-11-05slots renamed to tidsMartin Sustrik
Threads were so far identified by integers called 'slots'. This patch renames them to more comprehensible 'tid's (thread IDs). Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-30Name of "GNU Lesser Public License" corrected.Martin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-16ZMQ_LINGER socket option added.Martin Sustrik
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-09-09when no I/O threads are available error is raised instead of assertionMartin Sustrik
2010-09-01context creates an inproc endpoint ('inproc://log') to distribute 0MQ's log ↵Martin Sustrik
messages
2010-08-28terminology unified: revive->activateMartin Sustrik
2010-08-25one more dezombification bug fixedMartin Sustrik
2010-08-25dezombification procedure fixedMartin Sustrik
2010-08-25I/O object hierarchy implementedMartin Sustrik
2010-08-25WIP: Socket migration between threads, new zmq_close() semanticsMartin Sustrik
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-05-05dispatcher_t class renamed to ctx_tMartin Sustrik
2010-05-03thread ID and dispatcher made private in object_tMartin Sustrik
2010-04-29signaler rewritten in such a way that any number (>64) of threads can be usedMartin Sustrik
2010-03-12Implement flow controlMartin Hurton
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-02-13Multi-hop REQ/REP, part IX., pass the peer identity as far as socket_base_tMartin Sustrik
2010-02-13Multi-hop REQ/REP, part VIII., new blob_t type used for holding identityMartin Sustrik
2010-02-12Multi-hop REQ/REP, part V., peer identity is passed from init object to sessionMartin Sustrik
2010-01-05Copyrights transferred from FastMQ to iMatixMartin Sustrik
2009-12-21minor fixesMartin Sustrik
2009-12-15reconnection mechanism added to tcp transportMartin Sustrik
2009-12-02seqnum mechanism automatedMartin Sustrik
2009-12-01annoying optimisation in 'bind' command removedMartin Sustrik
2009-11-21race condition in inproc transport shutdown fixedMartin Sustrik
2009-11-21obsolete parameter removed from 'bind' commandMartin Sustrik
2009-11-21inproc transport - initial commitMartin Sustrik
2009-09-08Sparc solaris portmalosek
2009-09-04python binding functionalMartin Sustrik
2009-08-30engine virtualised; chatroom example removedMartin Sustrik
2009-08-28pipe deallocation addedMartin Sustrik
2009-08-27pipes addedMartin Sustrik
2009-08-21session management implementedMartin Sustrik
2009-08-20couple of bugs in shutdown mechanism fixedMartin Sustrik
2009-08-08lockfree interaction patter for 3 theads implementedMartin Sustrik