EncoderImpl(ByteBuffer buffer, DecoderImpl decoder) { this(decoder); setByteBuffer(buffer); }
FrameWriter(EncoderImpl encoder, int maxFrameSize, byte frameType, TransportImpl transport) { this.encoder = encoder; this.maxFrameSize = maxFrameSize; this.frameType = frameType; this.transport = transport; encoder.setByteBuffer(frameBuffer); }
EncoderImpl(ByteBuffer buffer, DecoderImpl decoder) { this(decoder); setByteBuffer(buffer); }
EncoderImpl(ByteBuffer buffer, DecoderImpl decoder) { this(decoder); setByteBuffer(buffer); }
FrameWriter(EncoderImpl encoder, int maxFrameSize, byte frameType, ProtocolTracer protocolTracer, Object logCtx) { _encoder = encoder; _bbuf = ByteBuffer.allocate(1024); _buffer = new WritableBuffer.ByteBufferWrapper(_bbuf); _encoder.setByteBuffer(_buffer); _maxFrameSize = maxFrameSize; _frameType = frameType; _protocolTracer = protocolTracer; _logCtx = logCtx; }
private void grow() { ByteBuffer old = _bbuf; _bbuf = ByteBuffer.allocate(_bbuf.capacity() * 2); _buffer = new WritableBuffer.ByteBufferWrapper(_bbuf); old.flip(); _bbuf.put(old); _encoder.setByteBuffer(_buffer); }
FrameWriter(EncoderImpl encoder, int maxFrameSize, byte frameType, Ref<ProtocolTracer> protocolTracer, TransportImpl transport) { _encoder = encoder; _bbuf = ByteBuffer.allocate(1024); _buffer = new WritableBuffer.ByteBufferWrapper(_bbuf); _encoder.setByteBuffer(_buffer); _maxFrameSize = maxFrameSize; _frameType = frameType; _protocolTracer = protocolTracer; _transport = transport; }
private void grow() { ByteBuffer old = _bbuf; _bbuf = ByteBuffer.allocate(_bbuf.capacity() * 2); _buffer = new WritableBuffer.ByteBufferWrapper(_bbuf); old.flip(); _bbuf.put(old); _encoder.setByteBuffer(_buffer); }
private void writeDeliveryAnnotationsForSendBuffer(ByteBuf result) { if (deliveryAnnotationsForSendBuffer != null && !deliveryAnnotationsForSendBuffer.getValue().isEmpty()) { TLSEncode.getEncoder().setByteBuffer(new NettyWritable(result)); TLSEncode.getEncoder().writeObject(deliveryAnnotationsForSendBuffer); TLSEncode.getEncoder().setByteBuffer((WritableBuffer) null); } }
/** * Given an AMQP Section encode it and return the buffer holding the encoded value * * @param section * the AMQP Section value to encode. * * @return a buffer holding the encoded bytes of the given AMQP Section object. */ public static ByteBuf encode(Section section) { if (section == null) { return null; } AmqpWritableBuffer buffer = new AmqpWritableBuffer(); EncoderImpl encoder = getEncoder(); encoder.setByteBuffer(buffer); encoder.writeObject(section); encoder.setByteBuffer((WritableBuffer) null); return buffer.getBuffer(); }
/** * Given an AMQP Section encode it and return the buffer holding the encoded value * * @param section * the AMQP Section value to encode. * * @return a buffer holding the encoded bytes of the given AMQP Section object. */ public static ByteBuf encode(Section section) { if (section == null) { return null; } AmqpWritableBuffer buffer = new AmqpWritableBuffer(); EncoderImpl encoder = getEncoder(); encoder.setByteBuffer(buffer); encoder.writeObject(section); encoder.setByteBuffer((WritableBuffer) null); return buffer.getBuffer(); }
private int getDeliveryAnnotationsForSendBufferSize() { if (deliveryAnnotationsForSendBuffer == null || deliveryAnnotationsForSendBuffer.getValue().isEmpty()) { return 0; } DroppingWritableBuffer droppingWritableBuffer = new DroppingWritableBuffer(); TLSEncode.getEncoder().setByteBuffer(droppingWritableBuffer); TLSEncode.getEncoder().writeObject(deliveryAnnotationsForSendBuffer); TLSEncode.getEncoder().setByteBuffer((WritableBuffer) null); return droppingWritableBuffer.position() + 1; }
context.encoder.setByteBuffer(buffer); context.encoder.writeObject(messageAnnotations); context.encoder.setByteBuffer(oldBuffer);
encoder.setByteBuffer(writableBuffer); encoder.setByteBuffer((WritableBuffer) null);
@Override public void sendBuffer(ByteBuf buffer, int deliveryCount) { checkBuffer(); int amqpDeliveryCount = deliveryCount - 1; // If the re-delivering the message then the header must be re-encoded // otherwise we want to write the original header if present. if (amqpDeliveryCount > 0) { Header header = getHeader(); if (header == null) { header = new Header(); header.setDurable(durable); } synchronized (header) { header.setDeliveryCount(UnsignedInteger.valueOf(amqpDeliveryCount)); TLSEncode.getEncoder().setByteBuffer(new NettyWritable(buffer)); TLSEncode.getEncoder().writeObject(header); TLSEncode.getEncoder().setByteBuffer((WritableBuffer) null); } } else if (headerEnds > 0) { buffer.writeBytes(data.duplicate().limit(headerEnds).byteBuffer()); } data.position(messagePaylodStart); buffer.writeBytes(data.byteBuffer()); data.position(0); }
private ReadableBuffer createCopyWithNewDeliveryCount(int deliveryCount) { assert deliveryCount > 1; final int amqpDeliveryCount = deliveryCount - 1; final ByteBuf result = PooledByteBufAllocator.DEFAULT.heapBuffer(getEncodeSize()); // If this is re-delivering the message then the header must be re-encoded // otherwise we want to write the original header if present. When a // Header is present we need to copy it as we are updating the re-delivered // message and not the stored version which we don't want to invalidate here. Header header = this.header; if (header == null) { header = new Header(); } else { header = new Header(header); } header.setDeliveryCount(UnsignedInteger.valueOf(amqpDeliveryCount)); TLSEncode.getEncoder().setByteBuffer(new NettyWritable(result)); TLSEncode.getEncoder().writeObject(header); TLSEncode.getEncoder().setByteBuffer((WritableBuffer) null); writeDeliveryAnnotationsForSendBuffer(result); // skip existing delivery annotations of the original message data.position(encodedHeaderSize + encodedDeliveryAnnotationsSize); result.writeBytes(data.byteBuffer()); data.position(0); return new NettyReadable(result); }
private ReadableBuffer createCopyWithNewDeliveryCount(int deliveryCount) { assert deliveryCount > 1; final int amqpDeliveryCount = deliveryCount - 1; // If the re-delivering the message then the header must be re-encoded // (or created if not previously present). Any delivery annotations should // be skipped as well in the resulting buffer. final ByteBuf result = PooledByteBufAllocator.DEFAULT.heapBuffer(getEncodeSize()); Header header = getHeader(); if (header == null) { header = new Header(); header.setDurable(durable); } synchronized (header) { // Updates or adds a Header section with the correct delivery count header.setDeliveryCount(UnsignedInteger.valueOf(amqpDeliveryCount)); TLSEncode.getEncoder().setByteBuffer(new NettyWritable(result)); TLSEncode.getEncoder().writeObject(header); TLSEncode.getEncoder().setByteBuffer((WritableBuffer) null); } // This will skip any existing delivery annotations that might have been present // in the original message. data.position(messagePaylodStart); result.writeBytes(data.byteBuffer()); data.position(0); return new NettyReadable(result); }
int writeFrame(WritableBuffer buffer, SaslFrameBody frameBody) { int oldPosition = buffer.position(); buffer.position(buffer.position()+8); _encoder.setByteBuffer(buffer); _encoder.writeObject(frameBody); int frameSize = buffer.position() - oldPosition; int limit = buffer.position(); buffer.position(oldPosition); buffer.putInt(frameSize); buffer.put((byte) 2); buffer.put(SASL_FRAME_TYPE); buffer.putShort((short) 0); buffer.position(limit); return frameSize; }
encoder.setByteBuffer(buffer); encoder.setByteBuffer((WritableBuffer)null);
EncoderImpl encoder = new EncoderImpl(decoder); AMQPDefinedTypes.registerAllTypes(decoder, encoder); encoder.setByteBuffer(buffer);