Class LogEntryServerStream

  • All Implemented Interfaces:
    Iterable<LogEntry>

    public class LogEntryServerStream
    extends Object
    implements Iterable<LogEntry>
    The class implements Iterable interface over {@see LogEntry}. It wraps around BidiStream bi-directional gRPC stream to support iterating through ingested responses. The class uses {@see LogEntryIterator} to iterate through the processed responses. The stream should be explicitly canceled by calling {@see LogEntryServerStream#cancel()} method. The class does not provide recovery or resuming functionality over the stream.

    To iterate run:

    
     LogEntryServerStream stream;
     // code to initialize stream
     for (LogEntry log : stream) {
       // do something with logs
     }
     stream.cancel();
     

    The iteration can be blocked on waiting for another response sent in the stream.

    • Method Detail

      • isReceiveReady

        public boolean isReceiveReady()
        Returns true if the next call to the iterator's hasNext() or next() is guaranteed to be nonblocking.
        Returns:
        If the call on any of the iterator's methods is guaranteed to be nonblocking.
      • cancel

        public void cancel()
        Cleanly cancels a partially consumed stream. The associated iterator will return false for the hasNext() in the next iteration. This maintains the contract that an observed true from hasNext() will yield an item in next(), but afterwards will return false.