class TransferFunctionSetting(val className: String, val language: Value, templateInstance: Option[Int], threadFactory: ThreadFactory)
The settings for the transfer function are retrieved from the configuration (DB, XML, text file) and passed to the ComputingElement.
Objects of this class contain all the information to run the transfer function independently from the supported programming language (@see TransferFunctionLanguage).
At the present there 3 possible implementations of the transfer function in scala, java or python.
Java implementation requires to provide a java-style interface to developers for which we need to convert scala data structure to/from java. Scala implementations of the TF are therefore more performant (in principle).
For python TFs, we use jep (https://github.com/ninia/jep) that provides interoperability between java and python. For the python TFs, a java class is always loaded, PythonExecutorTF, that delegates to the python class whose name is in the className property
Value parameters
className:
The name of the java/scala/python class to run
language:
the programming language used to implement the TF
templateInstance:
the instance of the template if defined; if empty the ASCE is not generated out of a template
threadFactory:
The thread factory to async. run init and shutdown on the user provided TF object
This is needed because the name of the java class for running python TF is not passed in the constructor but is needed at least for meaningful log messages