Class: Foolio::Stream

Inherits:
Handle
  • Object
show all
Defined in:
lib/foolio/stream.rb

Direct Known Subclasses

Pipe, TCP

Instance Method Summary collapse

Methods inherited from Handle

#callback, #initialize

Constructor Details

This class inherits a constructor from Foolio::Handle

Instance Method Details

#listen(backlog = 5, &block) ⇒ Object



71
72
73
# File 'lib/foolio/stream.rb', line 71

def listen(backlog=5, &block)
  listen_handler(backlog, BlockHandler, block)
end

#listen_handler(backlog, klass, *args) ⇒ Object



55
56
57
58
59
60
# File 'lib/foolio/stream.rb', line 55

def listen_handler(backlog, klass, *args)
  @klass = klass
  @args = args
  Foolio::UV.listen(@handle, backlog, callback(&method(:on_connect)))
  self
end

#on_connect(status) ⇒ Object



62
63
64
65
66
67
68
69
# File 'lib/foolio/stream.rb', line 62

def on_connect(status)
  client = init
  Foolio::UV.accept(@handle, client)
  $log.info "accept #{client}"
  handle = @klass.new(client, *@args)
  handle.on_connect
  handle.start
end