# File lib/dnstraverse/decoded_query_cache.rb, line 32
    def query(args)
      qname = args[:qname] || raise("Must pass qname")
      qclass = args[:qclass] || raise("Must pass qclass")
      qtype = args[:qtype] || raise("Must pass qtype")
      ip = args[:ip] || raise("Must pass ip")
      bailiwick = args[:bailiwick] # could be nil
      key = "key:dqc:#{ip}:#{qname}:#{qclass}:#{qtype}:#{bailiwick}"
      Log.debug { "Decoded Query Cache query #{key}" }
      if @cache.has_key?(key) then
        Log.debug { "Decoded Query Cache hit: #{key}" }
        @cache_hits+= 1
        return @cache[key]
      end
      newargs = args.merge( { :resolver => @resolver } )
      @cache[key] = DNSTraverse::DecodedQuery.new(newargs)
      Log.debug { "Decoded Query Cache store: #{key}" }
      return @cache[key]
    end