class Fluent::PluginHelper::Server::EventHandler::UDPServer

def initialize(sock, max_bytes, flags, close_socket, log, under_plugin_development, &callback)

def initialize(sock, max_bytes, flags, close_socket, log, under_plugin_development, &callback)
  raise ArgumentError, "socket must be a UDPSocket: sock = #{sock}" unless sock.is_a?(UDPSocket)
  super(sock)
  @sock = sock
  @max_bytes = max_bytes
  @flags = flags
  @close_socket = close_socket
  @log = log
  @under_plugin_development = under_plugin_development
  @callback = callback
  on_readable_impl = case @callback.arity
                     when 1 then :on_readable_without_sock
                     when 2 then :on_readable_with_sock
                     else
                       raise "BUG: callback block must have 1 or 2 arguments"
                     end
  self.define_singleton_method(:on_readable, method(on_readable_impl))
end