public ResponseMessage create() { final ResponseResult responseResult = new ResponseResult(result, metaData); final ResponseStatus responseStatus = new ResponseStatus(code, statusMessage, attributes); return new ResponseMessage(requestId, responseStatus, responseResult); } }
/** * Adds the {@link Tokens#ARGS_SESSION} value to every {@link RequestMessage}. */ @Override public RequestMessage.Builder buildMessage(final RequestMessage.Builder builder) { builder.processor("session"); builder.addArg(Tokens.ARGS_SESSION, sessionId); builder.addArg(Tokens.ARGS_MANAGE_TRANSACTION, manageTransactions); return builder; }
private Builder(final RequestMessage requestMessage) { this.requestId = requestMessage.getRequestId(); }
@Override public ResponseMessage createObject(final Map<String, Object> data) { final Map<String, Object> status = (Map<String, Object>) data.get(SerTokens.TOKEN_STATUS); final Map<String, Object> result = (Map<String, Object>) data.get(SerTokens.TOKEN_RESULT); return ResponseMessage.build(UUID.fromString(data.get(SerTokens.TOKEN_REQUEST).toString())) .code(ResponseStatusCode.getFromValue((Integer) status.get(SerTokens.TOKEN_CODE))) .statusMessage(status.get(SerTokens.TOKEN_MESSAGE).toString()) .statusAttributes((Map<String, Object>) status.get(SerTokens.TOKEN_ATTRIBUTES)) .result(result.get(SerTokens.TOKEN_DATA)) .responseMetaData((Map<String, Object>) result.get(SerTokens.TOKEN_META)) .create(); } }
@Override protected Optional<ThrowingConsumer<Context>> validateEvalMessage(final RequestMessage message) throws OpProcessorException { super.validateEvalMessage(message); if (!message.optionalArgs(Tokens.ARGS_SESSION).isPresent()) { final String msg = String.format("A message with an [%s] op code requires a [%s] argument", Tokens.OPS_EVAL, Tokens.ARGS_SESSION); throw new OpProcessorException(msg, ResponseMessage.build(message).code(ResponseStatusCode.REQUEST_ERROR_INVALID_REQUEST_ARGUMENTS).statusMessage(msg).create()); } return Optional.empty(); }
@Benchmark public RequestMessage testInstanceCreation() { return RequestMessage.build("a").overrideRequestId(id).processor("b").create(); } }
@Override public <O extends OutputShim> void write(final KryoShim<?, O> kryo, final O output, final ResponseMessage responseMessage) { kryo.writeObjectOrNull(output, responseMessage.getRequestId() != null ? responseMessage.getRequestId() : null, UUID.class); // status output.writeShort((short) responseMessage.getStatus().getCode().getValue()); output.writeString(responseMessage.getStatus().getMessage()); kryo.writeClassAndObject(output, responseMessage.getStatus().getAttributes()); // result kryo.writeClassAndObject(output, responseMessage.getResult().getData()); kryo.writeClassAndObject(output, responseMessage.getResult().getMeta()); }
public static Builder from(final RequestMessage msg) { final Builder builder = build(msg.op) .overrideRequestId(msg.requestId) .processor(msg.processor); msg.args.forEach(builder::addArg); return builder; }
/** * Writes a response message to the underlying channel while ensuring that at most one * {@link ResponseStatusCode#isFinalResponse() final} response is written. * <p>Note: this method should be used instead of writing to the channel directly when multiple threads * are expected to produce response messages concurrently.</p> * <p>Attempts to write more than one final response message will be ignored.</p> * @see #writeAndFlush(ResponseStatusCode, Object) */ public void writeAndFlush(final ResponseMessage message) { writeAndFlush(message.getStatus().getCode(), message); }
public static Builder build(final RequestMessage requestMessage) { return new Builder(requestMessage); }
public static Builder build(final String op) { return new Builder(op); }
public ResponseMessage readValue(final ByteBuf buffer, final GraphBinaryReader context, final boolean nullable) throws SerializationException { final int version = buffer.readByte(); assert version >>> 31 == 1; return ResponseMessage.build(context.readValue(buffer, UUID.class, true)) .code(ResponseStatusCode.getFromValue(context.readValue(buffer, Integer.class, false))) .statusMessage(context.readValue(buffer, String.class, true)) .statusAttributes(context.readValue(buffer, Map.class, false)) .responseMetaData(context.readValue(buffer, Map.class, false)) .result(context.read(buffer)) .create(); }
private static Map<String, String> validateTraversalRequest(final RequestMessage message) throws OpProcessorException { if (!message.optionalArgs(Tokens.ARGS_GREMLIN).isPresent()) { final String msg = String.format("A message with [%s] op code requires a [%s] argument.", Tokens.OPS_BYTECODE, Tokens.ARGS_GREMLIN); throw new OpProcessorException(msg, ResponseMessage.build(message).code(ResponseStatusCode.REQUEST_ERROR_INVALID_REQUEST_ARGUMENTS).statusMessage(msg).create()); } return validatedAliases(message).get(); }
public CompletableFuture<List<ResponseMessage>> submitAsync(final RequestMessage requestMessage) throws Exception; }
public DriverRemoteTraversalSideEffects(final Client client, final ResultSet rs) { this.client = client; this.serverSideEffect = rs.getOriginalRequestMessage().getRequestId(); this.host = rs.getHost(); this.ready = rs.allItemsAvailableAsync(); this.statusAttributes = rs.statusAttributes(); }
public static Builder build(final UUID requestId) { return new Builder(requestId); }
@Override public <I extends InputShim> ResponseMessage read(final KryoShim<I, ?> kryo, final I input, final Class<ResponseMessage> clazz) { final UUID requestId = kryo.readObjectOrNull(input, UUID.class); final int status = input.readShort(); final String statusMsg = input.readString(); final Map<String,Object> statusAttributes = (Map<String,Object>) kryo.readClassAndObject(input); final Object result = kryo.readClassAndObject(input); final Map<String,Object> metaAttributes = (Map<String,Object>) kryo.readClassAndObject(input); return ResponseMessage.build(requestId) .code(ResponseStatusCode.getFromValue(status)) .statusMessage(statusMsg) .statusAttributes(statusAttributes) .result(result) .responseMetaData(metaAttributes) .create(); } }
public List<ResponseMessage> submit(final RequestMessage requestMessage) throws Exception;