/** * Get a wrapper around the default frame header from the log meta data. * * @param metadataBuffer containing the raw bytes for the default frame header. * @return a buffer wrapping the raw bytes. */ public static UnsafeBuffer defaultFrameHeader(final UnsafeBuffer metadataBuffer) { return new UnsafeBuffer(metadataBuffer, LOG_DEFAULT_FRAME_HEADER_OFFSET, HEADER_LENGTH); }
public static UnsafeBuffer createMetaDataBuffer(final ByteBuffer buffer) { return new UnsafeBuffer(buffer, 0, META_DATA_LENGTH); }
private static UnsafeBuffer newTestLogBuffer(final int termBufferLength) { return new UnsafeBuffer(ByteBuffer.allocateDirect(termBufferLength)); } }
public static UnsafeBuffer createToDriverBuffer(final ByteBuffer buffer, final DirectBuffer metaDataBuffer) { return new UnsafeBuffer(buffer, END_OF_METADATA_OFFSET, metaDataBuffer.getInt(toDriverBufferLengthOffset(0))); }
public DataTransportPoller() { byteBuffer = NetworkUtil.allocateDirectAlignedAndPadded( Configuration.MAX_UDP_PAYLOAD_LENGTH, CACHE_LINE_LENGTH * 2); unsafeBuffer = new UnsafeBuffer(byteBuffer); dataMessage = new DataHeaderFlyweight(unsafeBuffer); setupMessage = new SetupFlyweight(unsafeBuffer); rttMeasurement = new RttMeasurementFlyweight(unsafeBuffer); }
public ControlTransportPoller() { byteBuffer = NetworkUtil.allocateDirectAlignedAndPadded( Configuration.MAX_UDP_PAYLOAD_LENGTH, CACHE_LINE_LENGTH * 2); unsafeBuffer = new UnsafeBuffer(byteBuffer); nakMessage = new NakFlyweight(unsafeBuffer); statusMessage = new StatusMessageFlyweight(unsafeBuffer); rttMeasurement = new RttMeasurementFlyweight(unsafeBuffer); }
public static UnsafeBuffer createToClientsBuffer(final ByteBuffer buffer, final DirectBuffer metaDataBuffer) { final int offset = END_OF_METADATA_OFFSET + metaDataBuffer.getInt(toDriverBufferLengthOffset(0)); return new UnsafeBuffer(buffer, offset, metaDataBuffer.getInt(toClientsBufferLengthOffset(0))); }
@Before public void setUp() { dataHeader.wrap(rcvBuffer); for (int i = 0; i < PARTITION_COUNT; i++) { termBuffers[i] = new UnsafeBuffer(allocateDirect(TERM_BUFFER_LENGTH)); } final UnsafeBuffer logMetaDataBuffer = new UnsafeBuffer(allocateDirect(LOG_META_DATA_LENGTH)); when(logBuffers.duplicateTermBuffers()).thenReturn(termBuffers); when(logBuffers.termLength()).thenReturn(TERM_BUFFER_LENGTH); when(logBuffers.metaDataBuffer()).thenReturn(logMetaDataBuffer); }
@Test public void shouldDoNotingIfEndArrivesWithoutBegin() { when(header.flags()).thenReturn(FrameDescriptor.END_FRAG_FLAG); final UnsafeBuffer srcBuffer = new UnsafeBuffer(new byte[1024]); final int offset = 0; final int length = srcBuffer.capacity() / 2; adapter.onFragment(srcBuffer, offset, length, header); verify(delegateFragmentHandler, never()).onFragment(any(), anyInt(), anyInt(), any()); }
@Test public void shouldPassThroughUnfragmentedMessage() { when(header.flags()).thenReturn(FrameDescriptor.UNFRAGMENTED); final UnsafeBuffer srcBuffer = new UnsafeBuffer(new byte[128]); final int offset = 8; final int length = 32; adapter.onFragment(srcBuffer, offset, length, header); verify(delegateFragmentHandler, times(1)).onFragment(srcBuffer, offset, length, header); }
@Test public void shouldFormatBytesToAscii() { System.setProperty(LogInspector.AERON_LOG_DATA_FORMAT_PROP_NAME, "ascii"); final char[] formattedBytes = LogInspector.formatBytes(new UnsafeBuffer(new byte[]{ buffer }), 0, 1); Assert.assertEquals(expected, formattedBytes[0]); } }
public static UnsafeBuffer createCountersMetaDataBuffer(final ByteBuffer buffer, final DirectBuffer metaDataBuffer) { final int offset = END_OF_METADATA_OFFSET + metaDataBuffer.getInt(toDriverBufferLengthOffset(0)) + metaDataBuffer.getInt(toClientsBufferLengthOffset(0)); return new UnsafeBuffer(buffer, offset, metaDataBuffer.getInt(countersMetaDataBufferLengthOffset(0))); }
@Test public void shouldFillSingleGap() { final int frameLength = 50; final int alignedFrameLength = BitUtil.align(frameLength, FRAME_ALIGNMENT); final int srcOffset = 0; final int tail = alignedFrameLength; final int termOffset = tail; final UnsafeBuffer packet = new UnsafeBuffer(ByteBuffer.allocateDirect(alignedFrameLength)); TermRebuilder.insert(termBuffer, termOffset, packet, alignedFrameLength); verify(termBuffer).putBytes( tail + HEADER_LENGTH, packet, srcOffset + HEADER_LENGTH, alignedFrameLength - HEADER_LENGTH); }
@Test public void shouldAppendNothingForZeroLength() { final UnsafeBuffer srcBuffer = new UnsafeBuffer(new byte[MIN_ALLOCATED_CAPACITY]); bufferBuilder.append(srcBuffer, 0, 0); assertThat(bufferBuilder.limit(), is(0)); }
public static UnsafeBuffer createCountersValuesBuffer(final ByteBuffer buffer, final DirectBuffer metaDataBuffer) { final int offset = END_OF_METADATA_OFFSET + metaDataBuffer.getInt(toDriverBufferLengthOffset(0)) + metaDataBuffer.getInt(toClientsBufferLengthOffset(0)) + metaDataBuffer.getInt(countersMetaDataBufferLengthOffset(0)); return new UnsafeBuffer(buffer, offset, metaDataBuffer.getInt(countersValuesBufferLengthOffset(0))); }
@Test(expected = AeronException.class) public void shouldDetectInvalidTerm() { final int length = 128; final int srcOffset = 0; final UnsafeBuffer buffer = new UnsafeBuffer(new byte[length]); logMetaDataBuffer.putLong(TERM_TAIL_COUNTER_OFFSET, packTail(TERM_ID + 1, 0)); termAppender.appendUnfragmentedMessage(headerWriter, buffer, srcOffset, length, RVS, TERM_ID); } }
public static UnsafeBuffer createErrorLogBuffer(final ByteBuffer buffer, final DirectBuffer metaDataBuffer) { final int offset = END_OF_METADATA_OFFSET + metaDataBuffer.getInt(toDriverBufferLengthOffset(0)) + metaDataBuffer.getInt(toClientsBufferLengthOffset(0)) + metaDataBuffer.getInt(countersMetaDataBufferLengthOffset(0)) + metaDataBuffer.getInt(countersValuesBufferLengthOffset(0)); return new UnsafeBuffer(buffer, offset, metaDataBuffer.getInt(errorLogBufferLengthOffset(0))); }
@Test public void shouldAppendOneBufferWithoutResizing() { final UnsafeBuffer srcBuffer = new UnsafeBuffer(new byte[MIN_ALLOCATED_CAPACITY]); final byte[] bytes = "Hello World".getBytes(StandardCharsets.UTF_8); srcBuffer.putBytes(0, bytes, 0, bytes.length); bufferBuilder.append(srcBuffer, 0, bytes.length); final byte[] temp = new byte[bytes.length]; bufferBuilder.buffer().getBytes(0, temp, 0, bytes.length); assertThat(bufferBuilder.limit(), is(bytes.length)); assertThat(bufferBuilder.capacity(), is(MIN_ALLOCATED_CAPACITY)); assertArrayEquals(temp, bytes); }
@Test public void shouldAppendThenReset() { final UnsafeBuffer srcBuffer = new UnsafeBuffer(new byte[MIN_ALLOCATED_CAPACITY]); bufferBuilder.append(srcBuffer, 0, srcBuffer.capacity()); assertThat(bufferBuilder.limit(), is(srcBuffer.capacity())); bufferBuilder.reset(); assertThat(bufferBuilder.limit(), is(0)); }
@Test public void shouldGrowToMultipleOfInitialCapacity() { final int srcCapacity = MIN_ALLOCATED_CAPACITY * 5; final UnsafeBuffer srcBuffer = new UnsafeBuffer(new byte[srcCapacity]); bufferBuilder.append(srcBuffer, 0, srcBuffer.capacity()); assertThat(bufferBuilder.limit(), is(srcCapacity)); assertThat(bufferBuilder.capacity(), greaterThanOrEqualTo(srcCapacity)); }