class Einhorn::Event::CommandServer

Public Class Methods

from_state(state) click to toggle source
# File lib/einhorn/event/command_server.rb, line 36
def self.from_state(state)
  fd = state[:server]
  socket = UNIXServer.for_fd(fd)
  self.open(socket)
end
new(server) click to toggle source
# File lib/einhorn/event/command_server.rb, line 9
def initialize(server)
  @server = server

  @closed = false

  register!
end
open(server) click to toggle source
# File lib/einhorn/event/command_server.rb, line 5
def self.open(server)
  self.new(server)
end

Public Instance Methods

close() click to toggle source
# File lib/einhorn/event/command_server.rb, line 42
def close
  @closed = true
  deregister!
  @server.close
end
deregister!() click to toggle source
# File lib/einhorn/event/command_server.rb, line 53
def deregister!
  Einhorn::Command::Interface.command_server = nil
  Einhorn::Event.deregister_readable(self)
end
notify_readable() click to toggle source
# File lib/einhorn/event/command_server.rb, line 17
def notify_readable
  begin
    while true
      return if @closed
      sock = Einhorn::Compat.accept_nonblock(@server)
      Connection.open(sock)
    end
  rescue Errno::EAGAIN
  end
end
register!() click to toggle source
# File lib/einhorn/event/command_server.rb, line 48
def register!
  Einhorn::Command::Interface.command_server = self
  Einhorn::Event.register_readable(self)
end
to_io() click to toggle source
# File lib/einhorn/event/command_server.rb, line 28
def to_io
  @server
end
to_state() click to toggle source
# File lib/einhorn/event/command_server.rb, line 32
def to_state
  {:class => self.class.to_s, :server => @server.fileno}
end