private static boolean equals(byte[] buffer, int start, int length, ReadableBuffer other) { final int position = other.position(); for (int i = 0; i < length; i++) { if (buffer[start + i] != other.get(position + i)) { return false; } } return true; }
@Override public void put(ReadableBuffer payload) { final int toCopy = payload.remaining(); ensureRemaining(toCopy); if (payload.hasArray()) { System.arraycopy(payload.array(), payload.arrayOffset() + payload.position(), array, position, toCopy); payload.position(payload.position() + toCopy); } else { payload.get(array, position, toCopy); } position += toCopy; }
@Override public void put(ReadableBuffer payload) { _pos += payload.remaining(); payload.position(payload.limit()); }
@Override public void put(ReadableBuffer buffer) { if (buffer.hasArray()) { nettyBuffer.writeBytes(buffer.array(), buffer.arrayOffset() + buffer.position(), buffer.remaining()); } else { nettyBuffer.writeBytes(buffer.byteBuffer()); } } }
@Override public org.apache.activemq.artemis.api.core.Message copy() { checkBuffer(); ReadableBuffer view = data.duplicate(); byte[] newData = new byte[view.remaining() - (messagePaylodStart - headerEnds)]; view.position(0).limit(headerEnds); view.get(newData, 0, headerEnds); view.clear(); view.position(messagePaylodStart); view.get(newData, headerEnds, view.remaining()); AMQPMessage newEncode = new AMQPMessage(this.messageFormat, newData, extraProperties, coreMessageObjectPools); newEncode.setDurable(isDurable()).setMessageID(this.getMessageID()); return newEncode; }
private DeliveryAnnotations getDeliveryAnnotations() { parseHeaders(); if (_deliveryAnnotations == null && deliveryAnnotationsPosition >= 0) { ReadableBuffer buffer = data.duplicate(); buffer.position(deliveryAnnotationsPosition); TLSEncode.getDecoder().setBuffer(buffer); Object section = TLSEncode.getDecoder().readObject(); _deliveryAnnotations = (DeliveryAnnotations) section; deliveryAnnotationsPosition = -1; TLSEncode.getDecoder().setBuffer(null); } return _deliveryAnnotations; }