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 383 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 415 def close @sock.close if @close_socket end
close_after_write_complete()
click to toggle source
# File lib/fluent/plugin_helper/server.rb, line 411 def close_after_write_complete @sock.close_after_write_complete = true end
data(&callback)
click to toggle source
# File lib/fluent/plugin_helper/server.rb, line 419 def data(&callback) on(:data, &callback) end
on(event, &callback)
click to toggle source
# File lib/fluent/plugin_helper/server.rb, line 423 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 391 def remote_addr @peeraddr[3] end
remote_host()
click to toggle source
# File lib/fluent/plugin_helper/server.rb, line 395 def remote_host @peeraddr[2] end
remote_port()
click to toggle source
# File lib/fluent/plugin_helper/server.rb, line 399 def remote_port @peeraddr[1] end
send(data, flags = 0)
click to toggle source
# File lib/fluent/plugin_helper/server.rb, line 403 def send(data, flags = 0) @sock.send(data, flags) end
write(data)
click to toggle source
# File lib/fluent/plugin_helper/server.rb, line 407 def write(data) raise "not implemented here" end