@Override protected <T> T getBodyInternal(Class<T> c) { if (bodyLength == 0) return null; byte[] dst = new byte[bodyLength]; message.getBodyBuffer().getBytes(CoreMessage.BODY_OFFSET, dst); return (T) dst; } }
@Override protected <T> T getBodyInternal(Class<T> c) { if (bodyLength == 0) return null; byte[] dst = new byte[bodyLength]; message.getBodyBuffer().getBytes(CoreMessage.BODY_OFFSET, dst); return (T) dst; } }
@Override protected <T> T getBodyInternal(Class<T> c) { if (bodyLength == 0) return null; byte[] dst = new byte[bodyLength]; message.getBodyBuffer().getBytes(CoreMessage.BODY_OFFSET, dst); return (T) dst; } }
@Override protected <T> T getBodyInternal(Class<T> c) { if (bodyLength == 0) return null; byte[] dst = new byte[bodyLength]; message.getBodyBuffer().getBytes(CoreMessage.BODY_OFFSET, dst); return (T) dst; } }
@Override protected <T> T getBodyInternal(Class<T> c) { if (bodyLength == 0) return null; byte[] dst = new byte[bodyLength]; message.getBodyBuffer().getBytes(CoreMessage.BODY_OFFSET, dst); return (T) dst; } }
@Override public void write(final ActiveMQBuffer bytes, final boolean sync, final IOCallback callback) throws IOException { if (timedBuffer != null) { bytes.setIndex(0, bytes.capacity()); timedBuffer.addBytes(bytes, sync, callback); } else { final int readableBytes = bytes.readableBytes(); final ByteBuffer buffer = factory.newBuffer(readableBytes); //factory::newBuffer doesn't necessary return a buffer with limit == readableBytes!! buffer.limit(readableBytes); bytes.getBytes(bytes.readerIndex(), buffer); buffer.flip(); writeDirect(buffer, sync, callback); } }
@Override public void write(final ActiveMQBuffer bytes, final boolean sync, final IOCallback callback) throws IOException { if (timedBuffer != null) { bytes.setIndex(0, bytes.capacity()); timedBuffer.addBytes(bytes, sync, callback); } else { final int readableBytes = bytes.readableBytes(); final ByteBuffer buffer = factory.newBuffer(readableBytes); //factory::newBuffer doesn't necessary return a buffer with limit == readableBytes!! buffer.limit(readableBytes); bytes.getBytes(bytes.readerIndex(), buffer); buffer.flip(); writeDirect(buffer, sync, callback); } }
buffer.getBytes(0, bufferToFlush);
buffer.getBytes(0, bufferToFlush);
private void testValidateUTFWithChars(final int size, final char c) { final char[] chars = new char[size]; Arrays.fill(chars, c); final String expectedUtf8String = new String(chars); final ActiveMQBuffer buffer = ActiveMQBuffers.fixedBuffer(4 * chars.length); UTF8Util.saveUTF(buffer.byteBuf(), expectedUtf8String); final byte[] expectedBytes = expectedUtf8String.getBytes(StandardCharsets.UTF_8); final int encodedSize = buffer.readUnsignedShort(); final byte[] realEncodedBytes = new byte[encodedSize]; buffer.getBytes(buffer.readerIndex(), realEncodedBytes); Assert.assertArrayEquals(expectedBytes, realEncodedBytes); }
@Override public synchronized void broadcastConnectors() throws Exception { ActiveMQBuffer buff = ActiveMQBuffers.dynamicBuffer(4096); buff.writeString(nodeManager.getNodeId().toString()); buff.writeString(uniqueID); buff.writeInt(connectors.size()); for (TransportConfiguration tcConfig : connectors) { tcConfig.encode(buff); } // Only send as many bytes as we need. byte[] data = new byte[buff.readableBytes()]; buff.getBytes(buff.readerIndex(), data); endpoint.broadcast(data); }
@Test public void testGetBytesILChannelBufferII() throws Exception { LargeMessageControllerImpl buffer = create15BytesSample(); ActiveMQBuffer dstBuffer = ActiveMQBuffers.fixedBuffer(20); dstBuffer.setIndex(0, 5); buffer.getBytes(0, dstBuffer); byte[] compareBytes = new byte[15]; dstBuffer.getBytes(5, compareBytes); validateAgainstSample(compareBytes); }
public final void addBytesToLargeMessage(final SequentialFile file, final long messageId, final ActiveMQBuffer bytes) throws Exception { readLock(); try { file.position(file.size()); if (bytes.byteBuf() != null && bytes.byteBuf().nioBufferCount() == 1) { final ByteBuffer nioBytes = bytes.byteBuf().internalNioBuffer(bytes.readerIndex(), bytes.readableBytes()); file.writeDirect(nioBytes, false); if (isReplicated()) { //copy defensively bytes final byte[] bytesCopy = new byte[bytes.readableBytes()]; bytes.getBytes(bytes.readerIndex(), bytesCopy); replicator.largeMessageWrite(messageId, bytesCopy); } } else { final byte[] bytesCopy = new byte[bytes.readableBytes()]; bytes.readBytes(bytesCopy); addBytesToLargeMessage(file, messageId, bytesCopy); } } finally { readUnLock(); } }