List of usage examples for org.apache.thrift AsyncProcessFunction start
public abstract void start(I iface, T args, AsyncMethodCallback<R> resultHandler) throws TException;
From source file:com.linecorp.armeria.server.thrift.ThriftCallService.java
License:Apache License
private static void invokeAsynchronously(Object impl, ThriftFunction func, TBase<TBase<?, ?>, TFieldIdEnum> args, DefaultRpcResponse reply) throws TException { final AsyncProcessFunction<Object, TBase<TBase<?, ?>, TFieldIdEnum>, Object> f = func.asyncFunc(); f.start(impl, args, new AsyncMethodCallback<Object>() { @Override// ww w. ja v a 2 s. c o m public void onComplete(Object response) { if (func.isOneWay()) { reply.complete(null); } else { reply.complete(response); } } @Override public void onError(Exception e) { reply.completeExceptionally(e); } }); }
From source file:com.linecorp.armeria.server.thrift.ThriftServiceInvocationHandler.java
License:Apache License
private void invokeAsynchronously(ThriftServiceInvocationContext ctx, Promise<Object> promise) { final ThriftFunction func = ctx.func; final AsyncProcessFunction<Object, TBase<TBase<?, ?>, TFieldIdEnum>, Object> f = func.asyncFunc(); try {//from w w w . j a v a2 s . c o m f.start(service, ctx.args, new AsyncMethodCallback<Object>() { @Override public void onComplete(Object response) { if (func.isOneway()) { safeSetSuccess(ctx, promise, null); return; } try { TBase<TBase<?, ?>, TFieldIdEnum> result = func.newResult(); func.setSuccess(result, response); safeSetSuccess(ctx, promise, result); } catch (Throwable t) { safeSetFailure(ctx, promise, t); } } @Override public void onError(Exception e) { safeSetFailure(ctx, promise, e); } }); } catch (Throwable t) { safeSetFailure(ctx, promise, t); } }