def flush(self):
        """Flushes this instance's cache.

        The driver of this instance should call this method every
        `flush_interval`.

        Returns:
          list[``ServicecontrolServicesReportRequest``]: corresponding to the
            pending cached operations

        """
        if self._cache is None:
            return _NO_RESULTS
        with self._cache as c:
            flushed_ops = [x.as_operation() for x in c.out_deque]
            c.out_deque.clear()
            reqs = []
            max_ops = self.MAX_OPERATION_COUNT
            for x in range(0, len(flushed_ops), max_ops):
                report_request = sc_messages.ReportRequest(
                    operations=flushed_ops[x:x + max_ops])
                reqs.append(
                    sc_messages.ServicecontrolServicesReportRequest(
                        serviceName=self.service_name,
                        reportRequest=report_request))

            return reqs