# File lib/config.rb, line 32
    def read_and_complete_config(httphandler, streamerhandler, converthandler)
      if not config_exists? then
        dump_default_config
      end
      r = YAML::load(File.open(@file))
      if r == nil or (not r.kind_of?(Hash)) then raise FormatException.new("contents of #{@file} are invalid") end
      needs_save = fill_out_missing(r)
      httphandler.call(SOURCES[HTTP_KEY].from_hash(r[HTTP_KEY]))
      streamerhandler.call(SOURCES[STREAMER_KEY].from_hash(r[STREAMER_KEY]))
      converthandler.call(SOURCES[CONVERT_KEY].from_hash(r[CONVERT_KEY]))
      if needs_save then
        save_config(r)
      end
    end