thrift/contrib/zeromq
Jake Farrell 970c86a5f2 Thrift-1607:Incorrect file modes for several source files
Client: build
Patch: Andrew Cox

File modes of some non-script text files (e.g. .xml, .java, .cc) in the source tree include execute permissions (because these files have the svn:executable property).



git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1339492 13f79535-47bb-0310-9956-ffa450edef68
2012-05-17 05:41:09 +00:00
..
csharp Thrift-1607:Incorrect file modes for several source files 2012-05-17 05:41:09 +00:00
Makefile THRIFT-812. contrib: Add a demo of using Thrift over ZeroMQ 2010-08-31 16:58:41 +00:00
README THRIFT-812. contrib: Add a demo of using Thrift over ZeroMQ 2010-08-31 16:58:41 +00:00
storage.thrift THRIFT-812. contrib: Add a demo of using Thrift over ZeroMQ 2010-08-31 16:58:41 +00:00
test-client.cpp THRIFT-1552 Include paths for c/c++ should be prefixed with 'thrift/' 2012-04-13 09:12:31 +00:00
test-client.py THRIFT-812. contrib: Add a demo of using Thrift over ZeroMQ 2010-08-31 16:58:41 +00:00
test-receiver.cpp THRIFT-812. contrib: Add a demo of using Thrift over ZeroMQ 2010-08-31 16:58:41 +00:00
test-sender.cpp THRIFT-1552 Include paths for c/c++ should be prefixed with 'thrift/' 2012-04-13 09:12:31 +00:00
test-server.cpp THRIFT-812. contrib: Add a demo of using Thrift over ZeroMQ 2010-08-31 16:58:41 +00:00
test-server.py THRIFT-812. contrib: Add a demo of using Thrift over ZeroMQ 2010-08-31 16:58:41 +00:00
TZmqClient.cpp THRIFT-812. contrib: Add a demo of using Thrift over ZeroMQ 2010-08-31 16:58:41 +00:00
TZmqClient.h THRIFT-1552 Include paths for c/c++ should be prefixed with 'thrift/' 2012-04-13 09:12:31 +00:00
TZmqClient.py THRIFT-812. contrib: Add a demo of using Thrift over ZeroMQ 2010-08-31 16:58:41 +00:00
TZmqServer.cpp THRIFT-1552 Include paths for c/c++ should be prefixed with 'thrift/' 2012-04-13 09:12:31 +00:00
TZmqServer.h THRIFT-1552 Include paths for c/c++ should be prefixed with 'thrift/' 2012-04-13 09:12:31 +00:00
TZmqServer.py THRIFT-812. contrib: Add a demo of using Thrift over ZeroMQ 2010-08-31 16:58:41 +00:00

This directory contains some glue code to allow Thrift RPCs to be sent over
ZeroMQ.  Included are client and server implementations for Python and C++,
along with a simple demo interface (with a working client and server for
each language).

Thrift was designed for stream-based interfaces like TCP, but ZeroMQ is
message-based, so there is a small impedance mismatch.  Most of issues are
hidden from developers, but one cannot be: oneway methods have to be handled
differently from normal ones.  ZeroMQ requires the messaging pattern to be
declared at socket creation time, so an application cannot decide on a
message-by-message basis whether to send a reply.  Therefore, this
implementation makes it the client's responsibility to ensure that ZMQ_REQ
sockets are used for normal methods and ZMQ_DOWNSTREAM sockets are used for
oneway methods.  In addition, services that expose both types of methods
have to expose two servers (on two ports), but the TZmqMultiServer makes it
easy to run the two together in the same thread.

This code was tested with ZeroMQ 2.0.7 and pyzmq afabbb5b9bd3.

To build, simply install Thrift and ZeroMQ, then run "make".  If you install
in a non-standard location, make sure to set THRIFT to the location of the
Thrift code generator on the make command line and PKG_CONFIG_PATH to a path
that includes the pkgconfig files for both Thrift and ZeroMQ.  The test
servers take no arguments.  Run the test clients with no arguments to
retrieve the stored value or with an integer argument to increment it by
that amount.

This code is not quite what I would consider production-ready.  It doesn't
support all of the normal hooks into Thrift, and its performance is
sub-optimal because it does some unnecessary copying.