@Override public void executeAsync(final AsyncTask<A> task) { executeAsync(task, getExecutor()); }
@Override public void executeAsync(final AsyncTask<A> task) { executeAsync(task, getExecutor()); }
/** * Execute a request. * * @param request the request * @param channel the channel * @param support the request support * @return the future result */ protected <T, A> AsyncFuture<T> executeRequest(final ManagementRequest<T, A> request, final Channel channel, final ActiveOperation<T, A> support) { assert support != null; updateChannelRef(support, channel); final Integer requestId = this.requestID.incrementAndGet(); final ActiveRequest<T, A> ar = new ActiveRequest<T, A>(support, request); requests.put(requestId, ar); final ManagementRequestHeader header = new ManagementRequestHeader(ManagementProtocol.VERSION, requestId, support.getOperationId(), request.getOperationType()); final ActiveOperation.ResultHandler<T> resultHandler = support.getResultHandler(); try { request.sendRequest(resultHandler, new ManagementRequestContextImpl<T, A>(support, channel, header, getExecutor())); } catch (Exception e) { resultHandler.failed(e); requests.remove(requestId); } return support.getResult(); }
/** * Execute a request. * * @param request the request * @param channel the channel * @param support the request support * @return the future result */ protected <T, A> AsyncFuture<T> executeRequest(final ManagementRequest<T, A> request, final Channel channel, final ActiveOperation<T, A> support) { assert support != null; updateChannelRef(support, channel); final Integer requestId = this.requestID.incrementAndGet(); final ActiveRequest<T, A> ar = new ActiveRequest<T, A>(support, request); requests.put(requestId, ar); final ManagementRequestHeader header = new ManagementRequestHeader(ManagementProtocol.VERSION, requestId, support.getOperationId(), request.getOperationType()); final ActiveOperation.ResultHandler<T> resultHandler = support.getResultHandler(); try { request.sendRequest(resultHandler, new ManagementRequestContextImpl<T, A>(support, channel, header, getExecutor())); } catch (Exception e) { resultHandler.failed(e); requests.remove(requestId); } return support.getResult(); }
/** * Handle a message. * * @param channel the channel * @param message the message * @param header the protocol header * @param support the request support * @param handler the request handler */ protected <T, A> void handleMessage(final Channel channel, final DataInput message, final ManagementProtocolHeader header, final ActiveOperation<T, A> support, final ManagementRequestHandler<T, A> handler) { assert support != null; updateChannelRef(support, channel); final ActiveOperation.ResultHandler<T> resultHandler = support.getResultHandler(); try { handler.handleRequest(message, resultHandler, new ManagementRequestContextImpl<T, A>(support, channel, header, getExecutor())); } catch (Exception e) { resultHandler.failed(e); safeWriteErrorResponse(channel, header, e); } }
/** * Handle a message. * * @param channel the channel * @param message the message * @param header the protocol header * @param support the request support * @param handler the request handler */ protected <T, A> void handleMessage(final Channel channel, final DataInput message, final ManagementProtocolHeader header, final ActiveOperation<T, A> support, final ManagementRequestHandler<T, A> handler) { assert support != null; updateChannelRef(support, channel); final ActiveOperation.ResultHandler<T> resultHandler = support.getResultHandler(); try { handler.handleRequest(message, resultHandler, new ManagementRequestContextImpl<T, A>(support, channel, header, getExecutor())); } catch (Exception e) { resultHandler.failed(e); safeWriteErrorResponse(channel, header, e); } }