/** * Set the error message * * @param message to associate with the error * @return flyweight */ public ErrorResponseFlyweight errorMessage(final String message) { buffer.putStringUtf8(offset + ERROR_MESSAGE_OFFSET, message); return this; }
public static int encode(final MutableDirectBuffer encodingBuffer, final String value) { final int length = encodingBuffer.putStringUtf8(LOG_HEADER_LENGTH, value, LITTLE_ENDIAN); final int recordLength = LOG_HEADER_LENGTH + length; encodeLogHeader(encodingBuffer, recordLength, recordLength); return recordLength; }
@Test public void shouldEqualOnSameTypeAndValue() { final MutableDirectBuffer lhsBuffer = new ExpandableArrayBuffer(); final MutableDirectBuffer rhsBuffer = new ExpandableArrayBuffer(); lhsBuffer.putStringUtf8(0, "Hello World"); rhsBuffer.putStringUtf8(0, "Hello World"); assertThat(lhsBuffer.compareTo(rhsBuffer), is(0)); }
@Test public void shouldEqualOnDifferentExpandableTypeAndValue() { final MutableDirectBuffer lhsBuffer = new ExpandableArrayBuffer(); final MutableDirectBuffer rhsBuffer = new ExpandableDirectByteBuffer(); lhsBuffer.putStringUtf8(0, "Hello World"); rhsBuffer.putStringUtf8(0, "Hello World"); assertThat(lhsBuffer.compareTo(rhsBuffer), is(0)); }
@Test public void shouldBeLess() { final MutableDirectBuffer lhsBuffer = new ExpandableArrayBuffer(); final MutableDirectBuffer rhsBuffer = new ExpandableArrayBuffer(); lhsBuffer.putStringUtf8(0, "124"); rhsBuffer.putStringUtf8(0, "123"); assertThat(lhsBuffer.compareTo(rhsBuffer), greaterThan(0)); } }
@Theory public void shouldRoundTripUtf8StringNativeLength(final MutableDirectBuffer buffer) { final String value = "Hello£ World £"; buffer.putStringUtf8(INDEX, value); assertThat(buffer.getStringUtf8(INDEX), is(value)); }
@Test public void shouldEqualOnDifferentTypeAndValue() { final MutableDirectBuffer lhsBuffer = new ExpandableArrayBuffer(); final MutableDirectBuffer rhsBuffer = new UnsafeBuffer(ByteBuffer.allocateDirect(lhsBuffer.capacity())); lhsBuffer.putStringUtf8(0, "Hello World"); rhsBuffer.putStringUtf8(0, "Hello World"); assertThat(lhsBuffer.compareTo(rhsBuffer), is(0)); }
@Theory public void shouldRoundTripUtf8StringBigEndianLength(final MutableDirectBuffer buffer) { final String value = "Hello£ World £"; buffer.putStringUtf8(INDEX, value, ByteOrder.BIG_ENDIAN); assertThat(buffer.getStringUtf8(INDEX, ByteOrder.BIG_ENDIAN), is(value)); }
@Test public void shouldBeGreater() { final MutableDirectBuffer lhsBuffer = new ExpandableArrayBuffer(); final MutableDirectBuffer rhsBuffer = new ExpandableArrayBuffer(); lhsBuffer.putStringUtf8(0, "123"); rhsBuffer.putStringUtf8(0, "124"); assertThat(lhsBuffer.compareTo(rhsBuffer), lessThan(0)); }
private void testAlignedWriteMethods(final MutableDirectBuffer buffer, final int offset) { buffer.putLong(offset + SIZE_OF_LONG, Long.MAX_VALUE); buffer.putLong(offset + SIZE_OF_LONG, Long.MAX_VALUE, BIG_ENDIAN); buffer.putDouble(offset + SIZE_OF_DOUBLE, Double.MAX_VALUE); buffer.putDouble(offset + SIZE_OF_DOUBLE, Double.MAX_VALUE, BIG_ENDIAN); buffer.putInt(offset + SIZE_OF_INT, Integer.MAX_VALUE); buffer.putInt(offset + SIZE_OF_INT, Integer.MAX_VALUE, BIG_ENDIAN); buffer.putFloat(offset + SIZE_OF_FLOAT, Float.MAX_VALUE); buffer.putFloat(offset + SIZE_OF_FLOAT, Float.MAX_VALUE, BIG_ENDIAN); buffer.putShort(offset + SIZE_OF_SHORT, Short.MAX_VALUE); buffer.putShort(offset + SIZE_OF_SHORT, Short.MAX_VALUE, BIG_ENDIAN); buffer.putChar(offset + SIZE_OF_CHAR, Character.MAX_VALUE); buffer.putChar(offset + SIZE_OF_CHAR, Character.MAX_VALUE, BIG_ENDIAN); buffer.putByte(offset + SIZE_OF_BYTE, Byte.MAX_VALUE); buffer.putByte(offset + SIZE_OF_BYTE, Byte.MAX_VALUE); buffer.putStringUtf8(offset + SIZE_OF_INT, TEST_STRING); buffer.putStringUtf8(offset + SIZE_OF_INT, TEST_STRING, BIG_ENDIAN); buffer.putStringUtf8(offset + SIZE_OF_INT, TEST_STRING, Integer.MAX_VALUE); buffer.putStringUtf8(offset + SIZE_OF_INT, TEST_STRING, BIG_ENDIAN, Integer.MAX_VALUE); buffer.putStringAscii(offset + SIZE_OF_INT, TEST_STRING); buffer.putStringAscii(offset + SIZE_OF_INT, TEST_STRING, BIG_ENDIAN); // string size is not read for these method => no need for 4-bytes // alignment buffer.putStringWithoutLengthUtf8(offset + SIZE_OF_BYTE, TEST_STRING); buffer.putStringWithoutLengthAscii(offset + SIZE_OF_BYTE, TEST_STRING); }
private void testUnAlignedWriteMethods(final MutableDirectBuffer buffer, final int offset) { buffer.putLong(offset, Long.MAX_VALUE); // assert that buffer[offset] is // 8-bytes aligned assertUnaligned(offset + SIZE_OF_INT, (i) -> buffer.putLong(i, Long.MAX_VALUE)); assertUnaligned(offset + SIZE_OF_INT, (i) -> buffer.putLong(i, Long.MAX_VALUE, BIG_ENDIAN)); assertUnaligned(offset + SIZE_OF_FLOAT, (i) -> buffer.putDouble(i, Double.MAX_VALUE)); assertUnaligned(offset + SIZE_OF_FLOAT, (i) -> buffer.putDouble(i, Double.MAX_VALUE, BIG_ENDIAN)); assertUnaligned(offset + SIZE_OF_SHORT, (i) -> buffer.putInt(i, Integer.MAX_VALUE)); assertUnaligned(offset + SIZE_OF_SHORT, (i) -> buffer.putInt(i, Integer.MAX_VALUE, BIG_ENDIAN)); assertUnaligned(offset + SIZE_OF_SHORT, (i) -> buffer.putFloat(i, Float.MAX_VALUE)); assertUnaligned(offset + SIZE_OF_SHORT, (i) -> buffer.putFloat(i, Float.MAX_VALUE, BIG_ENDIAN)); assertUnaligned(offset + SIZE_OF_BYTE, (i) -> buffer.putShort(i, Short.MAX_VALUE)); assertUnaligned(offset + SIZE_OF_BYTE, (i) -> buffer.putShort(i, Short.MAX_VALUE, BIG_ENDIAN)); assertUnaligned(offset + SIZE_OF_BYTE, (i) -> buffer.putChar(i, Character.MAX_VALUE)); assertUnaligned(offset + SIZE_OF_BYTE, (i) -> buffer.putChar(i, Character.MAX_VALUE, BIG_ENDIAN)); assertUnaligned(offset + SIZE_OF_SHORT, (i) -> buffer.putStringAscii(i, TEST_STRING)); assertUnaligned(offset + SIZE_OF_SHORT, (i) -> buffer.putStringAscii(i, TEST_STRING, BIG_ENDIAN)); assertUnaligned(offset + SIZE_OF_SHORT, (i) -> buffer.putStringUtf8(i, TEST_STRING)); assertUnaligned(offset + SIZE_OF_SHORT, (i) -> buffer.putStringUtf8(i, TEST_STRING, BIG_ENDIAN)); assertUnaligned(offset + SIZE_OF_SHORT, (i) -> buffer.putStringUtf8(i, TEST_STRING, Integer.MAX_VALUE)); assertUnaligned(offset + SIZE_OF_SHORT, (i) -> buffer.putStringUtf8(i, TEST_STRING, BIG_ENDIAN, Integer.MAX_VALUE)); }
/** * Set the error message * * @param message to associate with the error * @return flyweight */ public ErrorResponseFlyweight errorMessage(final String message) { buffer.putStringUtf8(offset + ERROR_MESSAGE_OFFSET, message); return this; }
/** * Set the error message * * @param message to associate with the error * @return flyweight */ public ErrorResponseFlyweight errorMessage(final String message) { buffer.putStringUtf8(offset + ERROR_MESSAGE_OFFSET, message); return this; }
public static int encode(final MutableDirectBuffer encodingBuffer, final String value) { final int length = encodingBuffer.putStringUtf8(LOG_HEADER_LENGTH, value, LITTLE_ENDIAN); final int recordLength = LOG_HEADER_LENGTH + length; encodeLogHeader(encodingBuffer, recordLength, recordLength); return recordLength; }