private Value getArgument(Request request, String parameter) { if (parameter.length()<=1 || parameter.charAt(1)!=':') return new StringValue(parameter); String value=parameter.substring(2); switch (parameter.charAt(0)) { case 'b': return new Int8Value(Byte.parseByte(value)); case 'h': return new Int16Value(Short.parseShort(value)); case 'i': return new Int32Value(Integer.parseInt(value)); case 'l': return new Int64Value(Long.parseLong(value)); case 'f': return new FloatValue(Float.parseFloat(value)); case 'd': return new DoubleValue(Double.parseDouble(value)); case 's': return new StringValue(value); } throw new IllegalArgumentException("The first letter in '" + parameter + "' must be a type argument. " + "There is no jrt type identified by '" + parameter.charAt(0) + "'"); }
public void addRemoveResult(RemoveResult result, Request req) { addResult(result, req); req.returnValues().add(new Int8Value(result.wasFound() ? (byte)1 : (byte)0)); }
public void addResult(Result result, Request req) { req.returnValues().add(new Int8Value((byte) result.getErrorType().ordinal())); req.returnValues().add(new StringValue(result.getErrorMessage())); }
@Override public void getDocsums(List<FastHit> hits, NodeConnection node, CompressionType compression, int uncompressedLength, byte[] compressedSlime, RpcFillInvoker.GetDocsumsResponseReceiver responseReceiver, double timeoutSeconds) { Request request = new Request("proton.getDocsums"); request.parameters().add(new Int8Value(compression.getCode())); request.parameters().add(new Int32Value(uncompressedLength)); request.parameters().add(new DataValue(compressedSlime)); request.setContext(hits); RpcNodeConnection rpcNode = ((RpcNodeConnection) node); rpcNode.invokeAsync(request, timeoutSeconds, new RpcResponseWaiter(rpcNode, responseReceiver)); }
/** * Decode a value from the given buffer. This method also acts as * a factory for value objects * * @return the decoded value * @param type value type identifier * @param src where the value is stored * @throws IllegalArgumentException if the given type identifier is illegal **/ static Value decode(byte type, ByteBuffer src) { switch (type) { case INT8: return new Int8Value(src); case INT8_ARRAY: return new Int8Array(src); case INT16: return new Int16Value(src); case INT16_ARRAY: return new Int16Array(src); case INT32: return new Int32Value(src); case INT32_ARRAY: return new Int32Array(src); case INT64: return new Int64Value(src); case INT64_ARRAY: return new Int64Array(src); case FLOAT: return new FloatValue(src); case FLOAT_ARRAY: return new FloatArray(src); case DOUBLE: return new DoubleValue(src); case DOUBLE_ARRAY: return new DoubleArray(src); case STRING: return new StringValue(src); case STRING_ARRAY: return new StringArray(src); case DATA: return new DataValue(src); case DATA_ARRAY: return new DataArray(src); } throw new IllegalArgumentException(); }
public void RPC_getBucketInfo(Request req) { BucketInfoResult result = provider.getBucketInfo(getBucket(req, 0)); addResult(result, req); req.returnValues().add(new Int32Value(result.getBucketInfo().getChecksum())); req.returnValues().add(new Int32Value(result.getBucketInfo().getDocumentCount())); req.returnValues().add(new Int32Value(result.getBucketInfo().getDocumentSize())); req.returnValues().add(new Int32Value(result.getBucketInfo().getEntryCount())); req.returnValues().add(new Int32Value(result.getBucketInfo().getUsedSize())); req.returnValues().add(new Int8Value(result.getBucketInfo().isReady() ? (byte)1 : (byte)0)); req.returnValues().add(new Int8Value(result.getBucketInfo().isActive() ? (byte)1 : (byte)0)); }
req.returnValues().add(new StringArray(docIds)); req.returnValues().add(new DataArray(documents)); req.returnValues().add(new Int8Value(result.isCompleted() ? (byte)1 : (byte)0)); } catch (Exception e) { e.printStackTrace();
@Override protected Request encodeRequest(Version version, Route route, RPCServiceAddress address, Message msg, long timeRemaining, byte[] payload, int traceLevel) { Request req = new Request(METHOD_NAME); Values v = req.parameters(); v.add(new Int8Value(CompressionType.NONE.getCode())); v.add(new Int32Value(0)); v.add(new DataValue(new byte[0])); Slime slime = new Slime(); Cursor root = slime.setObject(); root.setString(VERSION_F, version.toString()); root.setString(ROUTE_F, route.toString()); root.setString(SESSION_F, address.getSessionName()); root.setString(PROTOCOL_F, msg.getProtocol().toString()); root.setBool(USERETRY_F, msg.getRetryEnabled()); root.setLong(RETRY_F, msg.getRetry()); root.setLong(TIMEREMAINING_F, msg.getTimeRemaining()); root.setLong(TRACELEVEL_F, traceLevel); root.setData(BLOB_F, payload); byte[] serializedSlime = BinaryFormat.encode(slime); Compressor.Compression compressionResult = compressor.compress(serializedSlime); v.add(new Int8Value(compressionResult.type().getCode())); v.add(new Int32Value(compressionResult.uncompressedSize())); v.add(new DataValue(compressionResult.data())); return req; }
@Override protected Request encodeRequest(Version version, Route route, RPCServiceAddress address, Message msg, long timeRemaining, byte[] payload, int traceLevel) { Request req = new Request(METHOD_NAME); Values v = req.parameters(); v.add(new StringValue(version.toString())); v.add(new StringValue(route.toString())); v.add(new StringValue(address.getSessionName())); v.add(new Int8Value(msg.getRetryEnabled() ? (byte)1 : (byte)0)); v.add(new Int32Value(msg.getRetry())); v.add(new Int64Value(timeRemaining)); v.add(new StringValue(msg.getProtocol())); v.add(new DataValue(payload)); v.add(new Int32Value(traceLevel)); return req; }
@Override protected void createResponse(Values ret, Reply reply, Version version, byte [] payload) { ret.add(new Int8Value(CompressionType.NONE.getCode())); ret.add(new Int32Value(0)); ret.add(new DataValue(new byte[0])); Compressor.Compression compressionResult = compressor.compress(serializedSlime); ret.add(new Int8Value(compressionResult.type().getCode())); ret.add(new Int32Value(compressionResult.uncompressedSize())); ret.add(new DataValue(compressionResult.data()));