class Corleone::Server

Attributes

config_file[RW]
thread[RW]

Public Class Methods

new(emitter, collector, uri) click to toggle source
# File lib/corleone/server.rb, line 5
def initialize(emitter, collector, uri)
  @emitter = emitter
  @collector = collector
  @uri = uri
  @runner_args = @emitter.runner_args
  @registry = Corleone::Registry.new
end

Public Instance Methods

alive?() click to toggle source
# File lib/corleone/server.rb, line 65
def alive?
  kill if finished?
  value = @thread.alive?
  value
end
check_in(name) click to toggle source
# File lib/corleone/server.rb, line 22
def check_in(name)
  logger.debug("worker checking in: #{name}")
  @registry.check_in(name)
end
check_out(name) click to toggle source
# File lib/corleone/server.rb, line 27
def check_out(name)
  logger.debug("worker checking out: #{name}")
  @registry.remove(name)
end
finished?() click to toggle source
# File lib/corleone/server.rb, line 57
def finished?
  @emitter.empty? && @registry.finished?
end
get_item() click to toggle source
# File lib/corleone/server.rb, line 40
def get_item
  return Corleone::Message::ZeroItems.new if @emitter.empty?
  message = @emitter.pop
  logger.debug("emitting item message: #{message.payload}")
  message
end
get_runner_args() click to toggle source
# File lib/corleone/server.rb, line 32
def get_runner_args
  if @runner_args
    logger.debug("emitting runner args message: #{@runner_args.payload}")
  end

  @runner_args
end
kill() click to toggle source
# File lib/corleone/server.rb, line 61
def kill
  @thread.kill
end
log(type, message) click to toggle source
# File lib/corleone/server.rb, line 17
def log(type, message)
  logger.send(type, message)
  return
end
logger() click to toggle source
# File lib/corleone/server.rb, line 13
def logger
  Corleone.logger
end
ping() click to toggle source
# File lib/corleone/server.rb, line 81
def ping; end
return_result(result) click to toggle source
# File lib/corleone/server.rb, line 47
def return_result(result)
  if result.instance_of?(Corleone::Message::Result)
    logger.debug("result message received: #{result.payload}")
    @collector.process_result(result.payload)
    return
  end

  raise "result error: #{result}"
end
start() click to toggle source
# File lib/corleone/server.rb, line 71
def start
  logger.info("starting server")
  DRb.start_service(@uri, self)
  @thread = DRb.thread
end
summarize() click to toggle source
# File lib/corleone/server.rb, line 77
def summarize
  @collector.summarize
end