Sha256: 852af76b01a96c5a10e185dcf804cb448f55b6be3fbe414a50e6bcfac929f82a

Contents?: true

Size: 1.43 KB

Versions: 10

Compression:

Stored size: 1.43 KB

Contents

Celluloid::ZMQ
==============

This gem uses the ffi-rzmq library to provide Celluloid actors that can
interact with 0MQ sockets.

Celluloid::ZMQ provides two methods for multiplexing 0MQ sockets with
receiving messages over Celluloid's actor protocol:

* Celluloid::ZMQ#wait_readable(socket): wait until a message is available to
  read from the given 0MQ socket
* Celluloid::ZMQ#wait_writeable(socket): waits until there's space in the
  given socket's message buffer to send another message

Example Usage:

    require 'celluloid-zmq'

	ZMQ_CONTEXT = ZMQ::Context.new(1)

    class MyZmqCell
      include Celluloid::ZMQ

      def initialize(addr)
        @socket = ZMQ_CONTEXT.socket(ZMQ::PUSH)

        unless ZMQ::Util.resultcode_ok? @socket.connect addr
	      @socket.close
	      raise "error connecting to #{addr}: #{ZMQ::Util.error_string}"
        end
      end

      def write(message)
        wait_writeable @socket
        unless ZMQ::Util.resultcode_ok? @socket.send_string message
          raise "error sending 0MQ message: #{ZMQ::Util.error_string}"
        end
      end

      def read
        wait_readable @socket
        message = ''

	    rc = @socket.recv_string message
	    if ZMQ::Util.resultcode_ok? rc
	      handle_message message
	    else
	      raise "error receiving ZMQ string: #{ZMQ::Util.error_string}"
	    end
      end
    end

Copyright
---------

Copyright (c) 2011 Tony Arcieri. See LICENSE.txt for further details.

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
dcell-0.9.0 celluloid-zmq/README.md
celluloid-zmq-0.9.0 README.md
dcell-0.8.0 celluloid-zmq/README.md
celluloid-zmq-0.8.0 README.md
dcell-0.7.1 celluloid-zmq/README.md
celluloid-zmq-0.7.0 README.md
celluloid-zmq-0.0.4 README.md
celluloid-zmq-0.0.3 README.md
celluloid-zmq-0.0.2 README.md
celluloid-zmq-0.0.1 README.md