private ByteBuf doEncodeRequest(JRequestPayload request) { byte sign = JProtocolHeader.toSign(request.serializerCode(), JProtocolHeader.REQUEST); long invokeId = request.invokeId(); ByteBuf byteBuf = (ByteBuf) request.outputBuf().backingObject(); int length = byteBuf.readableBytes(); byteBuf.markWriterIndex(); byteBuf.writerIndex(byteBuf.writerIndex() - length); byteBuf.writeShort(JProtocolHeader.MAGIC) .writeByte(sign) .writeByte(0x00) .writeLong(invokeId) .writeInt(length - JProtocolHeader.HEADER_SIZE); byteBuf.resetWriterIndex(); return byteBuf; }
NioBufOutput(OutputBuf outputBuf, int minWritableBytes, int maxCapacity) { this.outputBuf = outputBuf; this.maxCapacity = maxCapacity; nioBuffer = outputBuf.nioByteBuffer(minWritableBytes); capacity = nioBuffer.remaining(); }
public static ObjectOutputStream getOutput(OutputBuf outputBuf) throws IOException { return new ObjectOutputStream(outputBuf.outputStream()); }
public static Output getOutput(OutputBuf outputBuf) { if (outputBuf.hasMemoryAddress()) { return new UnsafeNioBufOutput(outputBuf, -1, Integer.MAX_VALUE); } return new NioBufOutput(outputBuf, -1, Integer.MAX_VALUE); }
public int size() { return (bytes == null ? 0 : bytes.length) + (inputBuf == null ? 0 : inputBuf.size()) + (outputBuf == null ? 0 : outputBuf.size()); } }
public static Output getOutput(OutputBuf outputBuf) { if (outputBuf.hasMemoryAddress()) { return new UnsafeNioBufOutput(outputBuf, -1, Integer.MAX_VALUE); } return new NioBufOutput(outputBuf, -1, Integer.MAX_VALUE); }
public int size() { return (bytes == null ? 0 : bytes.length) + (inputBuf == null ? 0 : inputBuf.size()) + (outputBuf == null ? 0 : outputBuf.size()); } }
NioBufOutput(OutputBuf outputBuf, int minWritableBytes, int maxCapacity) { this.outputBuf = outputBuf; this.maxCapacity = maxCapacity; nioBuffer = outputBuf.nioByteBuffer(minWritableBytes); capacity = nioBuffer.remaining(); }
private ByteBuf doEncodeRequest(JRequestPayload request) { byte sign = JProtocolHeader.toSign(request.serializerCode(), JProtocolHeader.REQUEST); long invokeId = request.invokeId(); ByteBuf byteBuf = (ByteBuf) request.outputBuf().backingObject(); int length = byteBuf.readableBytes(); byteBuf.markWriterIndex(); byteBuf.writerIndex(byteBuf.writerIndex() - length); byteBuf.writeShort(JProtocolHeader.MAGIC) .writeByte(sign) .writeByte(0x00) .writeLong(invokeId) .writeInt(length - JProtocolHeader.HEADER_SIZE); byteBuf.resetWriterIndex(); return byteBuf; }
public static ObjectOutputStream getOutput(OutputBuf outputBuf) throws IOException { return new ObjectOutputStream(outputBuf.outputStream()); }
public static Output getOutput(OutputBuf outputBuf) { if (outputBuf.hasMemoryAddress()) { return new UnsafeNioBufOutput(outputBuf, -1, Integer.MAX_VALUE); } return new NioBufOutput(outputBuf, -1, Integer.MAX_VALUE); }
public int size() { return (bytes == null ? 0 : bytes.length) + (inputBuf == null ? 0 : inputBuf.size()) + (outputBuf == null ? 0 : outputBuf.size()); } }
NioBufOutput(OutputBuf outputBuf, int minWritableBytes, int maxCapacity) { this.outputBuf = outputBuf; this.maxCapacity = maxCapacity; niobuffer = outputBuf.nioByteBuffer(minWritableBytes); capacity = niobuffer.remaining(); }
private ByteBuf doEncodeResponse(JResponsePayload response) { byte sign = JProtocolHeader.toSign(response.serializerCode(), JProtocolHeader.RESPONSE); byte status = response.status(); long invokeId = response.id(); ByteBuf byteBuf = (ByteBuf) response.outputBuf().backingObject(); int length = byteBuf.readableBytes(); byteBuf.markWriterIndex(); byteBuf.writerIndex(byteBuf.writerIndex() - length); byteBuf.writeShort(JProtocolHeader.MAGIC) .writeByte(sign) .writeByte(status) .writeLong(invokeId) .writeInt(length - JProtocolHeader.HEADER_SIZE); byteBuf.resetWriterIndex(); return byteBuf; } }
public static Hessian2Output getOutput(OutputBuf outputBuf) { return new Hessian2Output(outputBuf.outputStream()); }
public static Output getOutput(OutputBuf outputBuf) { if (outputBuf.hasMemoryAddress()) { return new UnsafeNioBufOutput(outputBuf, -1, Integer.MAX_VALUE); } return new NioBufOutput(outputBuf, -1, Integer.MAX_VALUE); }
NioBufOutput(OutputBuf outputBuf, int minWritableBytes, int maxCapacity) { this.outputBuf = outputBuf; this.maxCapacity = maxCapacity; niobuffer = outputBuf.nioByteBuffer(minWritableBytes); capacity = niobuffer.remaining(); }
private ByteBuf doEncodeResponse(JResponsePayload response) { byte sign = JProtocolHeader.toSign(response.serializerCode(), JProtocolHeader.RESPONSE); byte status = response.status(); long invokeId = response.id(); ByteBuf byteBuf = (ByteBuf) response.outputBuf().backingObject(); int length = byteBuf.readableBytes(); byteBuf.markWriterIndex(); byteBuf.writerIndex(byteBuf.writerIndex() - length); byteBuf.writeShort(JProtocolHeader.MAGIC) .writeByte(sign) .writeByte(status) .writeLong(invokeId) .writeInt(length - JProtocolHeader.HEADER_SIZE); byteBuf.resetWriterIndex(); return byteBuf; } }
public static Hessian2Output getOutput(OutputBuf outputBuf) { return new Hessian2Output(outputBuf.outputStream()); }
protected void ensureCapacity(int required) throws ProtocolException { if (nioBuffer.remaining() < required) { int position = nioBuffer.position(); while (capacity - position < required) { if (capacity == maxCapacity) { throw new ProtocolException( "Buffer overflow. Available: " + (capacity - position) + ", required: " + required); } capacity = Math.min(capacity << 1, maxCapacity); if (capacity < 0) { capacity = maxCapacity; } } nioBuffer = outputBuf.nioByteBuffer(capacity - position); capacity = nioBuffer.limit(); } } }