All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jadex.micro.mandelbrot.display.IDisplayService Maven / Gradle / Ivy

The newest version!
package jadex.micro.mandelbrot.display;

import java.util.List;

import jadex.future.IFuture;
import jadex.future.ISubscriptionIntermediateFuture;
import jadex.micro.mandelbrot.model.AreaData;
import jadex.micro.mandelbrot.model.IFractalAlgorithm;
import jadex.micro.mandelbrot.model.PartDataChunk;
import jadex.micro.mandelbrot.model.ProgressData;
import jadex.providedservice.annotation.Security;
import jadex.providedservice.annotation.Service;

/**
 *  Service for displaying the result of a calculation. 
 */
@Service
@Security(roles=Security.UNRESTRICTED)
public interface IDisplayService
{
	/**
	 *  Display the result of a calculation.
	 */
	public IFuture displayResult(AreaData result);

	/**
	 *  Display intermediate calculation results.
	 */
	public IFuture displayIntermediateResult(ProgressData progress);
	
	/**
	 *  Display intermediate calculation results.
	 */
	public IFuture displayIntermediateResult(PartDataChunk progress);
	
	/**
	 *  Subscribe to display events.
	 *  Can receive AreaData, ProgressData or PartDataChunk
	 */
//	@Timeout(Timeout.NONE)
	public ISubscriptionIntermediateFuture subscribeToDisplayUpdates(String displayid);
	
	/**
	 *  Get info about an algorithm (for web). todo: move?!
	 *  @return The info.
	 */
	public IFuture getAlgorithmDefaultSettings(Class clazz);
	
	/**
	 *  Get available algorithms.
	 *  @return The algos.
	 */
	public IFuture>> getAlgorithms();
}