/* * $Id$ * * Copyright 2008 Glencoe Software, Inc. All rights reserved. * Use is subject to license terms supplied in LICENSE.txt * */ package ome.services.blitz.util; import java.util.concurrent.Callable; import ome.api.ServiceInterface; import ome.services.throttling.Task; import omero.util.IceMapper; /** * Single-point of execution for all AMD blitz calls. * * @author Josh Moore, josh at glencoesoftware.com * @since 3.0-Beta4 */ public interface BlitzExecutor { /** * Uses the given {@link IceMethodInvoker} to make the method call. All * arguments are passed directly into the invoker, and the return value from * the invoker is passed to the user. */ void callInvokerOnRawArgs(ServiceInterface service, IceMethodInvoker invoker, Object __cb, Ice.Current __current, Object... args); /** * Passes the given arguments to {@link IceMethodInvoker} with the * assumption that all conversion from omero.* to ome.* has taken place. * Similarly, the {@link IceMapper} instance will be used to map the * return value from ome.* to omero.*. */ void callInvokerWithMappedArgs(ServiceInterface service, IceMethodInvoker invoker, IceMapper mapper, Object __cb, Ice.Current __current, Object... args); void runnableCall(Ice.Current __current, Task runnable); <R> void safeRunnableCall(Ice.Current __current, Object cb, boolean isVoid, Callable<R> callable); }