# File lib/engine/engine.rb, line 56
  def run
    case options['dbtype']
    when :yaml
      require 'storage/yamlstore'
      @db = YamlStore.new(options['dbfile'])
    when :xml
      require 'storage/xmlstore'
      @db = XmlStore.new(options['dbfile'])
    when :gdbm
      require 'storage/gdbmstore'
      @db = GdbmStore.new(options['dbfile'])
    when :sdbm
      require 'storage/sdbmstore'
      @db = SdbmStore.new(options['dbfile'])
    when :dbm
      require 'storage/dbmstore'
      @db = DbmStore.new(options['dbfile'])
    when :sqlite
      require 'storage/sqlitestore'
      @db = SqliteStore.new(options['dbfile'])
    when :sqlite3
      require 'storage/sqlite3store'
      @db = Sqlite3Store.new(options['dbfile'])
    else
      log.fatal "Invalid 'dbtype' in Configuration"
      raise RunTimeError
    end

    # Get the world object
    @world = @db.get(0)
#    log.debug @world.inspect
    @db.makenoswap(0)
    @world.startup

    @eventmgr = EventManager.new
    log.info "Booting server on port #{options['server_port'] || 4000}"
    @server = Reactor.new(options['server_port'] || 4000,
      options['server_type'], options['server_io'],
      options['server_negotiation'], options['server_filters'],
      address=nil)

    raise "Unable to start server" unless @server.start(self)
    log.info "TMUD is ready"

    Signal.trap("INT", method(:handle_signal))
    Signal.trap("TERM", method(:handle_signal))
    Signal.trap("KILL", method(:handle_signal))
    until @shutdown
      @server.poll(0.2)
      @eventmgr.process_events
    end # until
    graceful_shutdown
  rescue
    log.fatal "Engine failed in run"
    log.fatal $!
  end