51 lines
1.2 KiB
TypeScript
51 lines
1.2 KiB
TypeScript
/**
|
|
* @author Martin Karkowski
|
|
* @email m.karkowski@zema.de
|
|
* @create date 2022-01-05 12:46:57
|
|
* @modify date 2022-01-06 07:37:29
|
|
* @desc [description]
|
|
*/
|
|
|
|
import {
|
|
INopeCore,
|
|
INopeDispatcher,
|
|
TValidAsssignmentChecker,
|
|
ValidDefaultSelectors,
|
|
} from "../../types/nope";
|
|
|
|
/**
|
|
* A Helper Function, to generate the Basic selector Functions.
|
|
*
|
|
* @author M.Karkowski
|
|
* @export
|
|
* @param {ValidDefaultSelectors} selector
|
|
* @param {INopeDispatcher} core
|
|
* @return {*}
|
|
*/
|
|
export function generateAssignmentChecker(
|
|
selector: ValidDefaultSelectors,
|
|
core: INopeCore
|
|
): TValidAsssignmentChecker {
|
|
switch (selector) {
|
|
default:
|
|
case "first":
|
|
case "cpu-usage":
|
|
case "free-ram":
|
|
return async () => {
|
|
return true;
|
|
};
|
|
case "dispatcher":
|
|
// Our selector compares the dispatcher - id
|
|
return async (module, usedDispatcher) => {
|
|
return usedDispatcher.id == core.id;
|
|
};
|
|
case "host":
|
|
// Our selector compares the host-name:
|
|
// 1. Get the current Host name of our dispatcher
|
|
const host = core.connectivityManager.info.host.name;
|
|
return async (module, usedDispatcher) => {
|
|
return usedDispatcher.host.name == host;
|
|
};
|
|
}
|
|
}
|