private int scanNextField(final int startScan) { return buffer.scan(startScan + 1, usedBufferData - 1, START_OF_HEADER); }
private int scanEndOfMessage(final int startOfChecksumValue) { return buffer.scan(startOfChecksumValue, usedBufferData - 1, START_OF_HEADER); }
private int scanEndOfBodyLength(final int startOfBodyLength) { return buffer.scan(startOfBodyLength + 1, usedBufferData - 1, START_OF_HEADER); }
public int scan(final int startInclusive, final int endInclusive, final char terminatingCharacter) { return scan(startInclusive, endInclusive, (byte)terminatingCharacter); }
private int getMessageType(final int endOfBodyLength, final int indexOfLastByteOfMessage) { final int start = buffer.scan(endOfBodyLength, indexOfLastByteOfMessage, '='); if (buffer.getByte(start + 2) == START_OF_HEADER) { return buffer.getByte(start + 1); } return buffer.getMessageType(start + 1, 2); }
private int onInvalidBodyLength(final int offset, final int startOfChecksumTag) { int checksumTagScanPoint = startOfChecksumTag + 1; while (!isStartOfChecksum(checksumTagScanPoint)) { final int endOfScanPoint = checksumTagScanPoint + CHECKSUM_TAG_SIZE; if (endOfScanPoint >= usedBufferData) { return BREAK; } checksumTagScanPoint++; } final int endOfScanPoint = checksumTagScanPoint + CHECKSUM_TAG_SIZE; final int endOfMessage = buffer.scan(endOfScanPoint, usedBufferData, SEPARATOR) + 1; if (endOfMessage > usedBufferData) { return BREAK; } if (saveInvalidMessage(offset, endOfMessage)) { return offset; } moveRemainingDataToBufferStart(endOfMessage); return offset; }