'ignoreResultsNumber
Don\'t process the first ignoreResultsNumber results.
processResultsCount
If non-zero this parameters indicates the number of results
processed is limited to processResultsCount.
timeout
See parameter timeout of ldap.LDAPObject.result()'

def processResults(self, ignoreResultsNumber=0, processResultsCount=0, timeout=(-1)):

    self.preProcessing()
    result_counter = 0
    end_result_counter = (ignoreResultsNumber + processResultsCount)
    go_ahead = 1
    partial = 0
    self.beginResultsDropped = 0
    self.endResultBreak = result_counter
    try:
        (result_type, result_list) = (None, None)
        while go_ahead:
            while ((result_type is None) and (not result_list)):
                (result_type, result_list, result_msgid, result_serverctrls) = self._l.result3(self._msgId, 0, timeout)
            if (not result_list):
                break
            if (not _searchResultTypes.has_key(result_type)):
                raise WrongResultType(result_type, _searchResultTypes.keys())
            for result_item in result_list:
                if (result_counter < ignoreResultsNumber):
                    self.beginResultsDropped = (self.beginResultsDropped + 1)
                elif ((processResultsCount == 0) or (result_counter < end_result_counter)):
                    self._processSingleResult(result_type, result_item)
                else:
                    go_ahead = 0
                    partial = 1
                    break
                result_counter = (result_counter + 1)
            (result_type, result_list) = (None, None)
            self.endResultBreak = result_counter
    finally:
        if (partial and (self._msgId != None)):
            self._l.abandon(self._msgId)
    self.postProcessing()
    return partial
