/*
GeoGebra - Dynamic Mathematics for Everyone
http://www.geogebra.org
This file is part of GeoGebra.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation.
*/
package org.geogebra.common.kernel;
/**
* Interface for classes that can call CAS asynchronously and receive callbacks
*
* @author Zbynek Konecny
*/
public interface AsynchronousCommand {
/**
* This flag switches using asynchronous CAS on or off in Desktop, has no
* effect in Web.
*/
final public boolean USE_ASYNCHRONOUS = false;
/**
* @param output
* CAS output as GeoGebra string
* @param requestID
* request number
*/
public void handleCASoutput(String output, int requestID);
/**
* @param exception
* exception caused by given request
* @param requestID
* request number
*/
public void handleException(Throwable exception, int requestID);
/**
* @return whether caching is allowed for this command
*/
public boolean useCacheing();
/**
* @return input for CAS as GeoGebraCAS string
*/
public String getCasInput();
/**
* @return kernel
*/
public Kernel getKernel();
}