class Dizby::BasicServer
Attributes
exported_uri[R]
front[R]
shutdown_pipe[RW]
stream[RW]
uri[R]
Public Class Methods
new(args, stream)
click to toggle source
Calls superclass method
Dizby::AbstractServer::new
# File lib/dizby/server/basic.rb, line 15 def initialize(args, stream) super(args.config) { |msg| "#{args.uri} : #{msg}" } @uri = args.uri @front = args.front @stream = stream @exported_uri = Dizby.monitor([@uri]) @shutdown_pipe = SelfPipe.new(*IO.pipe) end
Public Instance Methods
accept()
click to toggle source
# File lib/dizby/server/basic.rb, line 42 def accept readables, = IO.select([stream, shutdown_pipe.read]) raise LocalServerShutdown if readables.include? shutdown_pipe.read log.debug('Accepting connection') stream.accept end
add_uri_alias(uri)
click to toggle source
# File lib/dizby/server/basic.rb, line 76 def add_uri_alias(uri) log.debug("Adding uri alias: #{uri}") exported_uri.synchronize do exported_uri << uri unless exported_uri.include?(uri) end end
alive?()
click to toggle source
# File lib/dizby/server/basic.rb, line 49 def alive? return false unless stream return true if stream.ready? shutdown false end
close()
click to toggle source
# File lib/dizby/server/basic.rb, line 27 def close log.debug('Closing') if stream stream.close self.stream = nil end close_shutdown_pipe end
here?(uri)
click to toggle source
# File lib/dizby/server/basic.rb, line 84 def here?(uri) exported_uri.synchronize { exported_uri.include?(uri) } end
shutdown()
click to toggle source
# File lib/dizby/server/basic.rb, line 37 def shutdown log.debug('Shutting down') shutdown_pipe.close_write if shutdown_pipe end
to_id(obj)
click to toggle source
# File lib/dizby/server/basic.rb, line 68 def to_id(obj) return nil if obj.__id__ == front.__id__ idconv.to_id(obj) end
to_obj(ref)
click to toggle source
# File lib/dizby/server/basic.rb, line 57 def to_obj(ref) case ref when nil front when QueryRef front[ref.to_s] else idconv.to_obj(ref) end end
Private Instance Methods
close_shutdown_pipe()
click to toggle source
# File lib/dizby/server/basic.rb, line 94 def close_shutdown_pipe return nil unless shutdown_pipe log.debug('Closing shutdown pipe') shutdown_pipe.close_read shutdown_pipe.close_write self.shutdown_pipe = nil end