use of io.dingodb.raft.rpc.InvokeContext in project dingo by dingodb.
the class DefaultDingoRowStoreRpcService method internalCallAsyncWithRpc.
private <V> void internalCallAsyncWithRpc(final Endpoint endpoint, final BaseRequest request, final FailoverClosure<V> closure) {
final InvokeContext invokeCtx = new InvokeContext();
invokeCtx.put(BoltRpcClient.BOLT_CTX, ExtSerializerSupports.getInvokeContext());
final InvokeCallback invokeCallback = new InvokeCallback() {
@Override
public void complete(final Object result, final Throwable err) {
if (err == null) {
final BaseResponse<?> response = (BaseResponse<?>) result;
if (response.isSuccess()) {
closure.setData(response.getValue());
closure.run(Status.OK());
} else {
closure.setError(response.getError());
closure.run(new Status(-1, "RPC failed with address: %s, response: %s", endpoint, response));
}
} else {
closure.failure(err);
}
}
@Override
public Executor executor() {
return rpcCallbackExecutor;
}
};
try {
this.rpcClient.invokeAsync(endpoint, request, invokeCtx, invokeCallback, this.rpcTimeoutMillis);
} catch (final Throwable t) {
closure.failure(t);
}
}
use of io.dingodb.raft.rpc.InvokeContext in project dingo by dingodb.
the class DefaultPlacementDriverRpcService method internalCallPdWithRpc.
private <V> void internalCallPdWithRpc(final Endpoint endpoint, final BaseRequest request, final FailoverClosure<V> closure) {
final InvokeContext invokeCtx = new InvokeContext();
invokeCtx.put(BoltRpcClient.BOLT_CTX, ExtSerializerSupports.getInvokeContext());
final InvokeCallback invokeCallback = new InvokeCallback() {
@Override
public void complete(final Object result, final Throwable err) {
if (err == null) {
final BaseResponse<?> response = (BaseResponse<?>) result;
if (response.isSuccess()) {
closure.setData(response.getValue());
closure.run(Status.OK());
} else {
closure.setError(response.getError());
closure.run(new Status(-1, "RPC failed with address: %s, response: %s", endpoint, response));
}
} else {
closure.failure(err);
}
}
@Override
public Executor executor() {
return rpcCallbackExecutor;
}
};
try {
this.rpcClient.invokeAsync(endpoint, request, invokeCtx, invokeCallback, this.rpcTimeoutMillis);
} catch (final Throwable t) {
closure.failure(t);
}
}
use of io.dingodb.raft.rpc.InvokeContext in project dingo by dingodb.
the class DefaultRaftClientService method getFile.
@Override
public Future<Message> getFile(final Endpoint endpoint, final RpcRequests.GetFileRequest request, final int timeoutMs, final RpcResponseClosure<RpcRequests.GetFileResponse> done) {
// open checksum
final InvokeContext ctx = new InvokeContext();
ctx.put(InvokeContext.CRC_SWITCH, true);
return invokeWithDone(endpoint, request, ctx, done, timeoutMs);
}
Aggregations