nope/lib/dispatcher/InstanceManager/assignmentCheckers.ts

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;
};
}
}