use of org.jowidgets.invocation.service.common.api.ICancelListener in project jo-client-platform by jo-source.
the class CancelServiceImpl method canceled.
@Override
public void canceled(final Object invocationId) {
Assert.paramNotNull(invocationId, "invocationId");
final Set<ICancelListener> cancelListenerSet = cancelListeners.get(invocationId);
if (cancelListenerSet != null) {
for (final ICancelListener cancelListener : cancelListenerSet) {
cancelListener.canceled();
}
}
cancelListeners.remove(invocationId);
}
use of org.jowidgets.invocation.service.common.api.ICancelListener in project jo-client-platform by jo-source.
the class MethodImpl method invoke.
@Override
public void invoke(final Object invocationId, final Object parameter) {
final IInvocationCallbackService invocationCallbackService = invocationServer.getInvocationCallbackService();
cancelService.registerInvocation(invocationId);
final IInvocationCallback<Object> invocationCallback = new IInvocationCallback<Object>() {
@Override
public void addCancelListener(final ICancelListener cancelListener) {
cancelService.registerCancelListener(invocationId, cancelListener);
}
@Override
public void finished(final Object result) {
invocationCallbackService.finished(invocationId, result);
cancelService.unregisterInvocation(invocationId);
}
@Override
public void exeption(final Throwable exception) {
invocationCallbackService.exeption(invocationId, exception);
cancelService.unregisterInvocation(invocationId);
}
};
final IInterimResponseCallback<Object> interimResponseCallback = new IInterimResponseCallback<Object>() {
@Override
public void response(final Object progress) {
invocationCallbackService.interimResponse(invocationId, progress);
}
};
final IInterimRequestCallback<Object, Object> interimRequestCallback = new IInterimRequestCallback<Object, Object>() {
@Override
public void request(final IInterimResponseCallback<Object> callback, final Object question) {
final Object requestId = responseService.register(callback);
invocationCallbackService.interimRequest(invocationId, requestId, question);
}
};
try {
methodInvocationService.invoke(invocationCallback, interimResponseCallback, interimRequestCallback, parameter);
} catch (final Exception e) {
invocationCallback.exeption(e);
}
}
use of org.jowidgets.invocation.service.common.api.ICancelListener in project jo-client-platform by jo-source.
the class InvocationCallbackServiceImpl method registerInvocation.
Object registerInvocation(final IInvocationCallback<?> invocationCallback, final IInterimResponseCallback<?> interimResponseCallback, final IInterimRequestCallback<?, ?> interimRequestCallback, final long timeout, final IInvocationClient invocationClient) {
final Object invocationId = UUID.randomUUID();
final InvocationContext invocationContext = new InvocationContext(invocationCallback, interimResponseCallback, interimRequestCallback, timeout);
if (invocationCallback != null) {
invocationCallback.addCancelListener(new ICancelListener() {
@Override
public void canceled() {
final ICancelService cancelService = invocationClient.getCancelService();
if (cancelService != null) {
cancelService.canceled(invocationId);
}
}
});
}
invocationContexts.put(invocationId, invocationContext);
return invocationId;
}
Aggregations