Class AlgorithmManager

java.lang.Object
com.google.common.util.concurrent.AbstractService
org.yamcs.AbstractProcessorService
org.yamcs.algorithms.AlgorithmManager
All Implemented Interfaces:
com.google.common.util.concurrent.Service, ParameterProcessor, ParameterProvider, ProcessorService

public class AlgorithmManager extends AbstractProcessorService implements ParameterProvider, ProcessorService, ParameterProcessor
Manages the provision of requested parameters that require the execution of one or more XTCE algorithms.

Upon initialization it will scan all algorithms, and schedule any that are to be triggered periodically. OutputParameters of all algorithms will be indexed, so that AlgorithmManager knows what parameters it can provide to the ParameterRequestManager.

Algorithms and any needed algorithms that require earlier execution, will be activated as soon as a request for one of its output parameters is registered.

Algorithm executors are created by AlgorithmExecutorFactory which themselves are created by the AlgorithmEngine. The algorithm engines are registered at server startup using the registerAlgorithmEngine(String, AlgorithmEngine) method. javascript will be automatically registered as well as python if available.