private Buffer getNativeBuffer(IApimanBuffer buffer) { if (buffer.getNativeBuffer() instanceof Buffer) { return (Buffer) buffer.getNativeBuffer(); } else { logger.debug("Received an IApimanBuffer with a non-Vert.x implementation. " //$NON-NLS-1$ + "This will function but may require copying and be less efficient."); //$NON-NLS-1$ return Buffer.buffer(buffer.getBytes()); } } }
@Override public void write(IApimanBuffer buffer) { write((byte[]) buffer.getNativeBuffer()); }
@Override public void append(IApimanBuffer buffer) { nativeBuffer.appendBuffer((Buffer) buffer.getNativeBuffer()); }
@Override public void write(IApimanBuffer buffer) { write((byte[]) buffer.getNativeBuffer()); }
@Override public void insert(int index, IApimanBuffer buffer) { nativeBuffer.setBuffer(index, (Buffer) buffer.getNativeBuffer()); }
@Override public void insert(int index, IApimanBuffer buffer, int offset, int length) { nativeBuffer.setBuffer(index, (Buffer) buffer.getNativeBuffer(), offset, length); }
@Override public void append(IApimanBuffer buffer, int offset, int length) { nativeBuffer.appendBuffer((Buffer) buffer.getNativeBuffer(), offset, length); }
public VertxApimanBuffer(IApimanBuffer buffer) { this.nativeBuffer = Buffer.buffer(buffer.length()).appendBuffer((Buffer) buffer.getNativeBuffer()); }
@Override public void write(IApimanBuffer chunk) { if (inboundFinished) { throw new IllegalStateException(Messages.getString("HttpConnector.0")); } if (chunk.getNativeBuffer() instanceof Buffer) { clientRequest.write((Buffer) chunk.getNativeBuffer()); // When write queue has diminished sufficiently, drain handler will be invoked. if (clientRequest.writeQueueFull() && drainHandler != null) { clientRequest.drainHandler(drainHandler::handle); } } else { throw new IllegalArgumentException(Messages.getString("HttpConnector.1")); } }
/** * @see io.apiman.gateway.engine.io.IWriteStream#write(io.apiman.gateway.engine.io.IApimanBuffer) */ @Override public void write(IApimanBuffer chunk) { try { if (!connected) { throw new IOException("Not connected."); //$NON-NLS-1$ } if (outputStream == null) { outputStream = connection.getOutputStream(); } if (chunk instanceof ByteBuffer) { byte[] buffer = (byte[]) chunk.getNativeBuffer(); outputStream.write(buffer, 0, chunk.length()); } else { outputStream.write(chunk.getBytes()); } } catch (IOException e) { handleConnectionError(e); } }
/** * @see io.apiman.gateway.engine.io.IWriteStream#write(io.apiman.gateway.engine.io.IApimanBuffer) */ @Override public void write(IApimanBuffer chunk) { try { if (!connected) { throw new IOException("Not connected."); //$NON-NLS-1$ } if (outputStream == null) { outputStream = connection.getOutputStream(); } if (chunk instanceof ByteBuffer) { byte[] buffer = (byte[]) chunk.getNativeBuffer(); outputStream.write(buffer, 0, chunk.length()); } else { outputStream.write(chunk.getBytes()); } } catch (IOException e) { handleConnectionError(e); } }
private void handleEngineResult(ApiRequest request, IEngineResult engineResult) { // Everything worked if (engineResult.isResponse()) { ApiResponse response = engineResult.getApiResponse(); HttpApiFactory.buildResponse(vertxResponse, response, vertxRequest.version()); if (!response.getHeaders().containsKey("Content-Length")) { //$NON-NLS-1$ vertxResponse.setChunked(true); } engineResult.bodyHandler(buffer -> { vertxResponse.write((Buffer) buffer.getNativeBuffer()); }); engineResult.endHandler(end -> vertxResponse.end()); } else { // Policy failure (i.e. denial - it's not an exception). log.debug(String.format("Failed with policy failure (denial): %s", engineResult.getPolicyFailure())); //$NON-NLS-1$ handlePolicyFailure(request, engineResult.getPolicyFailure(), vertxResponse); } }