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.
384
385
386
387
388
389
390
|
# File 'lib/fluent/plugin_helper/server.rb', line 384
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
416
417
418
|
# File 'lib/fluent/plugin_helper/server.rb', line 416
def close
@sock.close if @close_socket
end
|
#close_after_write_complete ⇒ Object
412
413
414
|
# File 'lib/fluent/plugin_helper/server.rb', line 412
def close_after_write_complete
@sock.close_after_write_complete = true
end
|
#data(&callback) ⇒ Object
420
421
422
|
# File 'lib/fluent/plugin_helper/server.rb', line 420
def data(&callback)
on(:data, &callback)
end
|
#on(event, &callback) ⇒ Object
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
|
# File 'lib/fluent/plugin_helper/server.rb', line 424
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
392
393
394
|
# File 'lib/fluent/plugin_helper/server.rb', line 392
def remote_addr
@peeraddr[3]
end
|
#remote_host ⇒ Object
396
397
398
|
# File 'lib/fluent/plugin_helper/server.rb', line 396
def remote_host
@peeraddr[2]
end
|
#remote_port ⇒ Object
400
401
402
|
# File 'lib/fluent/plugin_helper/server.rb', line 400
def remote_port
@peeraddr[1]
end
|
#send(data, flags = 0) ⇒ Object
404
405
406
|
# File 'lib/fluent/plugin_helper/server.rb', line 404
def send(data, flags = 0)
@sock.send(data, flags)
end
|
#write(data) ⇒ Object
408
409
410
|
# File 'lib/fluent/plugin_helper/server.rb', line 408
def write(data)
raise "not implemented here"
end
|