'Restores its way through the directory using an Iterator.'

def Iterate(self, request, client_state):

    self.request = request
    filters = self.BuildChecks(request)
    limit = request.iterator.number
    for (count, f) in enumerate(self.ListDirectory(request.pathspec, client_state)):
        self.Progress()
        if (not any((check(f) for check in filters))):
            self.SendReply(rdf_client.FindSpec(hit=f))
        if (count >= (limit - 1)):
            logging.debug('Processed    %s    entries,    quitting', count)
            return
    request.iterator.state = rdf_client.Iterator.State.FINISHED
