# File lib/sdb/sdb_interface.rb, line 228
    def list_domains(max_number_of_domains = nil, next_token = nil)
      request_params = {'MaxNumberOfDomains' => max_number_of_domains,
                        'NextToken'          => next_token}
      link           = generate_request("ListDomains", request_params)
      result         = request_info(link, QSdbListDomainParser.new)
      # return result if no block given
      return result unless block_given?
      # loop if block if given
      begin
        # the block must return true if it wanna continue
        break unless yield(result) && result[:next_token]
        # make new request
        request_params['NextToken'] = result[:next_token]
        link                        = generate_request("ListDomains", request_params)
        result                      = request_info(link, QSdbListDomainParser.new)
      end while true
    rescue Exception
      on_exception
    end