summaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)Author
2012-05-26Topic filter implementedMartin Sustrik
The filter is build into libxs rather than being a plug-in. It's ID is XS_FILTER_TOPIC. The filter assumed that the messages are text-based and consider binary 0 to be a delimiter separating message topic from the message body. Use of the delimiter is not mandatory though. If binary zero is not present, whole message is used for matching. The topic is separated into elements using dots, e.g. "animals.dogs.fluffy". Subscriptions match individual elements. Each element can be matched by either literal string or a wildcard (*), for example: "animals.*.fluffy" matches all animals called Fluffy irrsepctive of whether they are dogs, cats or whatever. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2012-05-25Implement SP wire protocolMartin Lucina
Implements the SP wire protocol, and infrastructure for legacy wire protocol support. Also added an XS_SERVICE_ID socket option to set the service id and renamed the XS_PROTOCOL option to XS_PATTERN_VERSION. The following pattern versions are supported: PAIR: v3 PUBSUB: v1 (legacy), v4 REQREP: v2 PIPELINE: v3 SURVEY: v2 Note that all existing pattern versions have been bumped by 1 to allow for use of legacy protocols (otherwise there would be no way to distinguish between e.g. PUBSUB v3 and PUBSUB v3 using SP). Signed-off-by: Martin Lucina <martin@lucina.net>
2012-05-21Fixes a conflict with XenStore (seeMartin Lucina
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=668550) Signed-off-by: Martin Lucina <martin@lucina.net>
2012-05-12Preparation for 1.1.0 releasev1.1.0Martin Sustrik
- version bump - ABI version bump - NEWS updated Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2012-05-06C prototype for xs_init fixedMartin Sustrik
The function was erroneously declared as xs_init() instead of xs_init(void). Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2012-04-21xs_shutdown implementedMartin Sustrik
This patch allows for partial shutdown of the socket. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2012-04-17XS_SURVEY_TIMEOUT socket option added.Martin Sustrik
It can be used to timeout the survey. Value is in milliseconds and -1 means infinite (default). Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2012-04-17"Survey" pattern implementedMartin Sustrik
Survey pattern is "multicast with reply". There are two roles: surveyor and respondent. Surveyor publishes a survey which gets delivered to all connected respondents. Each repondent can send a response to the survey. All the responses are delivered to the original surveyor. Once the surveyor decides that the survey is over (e.g. deadline was reached) it can send initiate survey. Late responses from old surveys are automatically discarded by the surveyor socket. Socket types: SURVEYOR, XSURVEYOR, RESPONDENT, XRESPONDENT Patch also includes a test program with surveoyr, two respondents and an intermediary device. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2012-04-14Separate subscription forwarding from SUB-side filteringMartin Sustrik
- subscription forwarding is handled by XSUB socket - filtering is handled by SUB sockets - subscriptions are decoupled from filter engines - filter doesn't have to be able to enumarate the subscriptions (no sf_enumerate function) Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2012-04-06EMTHREAD error code removedMartin Sustrik
libxs (as opposed to libzmq) requires at least one I/O thread per context. Thus, "no I/O thread available" error doesn't make sense anyome. This patch removes the code and the documentation. It keeps the definition of EMTHREAD itself for backward compatibility. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2012-04-05XS_PLUGIN and XS_FILTER implementationMartin Sustrik
This patch introduces following features: - XS_PLUGIN context option to add plugins to libxs - XS_FILTER option to switch between different filter types - Automatic loading of plug-ins is *not* implemented. From the implementation point of view: - standard prefix filter is implemented as a pluggable filter - trie_t and mtrie_t are joined into a single class - the code for 0MQ/3.1 compatibility is left in in the form of comments - new test for testing re-subscriptions is added Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2012-04-040MQ/2.1 wire format compatibility implementedMartin Sustrik
- XS_PROTOCOL option added - libxs ignores when unused flags are set to 1 (0MQ/2.1 bug) - compatibility tests added Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2012-03-29Version and ABI bumped to 1.0.1v1.0.1Martin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2012-03-29Documentation updates for 1.0.1Martin Lucina
Signed-off-by: Martin Lucina <martin@lucina.net>
2012-03-28XS_KEEPALIVE options addedMartin Sustrik
This option allows to turn on TCP keepalives on the underlying connections. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2012-03-13'timeout' parameter in xs_poll changed to intMartin Sustrik
Originally, the parameter was of type long which is incompatible with POSIX poll() function. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2012-03-13xs_utils cleanup 2/2 (remove xs_utils.h)Martin Lucina
Moved xs_stopwatch_* functions from xs_utils.cpp/xs_utils.h, and removed those files. This leaves us with a single header file for libxs. Signed-off-by: Martin Lucina <martin@lucina.net>
2012-03-13Merge branch 'for-sustrik' of git.lucina.net:libxsMartin Sustrik
2012-03-13Drop libxszmq, keep only libzmq compatibility library (--enable-libzmq)Martin Lucina
This simplifies the options for new users; either use libxs APIs or build with --enable-libzmq and get libzmq 2.1 emulation. Signed-off-by: Martin Lucina <martin@lucina.net>
2012-03-13io_threads argument removed from xs_init()Martin Sustrik
The argument was changed to a context option (XS_IO_THREADS). 0MQ compatibility mode sets the option and ensures that there's at least one I/O thread present. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2012-02-22xszmq is compiled under MSVCMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.cpm>
2012-02-22Added optional drop-in libzmq libraryMartin Lucina
Enabled using --enable-libzmq-compat, this installs a drop-in libzmq library and headers. Not enabled by default since it will overwrite any existing libzmq install. Signed-off-by: Martin Lucina <martin@lucina.net>
2012-02-22Added libxszmq compatibility libraryMartin Lucina
Signed-off-by: Martin Lucina <martin@lucina.net>
2012-02-21Version bumped to 1.0.0Martin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2012-02-16Full name of the project used in license headersMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2012-02-16ZMQ_REENTRANT functionality removedMartin Sustrik
It doesn't play well with multipart messages. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2012-02-16Names of context options shortenedMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2012-02-16XS_CTX_REENTRANT option addedMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2012-02-16XS_CTX_MAX_SOCKETS option implementedMartin Sustrik
To implement context options properly, initialisation of context is postponed till creation of the first socket. In the meantime it is possible to set socket options. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2012-02-16More MSVC tests addedMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.cpm>
2012-02-16Type in 0MQ compatibility header fixedMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2012-02-16ZeroMQ compatibility header addedMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2012-02-16ZeroMQ renamed to CrossroadsMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-12-19Version bumped to 3.1.1Martin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-11-06Add zmq_getmsgopt to the APIChuck Remes
The new function allows to retrieve options (flags) from zmq_msg_t. Signed-off-by: Chuck Remes <cremes@mac.com> Renamed from zmq_msg_flags to zmq_getmsgopt Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-11-05Version changed to 3.1.0Martin Sustrik
This version downgrade is done because of the previous refatoring. It removed all the new features and reintroduced some of the old ones (identities). Thus, it made trunk much closer to existing 3.0 branch than it used to be. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-11-05Obsolete ECANTROUTE errror code removedMartin Sustrik
This error code was used only by new-style ROUTER socket which is not a part of the codebase. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-11-02ZMQ_IDENTITY option re-introducedMartin Sustrik
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-11-01LABELS and COMMANDs removedMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-10-31250bpm copyrights addedMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-10-31ROUTER and DEALER are aliases for XREP and XREQMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-10-31New style ROUTER socket removed.Martin Sustrik
Signed-off-by: Martin Sustrik <sustrik@turist.(none)>
2011-08-31zmq_msg_t changed to structureMartin Sustrik
zmq_msg_t being defined as unsigned char[32] could not be stored in STL containers. Fixed by this commit. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-08-15EAFNOSUPPORT defined on Windows platformMartin Sustrik
Windows headers don't defined this error. This patch defines it if not already defined. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-08-08ZMQ_IPV4ONLY option addedSteven McCoy
At this point option exists, is documented and can be set, however, it has no effect. Signed-off-by: Steven McCoy <steven.mccoy@miru.hk> Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-21ROUTER socket reports error when message cannot be routedMartin Sustrik
Till now, message was silently dropped if it was sent to a non-existent peer. Now, ECANTROUTE error is returned. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-21ZMQ_GENERIC renamed to ZMQ_ROUTERMartin Sustrik
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-17GENERIC socket type and COMMAND flag addedMartin Sustrik
GENERIC allows to use 0MQ as a dumb networking framework. It provides user with connect/disconnect notifications. Also, each inbound message is labeled by ID of the connection it originated from. Outbound messages should be labeled by the ID of the connection to send them to. To distinguish connect/disconnect notifications from common messages, COMMAND flag was introduced. 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>