package org.jactr.core.module.asynch.delegate; import java.util.concurrent.Future; import org.jactr.core.chunk.IChunk; import org.jactr.core.module.asynch.IAsynchronousModule; import org.jactr.core.production.condition.ChunkPattern; import org.jactr.core.production.request.IRequest; /* * default logging */ /** * interface for module processing delegates that operate asynchronously * @author harrison * */ public interface IAsynchronousModuleDelegate<M extends IAsynchronousModule, R> { /** * get the module this is installed into * @return */ public M getModule(); /** * everything is based on a {@link ChunkPattern}. This will start the * processing and return some result, usually an {@link IChunk} * @param request */ public Future<R> process(IRequest request, double processTime, Object ... parameters); }