docs: def IterateAllClientsFullInfo(self, min_last_ping=None, batch_size=50000):
      """Iterates over all available clients and yields full info protobufs.
  
      Args:
        min_last_ping: If not None, only the clients with last-ping timestamps
          newer than (or equal to) min_last_ping will be returned.
        batch_size: Always reads <batch_size> client full infos at a time.
  
      Yields:
        An rdfvalues.objects.ClientFullInfo object for each client in the db.
      """
      all_client_ids = self.ReadAllClientIDs(min_last_ping=min_last_ping)
  
      for batch in collection.Batch(all_client_ids, batch_size):
        res = self.MultiReadClientFullInfo(batch)
        for full_info in itervalues(res):
          yield full_info