/** * * @param statusCode int arg used in commandChannel.publishHTTPResponse * @param hasContinuation boolean arg * @param contentType HTTPContentType arg used in commandChannel.publishHTTPResponse * @param writable Writable arg used in commandChannel.publishHTTPResponse * @return publishResult if connectionId GTE 0 AND sequenceCode GTE 0 <p> <code>false</code> if Pipe.hasContentToRead(pipe) else <code>true</code> */ public boolean respondWith(int statusCode, boolean hasContinuation, HTTPContentType contentType, Writable writable) { return respondWith(statusCode, hasContinuation, null, contentType, writable); }
public boolean respondWith(boolean hasContinuation, HeaderWritable headers, HTTPContentType contentType, Writable writable) { return respondWith(200,hasContinuation,headers,contentType,writable); }
@Override public boolean message(CharSequence topic, ChannelReader payload) { if (responder.readHandoffData(payload)) { return responder.respondWith(200, false, HTTPContentTypeDefaults.TXT, (w)->{w.writeUTF("sent by responder");}); } else { return false; } }
@Override public boolean message(CharSequence topic, ChannelReader payload) { boolean result = responder.readHandoffData(payload); if (result) { responder.respondWith(200, false, HTTPContentTypeDefaults.TXT, (w)->{w.writeUTF8Text("sent by responder");}); } return result; }
@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()); }); } }