In Files

Parent

Files

ZMQ::Loop

Public Class Methods

add_oneshot_timer(delay, p = nil, &blk) click to toggle source

Registers a oneshot timer with the event loop.

ZMQ::Loop.run do

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
add_periodic_timer(delay, p = nil, &blk) click to toggle source

Registers a periodic timer with the event loop.

ZMQ::Loop.run do

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
add_timer(delay, times, p = nil, &blk) click to toggle source

Lower level interface for timer registration

ZMQ::Loop.run do

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
bind(socket, address, handler = ZMQ::DefaultHandler, *args) click to toggle source

A higher level API for ZMQ socket bind and loop registration.

ZMQ::Loop.run do

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
connect(socket, address, handler = ZMQ::DefaultHandler, *args) click to toggle source

A higher level API for ZMQ socket bind and loop registration.

ZMQ::Loop.run do

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
register_readable(pollable, handler = ZMQ::DefaultHandler, *args) click to toggle source

Registers a given ZMQ::Socket or IO instance for readable events notification.

ZMQ::Loop.run do

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
register_writable(pollable, handler = ZMQ::DefaultHandler, *args) click to toggle source

Registers a given ZMQ::Socket or IO instance for writable events notification.

ZMQ::Loop.run do

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
run(proc = nil, &blk) click to toggle source

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

[Validate]

Generated with the Darkfish Rdoc Generator 2.