Add node add/remove/enable/disable apis to registry

This commit is contained in:
Nick O'Leary
2014-08-04 17:12:54 +01:00
parent 495dd3f2e0
commit 960d15491d
8 changed files with 410 additions and 68 deletions

View File

@@ -51,6 +51,26 @@ function init(_settings,storage) {
registry.init(_settings);
}
function removeNode(info) {
var nodeInfo = registry.getNodeInfo(info);
var inUse = {};
flows.each(function(n) {
inUse[n.type] = (inUse[n.type]||0)+1;
});
var nodesInUse = [];
nodeInfo.types.forEach(function(t) {
if (inUse[t]) {
nodesInUse.push(t);
}
});
if (nodesInUse.length > 0) {
var msg = nodesInUse.join(", ");
throw Error("Type in use: "+msg);
}
return registry.removeNode(nodeInfo.id);
}
module.exports = {
// Lifecycle
init: init,
@@ -60,6 +80,9 @@ module.exports = {
createNode: createNode,
getNode: flows.get,
addNode: registry.addNode,
removeNode: removeNode,
// Node type registry
registerType: registerType,
getType: registry.get,