Class: Einhorn::Event::CommandServer
- Inherits:
-
Object
- Object
- Einhorn::Event::CommandServer
- Includes:
- Persistent
- Defined in:
- lib/einhorn/event/command_server.rb
Class Method Summary collapse
Instance Method Summary collapse
- #close ⇒ Object
- #deregister! ⇒ Object
-
#initialize(server) ⇒ CommandServer
constructor
A new instance of CommandServer.
- #notify_readable ⇒ Object
- #register! ⇒ Object
- #to_io ⇒ Object
- #to_state ⇒ Object
Methods included from Persistent
Constructor Details
#initialize(server) ⇒ CommandServer
Returns a new instance of CommandServer.
9 10 11 12 13 14 15 |
# File 'lib/einhorn/event/command_server.rb', line 9 def initialize(server) @server = server @closed = false register! end |
Class Method Details
.from_state(state) ⇒ Object
36 37 38 39 40 |
# 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 |
.open(server) ⇒ Object
5 6 7 |
# File 'lib/einhorn/event/command_server.rb', line 5 def self.open(server) self.new(server) end |
Instance Method Details
#close ⇒ Object
42 43 44 45 46 |
# File 'lib/einhorn/event/command_server.rb', line 42 def close @closed = true deregister! @server.close end |
#deregister! ⇒ Object
53 54 55 56 |
# 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 ⇒ Object
17 18 19 20 21 22 23 24 25 26 |
# 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! ⇒ Object
48 49 50 51 |
# 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 ⇒ Object
28 29 30 |
# File 'lib/einhorn/event/command_server.rb', line 28 def to_io @server end |
#to_state ⇒ Object
32 33 34 |
# File 'lib/einhorn/event/command_server.rb', line 32 def to_state {:class => self.class.to_s, :server => @server.fileno} end |