Registers a oneshot timer with the event loop.
ZL.add_oneshot_timer(0.2){ :work } # Fires once after 0.2s
end
# File lib/zmq/loop.rb, line 88 def self.add_oneshot_timer(delay, p = nil, &blk) add_timer(delay, 1, p, &blk) end
Registers a periodic timer with the event loop.
ZL.add_oneshot_timer(0.2){ :work } # Fires every 0.2s
end
# File lib/zmq/loop.rb, line 98 def self.add_periodic_timer(delay, p = nil, &blk) add_timer(delay, 0, p, &blk) end
Lower level interface for timer registration
timer = ZL.add_timer(0.1, 5){ :work } # Fires 5 times at 0.1s intervals
end
# File lib/zmq/loop.rb, line 108 def self.add_timer(delay, times, p = nil, &blk) timer = ZMQ::Timer.new(delay, times, p, &blk) instance.register_timer(timer) timer end
A higher level API for ZMQ socket bind and loop registration.
ZL.bind(pub, "inproc://fanout", Producer)
end
# File lib/zmq/loop.rb, line 41 def self.bind(socket, address, handler = ZMQ::DefaultHandler, *args) attach(socket, :bind, address, handler, *args) end
A higher level API for ZMQ socket bind and loop registration.
ZL.bind(pub, "inproc://fanout", Producer) ZL.connect(sub, "inproc://fanout", Consumer)
end
# File lib/zmq/loop.rb, line 52 def self.connect(socket, address, handler = ZMQ::DefaultHandler, *args) attach(socket, :connect, address, handler, *args) end
Registers a given ZMQ::Socket or IO instance for readable events notification.
ZL.register_readable(sub, "inproc://fanout", Consumer)
end
# File lib/zmq/loop.rb, line 62 def self.register_readable(pollable, handler = ZMQ::DefaultHandler, *args) pollitem = ZMQ::Pollitem.new(pollable, ZMQ::POLLIN) pollitem.handler = handler.new(pollitem, *args) if handler assert_handler_for_event(pollitem, :on_readable) instance.register(pollitem) end
Registers a given ZMQ::Socket or IO instance for writable events notification.
ZL.register_writable(pub, "inproc://fanout", Producer)
end
# File lib/zmq/loop.rb, line 75 def self.register_writable(pollable, handler = ZMQ::DefaultHandler, *args) pollitem = ZMQ::Pollitem.new(pollable, ZMQ::POLLOUT) pollitem.handler = handler.new(pollitem, *args) if handler assert_handler_for_event(pollitem, :on_writable) instance.register(pollitem) end
Start the reactor. Takes control of the current thread and returns when :
the 0MQ context is terminated or
the process is interrupted or
any event handler raises an error
any event handler returns false
ZMQ::Loop.run do # or ZMQ::Loop.run(&proc)
ZL.add_oneshot_timer(0.2){ ZL.stop }
end
# File lib/zmq/loop.rb, line 29 def self.run(proc = nil, &blk) self.instance = ZMQ::Loop.new (proc || blk).call instance.start end
Generated with the Darkfish Rdoc Generator 2.