/** * * @param reader FailablePayloadReading arg used to read(this) * @return if (hasRemainingBytes()) return reader.read(this) else false */ public boolean openPayloadDataFailable(FailablePayloadReading reader) { if (hasRemainingBytes()) { return reader.read(this.structured().readPayload());//even when we have zero length... } else { return false; } }
/** * * @param reader Payloadable arg used to read(this) * @return if (hasRemainingBytes()) true else false */ public boolean openPayloadData(Payloadable reader) { if (hasRemainingBytes()) { reader.read(this.structured().readPayload());//even when we have zero length... return true; } else { return false; } }
@Override public boolean responseHTTP(HTTPResponseReader reader) { if (reader.isConnectionClosed()) { return responder.closed(); } else { return responder.respondWith(200, !reader.isEndOfResponse(), (headWriter) -> { reader.structured().visit(HTTPHeader.class, (header,r,id)->{ //we are a proxy, our response has its own length, connection and status if (header != HTTPHeaderDefaults.CONTENT_LENGTH && header != HTTPHeaderDefaults.CONNECTION && header != HTTPHeaderDefaults.STATUS ) { headWriter.write(header, reader.getSpec(), r); } }); }, reader.contentType(), (payloadWriter) -> { payloadWriter.write(reader.structured().readPayload()); }); } }
inputStream.structured().readPayload().readInto(outputStream, inputStream.available()); inputStream.structured().readPayload().readInto(targetStream, inputStream.available());