in src/main/java/com/uber/rss/clients/StreamDecoderBase.java [40:62]
public TDecodeResult decode() {
if (readableBytes() <= 0) {
throw new RssInvalidStateException(String.format("Cannot decode due to lack of readable bytes: %s", readableBytes()));
}
TDecodeResult decodeResult = null;
do {
TState oldState = state;
long oldReadableBytes = readableBytes();
decodeResult = decodeSingleRound();
if (decodeResult != null) {
return decodeResult;
}
if (state.equals(oldState) && readableBytes() == oldReadableBytes) {
return null;
}
if (readableBytes() == 0) {
return null;
}
} while (decodeResult == null);
return decodeResult;
}