Class: Invoker::Reactor

Inherits:
Object
  • Object
show all
Defined in:
lib/invoker/reactor.rb

Defined Under Namespace

Classes: Reader

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeReactor

Returns a new instance of Reactor.



5
6
7
# File 'lib/invoker/reactor.rb', line 5

def initialize
  @reader = Invoker::Reactor::Reader.new
end

Instance Attribute Details

#readerObject

Returns the value of attribute reader.



3
4
5
# File 'lib/invoker/reactor.rb', line 3

def reader
  @reader
end

Instance Method Details

#monitor_for_fd_eventsObject



21
22
23
24
25
26
27
# 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) ⇒ Object

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



15
16
17
18
19
# 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) ⇒ Object



9
10
11
# File 'lib/invoker/reactor.rb', line 9

def watch_for_read(fd)
  reader.watch_for_read(fd)
end