Class: Fluent::PluginHelper::Server::CallbackSocket

Inherits:
Object
  • Object
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

#closeObject



416
417
418
# File 'lib/fluent/plugin_helper/server.rb', line 416

def close
  @sock.close if @close_socket
end

#close_after_write_completeObject



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_addrObject



392
393
394
# File 'lib/fluent/plugin_helper/server.rb', line 392

def remote_addr
  @peeraddr[3]
end

#remote_hostObject



396
397
398
# File 'lib/fluent/plugin_helper/server.rb', line 396

def remote_host
  @peeraddr[2]
end

#remote_portObject



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