pub fn flush(&mut self) {
        self.handle.send_batch(&mut self.buffer);
        if self.handle.epoch().less_than(&self.time) {
            self.handle.advance_to(self.time.clone());
        }
    }
Forces buffered data into the timely dataflow input, and advances its time to match that of the session.

It is important to call `flush` before expecting timely dataflow to report progress. Until this method is
called, all updates may still be in internal buffers and not exposed to timely dataflow. Once the method is
called, all buffers are flushed and timely dataflow is advised that some logical times are no longer possible.
differential-dataflow/src/input.rs