public class LogEntryServerStream 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.
Implements
Iterable<LogEntry>Methods
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.
convert(TailLogEntriesResponse resp)
public List<LogEntry> convert(TailLogEntriesResponse resp)
Parameter | |
---|---|
Name | Description |
resp | TailLogEntriesResponse |
Returns | |
---|---|
Type | Description |
List<LogEntry> |
getInternalStream()
public BidiStream<TailLogEntriesRequest,TailLogEntriesResponse> getInternalStream()
Returns | |
---|---|
Type | Description |
BidiStream<TailLogEntriesRequest,TailLogEntriesResponse> |
isReceiveReady()
public boolean isReceiveReady()
Returns true if the next call to the iterator's hasNext() or next() is guaranteed to be nonblocking.
Returns | |
---|---|
Type | Description |
boolean | If the call on any of the iterator's methods is guaranteed to be nonblocking. |
iterator()
public Iterator<LogEntry> iterator()
Returns | |
---|---|
Type | Description |
Iterator<LogEntry> |