lib/0mq/proxy.rb in 0mq-0.2.1 vs lib/0mq/proxy.rb in 0mq-0.3.0
- old
+ new
@@ -1,13 +1,25 @@
module ZMQ
+ # The proxy connects a frontend socket to a backend socket. Conceptually,
+ # data flows from frontend to backend. Depending on the socket types,
+ # replies may flow in the opposite direction. The direction is conceptual
+ # only; the proxy is fully symmetric and there is no technical difference
+ # between frontend and backend.
class Proxy
+ # Create a running proxy object.
+ def self.proxy(frontend, backend, capture = nil)
+ new(frontend, backend, capture).tap { |p| p.run }
+ end
+
+ # Accepts a frontend, backend, and optional capture socket.
+ # See http://api.zeromq.org/4-0:zmq-proxy
def initialize(frontend, backend, capture = nil)
- @frontend = frontend.nil? ? nil : frontend.ptr
- @backend = backend.nil? ? nil : backend.ptr
- @capture = capture.nil? ? nil : capture.ptr
+ @frontend = frontend.nil? ? nil : frontend.to_ptr
+ @backend = backend.nil? ? nil : backend.to_ptr
+ @capture = capture.nil? ? nil : capture.to_ptr
end
# Block the current thread with the event loop of the proxy
def run
LibZMQ.zmq_proxy @frontend, @backend, @capture