class Invoker::Reactor

Attributes

reader[RW]

Public Class Methods

new() click to toggle source
# File lib/invoker/reactor.rb, line 5
def initialize
  @reader = Invoker::Reactor::Reader.new
end

Public Instance Methods

monitor_for_fd_events() click to toggle source
# File lib/invoker/reactor.rb, line 21
def monitor_for_fd_events
  ready_read_fds, _ , _ = select(*options_for_select)

  if ready_read_fds && !ready_read_fds.empty?
    reader.handle_read_event(ready_read_fds)
  end
end
send_data(socket, data) click to toggle source

Writes data to client socket and raises error if errors while writing

# File lib/invoker/reactor.rb, line 15
def send_data(socket, data)
  socket.write(data)
rescue
  raise Invoker::Errors::ClientDisconnected
end
watch_for_read(fd) click to toggle source
# File lib/invoker/reactor.rb, line 9
def watch_for_read(fd)
  reader.watch_for_read(fd)
end

Private Instance Methods

options_for_select() click to toggle source
# File lib/invoker/reactor.rb, line 31
def options_for_select
  [reader.read_array, [], [], 0.05]
end