registerRunnable<T> method

bool registerRunnable<T>(
  1. String functionName,
  2. Function function,
  3. T returnType,
  4. List parameterTypes,
)

Implementation

bool registerRunnable<T>(String functionName, Function function, T returnType, List<dynamic> parameterTypes)
{
    if(_registeredRunnables.containsKey(functionName))
    {
        Logger.logFatal("Failed to register function \"" + functionName + "\" in Module \"" + this._entityName + "\". Function already registered before.");
        return false;
    }


    if(!RemoteFunctionRunnable.isDataTypeSupported(returnType))
    {
        Logger.logFatal("Failed to register function \"" + functionName + "\" in Module \"" + this._entityName  +
            "\". Return type \"" + returnType.runtimeType.toString() + "\" is no CLAID data type and hence not supported.");
        return false;
    }

    for(int i = 0; i < parameterTypes.length; i++)
    {
        if(!RemoteFunctionRunnable.isDataTypeSupported(parameterTypes[i]))
        {
            Logger.logFatal("Failed to register function \"" + functionName + "\" of entity \"" + this._entityName + ". Parameter type \"" +
            parameterTypes[i].runtimeType.toString() + "\" is no CLAID data type and hence not supported.");
            return false;
        }
    }

    RemoteFunctionRunnable runnable = new RemoteFunctionRunnable<T>(function, returnType, parameterTypes);

    return this.addRunnable(functionName, runnable);
}