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