Class: Fluent::PluginHelper::Server::CallbackSocket
- Inherits:
-
Object
- Object
- Fluent::PluginHelper::Server::CallbackSocket
show all
- Defined in:
- lib/fluent/plugin_helper/server.rb
Instance Method Summary
collapse
Constructor Details
#initialize(server_type, sock, enabled_events = [], close_socket: true) ⇒ CallbackSocket
Returns a new instance of CallbackSocket.
401
402
403
404
405
406
407
|
# File 'lib/fluent/plugin_helper/server.rb', line 401
def initialize(server_type, sock, enabled_events = [], close_socket: true)
@server_type = server_type
@sock = sock
@peeraddr = nil
@enabled_events = enabled_events
@close_socket = close_socket
end
|
Instance Method Details
#close ⇒ Object
433
434
435
|
# File 'lib/fluent/plugin_helper/server.rb', line 433
def close
@sock.close if @close_socket
end
|
#close_after_write_complete ⇒ Object
429
430
431
|
# File 'lib/fluent/plugin_helper/server.rb', line 429
def close_after_write_complete
@sock.close_after_write_complete = true
end
|
#data(&callback) ⇒ Object
437
438
439
|
# File 'lib/fluent/plugin_helper/server.rb', line 437
def data(&callback)
on(:data, &callback)
end
|
#on(event, &callback) ⇒ Object
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
|
# File 'lib/fluent/plugin_helper/server.rb', line 441
def on(event, &callback)
raise "BUG: this event is disabled for #{@server_type}: #{event}" unless @enabled_events.include?(event)
case event
when :data
@sock.data(&callback)
when :write_complete
cb = ->(){ callback.call(self) }
@sock.on_write_complete(&cb)
when :close
cb = ->(){ callback.call(self) }
@sock.on_close(&cb)
else
raise "BUG: unknown event: #{event}"
end
end
|
#remote_addr ⇒ Object
409
410
411
|
# File 'lib/fluent/plugin_helper/server.rb', line 409
def remote_addr
@peeraddr[3]
end
|
#remote_host ⇒ Object
413
414
415
|
# File 'lib/fluent/plugin_helper/server.rb', line 413
def remote_host
@peeraddr[2]
end
|
#remote_port ⇒ Object
417
418
419
|
# File 'lib/fluent/plugin_helper/server.rb', line 417
def remote_port
@peeraddr[1]
end
|
#send(data, flags = 0) ⇒ Object
421
422
423
|
# File 'lib/fluent/plugin_helper/server.rb', line 421
def send(data, flags = 0)
@sock.send(data, flags)
end
|
#write(data) ⇒ Object
425
426
427
|
# File 'lib/fluent/plugin_helper/server.rb', line 425
def write(data)
raise "not implemented here"
end
|