public TDecodeResult decode()

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;
    }