Class: Handler
- Inherits:
-
Object
- Object
- Handler
- Includes:
- Messenger, Selectable
- Defined in:
- lib/socketeer/handler.rb
Instance Attribute Summary collapse
-
#conn_id ⇒ Object
readonly
Returns the value of attribute conn_id.
Attributes included from Messenger
Instance Method Summary collapse
- #cycle ⇒ Object
- #cycle_data_in ⇒ Object
- #cycle_data_out ⇒ Object
-
#initialize(socket, conn_id) ⇒ Handler
constructor
A new instance of Handler.
- #read ⇒ Object
- #socket ⇒ Object
- #write(data) ⇒ Object
Methods included from Messenger
Methods included from Selectable
Constructor Details
#initialize(socket, conn_id) ⇒ Handler
Returns a new instance of Handler.
14 15 16 17 18 19 20 |
# File 'lib/socketeer/handler.rb', line 14 def initialize socket, conn_id @socket = socket @conn_id = conn_id register_monitor @socket, :r do |m| read end end |
Instance Attribute Details
#conn_id ⇒ Object (readonly)
Returns the value of attribute conn_id.
12 13 14 |
# File 'lib/socketeer/handler.rb', line 12 def conn_id @conn_id end |
Instance Method Details
#cycle ⇒ Object
22 23 24 25 |
# File 'lib/socketeer/handler.rb', line 22 def cycle cycle_data_in cycle_data_out end |
#cycle_data_in ⇒ Object
27 28 29 |
# File 'lib/socketeer/handler.rb', line 27 def cycle_data_in read end |
#cycle_data_out ⇒ Object
31 32 33 34 35 36 37 |
# File 'lib/socketeer/handler.rb', line 31 def cycle_data_out 1000.times do m = write m return if m.nil? end end |
#read ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/socketeer/handler.rb', line 43 def read begin # raises ex if no data to read data = '' loop do data << @socket.read_nonblock(4096) end rescue # no more datas end data unless data.empty? end |
#socket ⇒ Object
39 40 41 |
# File 'lib/socketeer/handler.rb', line 39 def socket @socket end |
#write(data) ⇒ Object
56 57 58 59 |
# File 'lib/socketeer/handler.rb', line 56 def write data return if data.nil? @socket.write data rescue false end |