class Fluent::PluginHelper::Server::CallbackSocket
Public Class Methods
new(server_type, sock, enabled_events = [], close_socket: true)
click to toggle source
# File lib/fluent/plugin_helper/server.rb, line 374 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
Public Instance Methods
close()
click to toggle source
# File lib/fluent/plugin_helper/server.rb, line 402 def close @sock.close if @close_socket end
data(&callback)
click to toggle source
# File lib/fluent/plugin_helper/server.rb, line 406 def data(&callback) on(:data, &callback) end
on(event, &callback)
click to toggle source
# File lib/fluent/plugin_helper/server.rb, line 410 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()
click to toggle source
# File lib/fluent/plugin_helper/server.rb, line 382 def remote_addr @peeraddr[3] end
remote_host()
click to toggle source
# File lib/fluent/plugin_helper/server.rb, line 386 def remote_host @peeraddr[2] end
remote_port()
click to toggle source
# File lib/fluent/plugin_helper/server.rb, line 390 def remote_port @peeraddr[1] end
send(data, flags = 0)
click to toggle source
# File lib/fluent/plugin_helper/server.rb, line 394 def send(data, flags = 0) @sock.send(data, flags) end
write(data)
click to toggle source
# File lib/fluent/plugin_helper/server.rb, line 398 def write(data) raise "not implemented here" end