UNPKG

bhive

Version:
176 lines (132 loc) 23.7 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>core/Context.js - Documentation</title> <script src="scripts/prettify/prettify.js"></script> <script src="scripts/prettify/lang-css.js"></script> <!--[if lt IE 9]> <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <link type="text/css" rel="stylesheet" href="styles/prettify.css"> <link type="text/css" rel="stylesheet" href="styles/jsdoc.css"> <script src="scripts/nav.js" defer></script> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <input type="checkbox" id="nav-trigger" class="nav-trigger" /> <label for="nav-trigger" class="navicon-button x"> <div class="navicon"></div> </label> <label for="nav-trigger" class="overlay"></label> <nav > <input type="text" id="nav-search" placeholder="Search" /> <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="AsyncTask.html">AsyncTask</a><ul class='methods'><li data-type='method' style='display: none;'><a href="AsyncTask.html#_close">_close</a></li><li data-type='method' style='display: none;'><a href="AsyncTask.html#_enter">_enter</a></li><li data-type='method' style='display: none;'><a href="AsyncTask.html#_exit">_exit</a></li><li data-type='method' style='display: none;'><a href="AsyncTask.html#_open">_open</a></li><li data-type='method' style='display: none;'><a href="AsyncTask.html#_run">_run</a></li><li data-type='method' style='display: none;'><a href="AsyncTask.html#_tick">_tick</a></li><li data-type='method' style='display: none;'><a href="AsyncTask.html#close">close</a></li><li data-type='method' style='display: none;'><a href="AsyncTask.html#enter">enter</a></li><li data-type='method' style='display: none;'><a href="AsyncTask.html#exit">exit</a></li><li data-type='method' style='display: none;'><a href="AsyncTask.html#open">open</a></li><li data-type='method' style='display: none;'><a href="AsyncTask.html#tick">tick</a></li></ul></li><li><a href="BaseComposite.html">BaseComposite</a><ul class='methods'><li data-type='method' style='display: none;'><a href="BaseComposite.html#_close">_close</a></li><li data-type='method' style='display: none;'><a href="BaseComposite.html#_enter">_enter</a></li><li data-type='method' style='display: none;'><a href="BaseComposite.html#_exit">_exit</a></li><li data-type='method' style='display: none;'><a href="BaseComposite.html#_open">_open</a></li><li data-type='method' style='display: none;'><a href="BaseComposite.html#_run">_run</a></li><li data-type='method' style='display: none;'><a href="BaseComposite.html#_tick">_tick</a></li><li data-type='method' style='display: none;'><a href="BaseComposite.html#close">close</a></li><li data-type='method' style='display: none;'><a href="BaseComposite.html#enter">enter</a></li><li data-type='method' style='display: none;'><a href="BaseComposite.html#exit">exit</a></li><li data-type='method' style='display: none;'><a href="BaseComposite.html#open">open</a></li><li data-type='method' style='display: none;'><a href="BaseComposite.html#run">run</a></li><li data-type='method' style='display: none;'><a href="BaseComposite.html#tick">tick</a></li></ul></li><li><a href="BaseDecorator.html">BaseDecorator</a><ul class='methods'><li data-type='method' style='display: none;'><a href="BaseDecorator.html#_close">_close</a></li><li data-type='method' style='display: none;'><a href="BaseDecorator.html#_enter">_enter</a></li><li data-type='method' style='display: none;'><a href="BaseDecorator.html#_exit">_exit</a></li><li data-type='method' style='display: none;'><a href="BaseDecorator.html#_open">_open</a></li><li data-type='method' style='display: none;'><a href="BaseDecorator.html#_run">_run</a></li><li data-type='method' style='display: none;'><a href="BaseDecorator.html#_tick">_tick</a></li><li data-type='method' style='display: none;'><a href="BaseDecorator.html#close">close</a></li><li data-type='method' style='display: none;'><a href="BaseDecorator.html#enter">enter</a></li><li data-type='method' style='display: none;'><a href="BaseDecorator.html#exit">exit</a></li><li data-type='method' style='display: none;'><a href="BaseDecorator.html#open">open</a></li><li data-type='method' style='display: none;'><a href="BaseDecorator.html#run">run</a></li><li data-type='method' style='display: none;'><a href="BaseDecorator.html#tick">tick</a></li></ul></li><li><a href="BaseNode.html">BaseNode</a><ul class='methods'><li data-type='method' style='display: none;'><a href="BaseNode.html#_close">_close</a></li><li data-type='method' style='display: none;'><a href="BaseNode.html#_enter">_enter</a></li><li data-type='method' style='display: none;'><a href="BaseNode.html#_exit">_exit</a></li><li data-type='method' style='display: none;'><a href="BaseNode.html#_open">_open</a></li><li data-type='method' style='display: none;'><a href="BaseNode.html#_run">_run</a></li><li data-type='method' style='display: none;'><a href="BaseNode.html#_tick">_tick</a></li><li data-type='method' style='display: none;'><a href="BaseNode.html#close">close</a></li><li data-type='method' style='display: none;'><a href="BaseNode.html#enter">enter</a></li><li data-type='method' style='display: none;'><a href="BaseNode.html#exit">exit</a></li><li data-type='method' style='display: none;'><a href="BaseNode.html#open">open</a></li><li data-type='method' style='display: none;'><a href="BaseNode.html#run">run</a></li><li data-type='method' style='display: none;'><a href="BaseNode.html#tick">tick</a></li></ul></li><li><a href="BehaviorTree.html">BehaviorTree</a><ul class='methods'><li data-type='method' style='display: none;'><a href="BehaviorTree.html#tick">tick</a></li></ul></li><li><a href="Board.html">Board</a><ul class='methods'><li data-type='method' style='display: none;'><a href="Board.html#clear">clear</a></li><li data-type='method' style='display: none;'><a href="Board.html#get">get</a></li><li data-type='method' style='display: none;'><a href="Board.html#isEmpty">isEmpty</a></li><li data-type='method' style='display: none;'><a href="Board.html#set">set</a></li><li data-type='method' style='display: none;'><a href="Board.html#toJSON">toJSON</a></li><li data-type='method' style='display: none;'><a href="Board.html#unset">unset</a></li></ul></li><li><a href="Inverter.html">Inverter</a><ul class='methods'><li data-type='method' style='display: none;'><a href="Inverter.html#_close">_close</a></li><li data-type='method' style='display: none;'><a href="Inverter.html#_enter">_enter</a></li><li data-type='method' style='display: none;'><a href="Inverter.html#_exit">_exit</a></li><li data-type='method' style='display: none;'><a href="Inverter.html#_open">_open</a></li><li data-type='method' style='display: none;'><a href="Inverter.html#_run">_run</a></li><li data-type='method' style='display: none;'><a href="Inverter.html#_tick">_tick</a></li><li data-type='method' style='display: none;'><a href="Inverter.html#close">close</a></li><li data-type='method' style='display: none;'><a href="Inverter.html#enter">enter</a></li><li data-type='method' style='display: none;'><a href="Inverter.html#exit">exit</a></li><li data-type='method' style='display: none;'><a href="Inverter.html#open">open</a></li><li data-type='method' style='display: none;'><a href="Inverter.html#run">run</a></li><li data-type='method' style='display: none;'><a href="Inverter.html#tick">tick</a></li></ul></li><li><a href="Logger.html">Logger</a></li><li></li><li><a href="module-BlackBoard-Blackboard.html">Blackboard</a><ul class='methods'><li data-type='method' style='display: none;'><a href="module-BlackBoard-Blackboard.html#createTree">createTree</a></li><li data-type='method' style='display: none;'><a href="module-BlackBoard-Blackboard.html#get">get</a></li><li data-type='method' style='display: none;'><a href="module-BlackBoard-Blackboard.html#listTree">listTree</a></li><li data-type='method' style='display: none;'><a href="module-BlackBoard-Blackboard.html#removeTree">removeTree</a></li><li data-type='method' style='display: none;'><a href="module-BlackBoard-Blackboard.html#set">set</a></li><li data-type='method' style='display: none;'><a href="module-BlackBoard-Blackboard.html#toJSON">toJSON</a></li><li data-type='method' style='display: none;'><a href="module-BlackBoard-Blackboard.html#tree">tree</a></li></ul></li><li></li><li><a href="module-Context-Context.html">Context</a><ul class='methods'><li data-type='method' style='display: none;'><a href="module-Context-Context.html#closeNode">closeNode</a></li><li data-type='method' style='display: none;'><a href="module-Context-Context.html#enterNode">enterNode</a></li><li data-type='method' style='display: none;'><a href="module-Context-Context.html#exitNode">exitNode</a></li><li data-type='method' style='display: none;'><a href="module-Context-Context.html#openNode">openNode</a></li><li data-type='method' style='display: none;'><a href="module-Context-Context.html#runNode">runNode</a></li></ul></li><li><a href="NodeBoard.html">NodeBoard</a></li><li><a href="Priority.html">Priority</a><ul class='methods'><li data-type='method' style='display: none;'><a href="Priority.html#_close">_close</a></li><li data-type='method' style='display: none;'><a href="Priority.html#_enter">_enter</a></li><li data-type='method' style='display: none;'><a href="Priority.html#_exit">_exit</a></li><li data-type='method' style='display: none;'><a href="Priority.html#_open">_open</a></li><li data-type='method' style='display: none;'><a href="Priority.html#_run">_run</a></li><li data-type='method' style='display: none;'><a href="Priority.html#_tick">_tick</a></li><li data-type='method' style='display: none;'><a href="Priority.html#close">close</a></li><li data-type='method' style='display: none;'><a href="Priority.html#enter">enter</a></li><li data-type='method' style='display: none;'><a href="Priority.html#exit">exit</a></li><li data-type='method' style='display: none;'><a href="Priority.html#open">open</a></li><li data-type='method' style='display: none;'><a href="Priority.html#run">run</a></li><li data-type='method' style='display: none;'><a href="Priority.html#tick">tick</a></li></ul></li><li></li><li><a href="Registry.html">Registry</a><ul class='methods'><li data-type='method' style='display: none;'><a href="Registry.html#getNode">getNode</a></li><li data-type='method' style='display: none;'><a href="Registry.html#getNodeTypes">getNodeTypes</a></li><li data-type='method' style='display: none;'><a href="Registry.html#merge">merge</a></li><li data-type='method' style='display: none;'><a href="Registry.html#register">register</a></li></ul></li><li></li><li><a href="Repeater.html">Repeater</a><ul class='methods'><li data-type='method' style='display: none;'><a href="Repeater.html#open">open</a></li><li data-type='method' style='display: none;'><a href="Repeater.html#run">run</a></li></ul></li><li><a href="RewindWhenFailure.html">RewindWhenFailure</a><ul class='methods'><li data-type='method' style='display: none;'><a href="RewindWhenFailure.html#_close">_close</a></li><li data-type='method' style='display: none;'><a href="RewindWhenFailure.html#_enter">_enter</a></li><li data-type='method' style='display: none;'><a href="RewindWhenFailure.html#_exit">_exit</a></li><li data-type='method' style='display: none;'><a href="RewindWhenFailure.html#_open">_open</a></li><li data-type='method' style='display: none;'><a href="RewindWhenFailure.html#_run">_run</a></li><li data-type='method' style='display: none;'><a href="RewindWhenFailure.html#_tick">_tick</a></li><li data-type='method' style='display: none;'><a href="RewindWhenFailure.html#close">close</a></li><li data-type='method' style='display: none;'><a href="RewindWhenFailure.html#enter">enter</a></li><li data-type='method' style='display: none;'><a href="RewindWhenFailure.html#exit">exit</a></li><li data-type='method' style='display: none;'><a href="RewindWhenFailure.html#open">open</a></li><li data-type='method' style='display: none;'><a href="RewindWhenFailure.html#run">run</a></li><li data-type='method' style='display: none;'><a href="RewindWhenFailure.html#tick">tick</a></li></ul></li><li><a href="RewindWhenRunning.html">RewindWhenRunning</a><ul class='methods'><li data-type='method' style='display: none;'><a href="RewindWhenRunning.html#_close">_close</a></li><li data-type='method' style='display: none;'><a href="RewindWhenRunning.html#_enter">_enter</a></li><li data-type='method' style='display: none;'><a href="RewindWhenRunning.html#_exit">_exit</a></li><li data-type='method' style='display: none;'><a href="RewindWhenRunning.html#_open">_open</a></li><li data-type='method' style='display: none;'><a href="RewindWhenRunning.html#_run">_run</a></li><li data-type='method' style='display: none;'><a href="RewindWhenRunning.html#_tick">_tick</a></li><li data-type='method' style='display: none;'><a href="RewindWhenRunning.html#close">close</a></li><li data-type='method' style='display: none;'><a href="RewindWhenRunning.html#enter">enter</a></li><li data-type='method' style='display: none;'><a href="RewindWhenRunning.html#exit">exit</a></li><li data-type='method' style='display: none;'><a href="RewindWhenRunning.html#open">open</a></li><li data-type='method' style='display: none;'><a href="RewindWhenRunning.html#run">run</a></li><li data-type='method' style='display: none;'><a href="RewindWhenRunning.html#tick">tick</a></li></ul></li><li><a href="Sequence.html">Sequence</a><ul class='methods'><li data-type='method' style='display: none;'><a href="Sequence.html#_close">_close</a></li><li data-type='method' style='display: none;'><a href="Sequence.html#_enter">_enter</a></li><li data-type='method' style='display: none;'><a href="Sequence.html#_exit">_exit</a></li><li data-type='method' style='display: none;'><a href="Sequence.html#_open">_open</a></li><li data-type='method' style='display: none;'><a href="Sequence.html#_run">_run</a></li><li data-type='method' style='display: none;'><a href="Sequence.html#_tick">_tick</a></li><li data-type='method' style='display: none;'><a href="Sequence.html#close">close</a></li><li data-type='method' style='display: none;'><a href="Sequence.html#enter">enter</a></li><li data-type='method' style='display: none;'><a href="Sequence.html#exit">exit</a></li><li data-type='method' style='display: none;'><a href="Sequence.html#open">open</a></li><li data-type='method' style='display: none;'><a href="Sequence.html#run">run</a></li><li data-type='method' style='display: none;'><a href="Sequence.html#tick">tick</a></li></ul></li><li><a href="Task.html">Task</a><ul class='methods'><li data-type='method' style='display: none;'><a href="Task.html#_close">_close</a></li><li data-type='method' style='display: none;'><a href="Task.html#_enter">_enter</a></li><li data-type='method' style='display: none;'><a href="Task.html#_exit">_exit</a></li><li data-type='method' style='display: none;'><a href="Task.html#_open">_open</a></li><li data-type='method' style='display: none;'><a href="Task.html#_run">_run</a></li><li data-type='method' style='display: none;'><a href="Task.html#_tick">_tick</a></li><li data-type='method' style='display: none;'><a href="Task.html#close">close</a></li><li data-type='method' style='display: none;'><a href="Task.html#enter">enter</a></li><li data-type='method' style='display: none;'><a href="Task.html#exit">exit</a></li><li data-type='method' style='display: none;'><a href="Task.html#open">open</a></li><li data-type='method' style='display: none;'><a href="Task.html#tick">tick</a></li></ul></li><li></li><li><a href="TreeBoard.html">TreeBoard</a><ul class='methods'><li data-type='method' style='display: none;'><a href="TreeBoard.html#clear">clear</a></li><li data-type='method' style='display: none;'><a href="TreeBoard.html#createNode">createNode</a></li><li data-type='method' style='display: none;'><a href="TreeBoard.html#gc">gc</a></li><li data-type='method' style='display: none;'><a href="TreeBoard.html#get">get</a></li><li data-type='method' style='display: none;'><a href="TreeBoard.html#isEmpty">isEmpty</a></li><li data-type='method' style='display: none;'><a href="TreeBoard.html#listNode">listNode</a></li><li data-type='method' style='display: none;'><a href="TreeBoard.html#node">node</a></li><li data-type='method' style='display: none;'><a href="TreeBoard.html#removeNode">removeNode</a></li><li data-type='method' style='display: none;'><a href="TreeBoard.html#set">set</a></li><li data-type='method' style='display: none;'><a href="TreeBoard.html#toJSON">toJSON</a></li><li data-type='method' style='display: none;'><a href="TreeBoard.html#unset">unset</a></li></ul></li><li><a href="TreeBuilder.html">TreeBuilder</a></li><li></li><li><a href="UntilFailure.html">UntilFailure</a><ul class='methods'><li data-type='method' style='display: none;'><a href="UntilFailure.html#_close">_close</a></li><li data-type='method' style='display: none;'><a href="UntilFailure.html#_enter">_enter</a></li><li data-type='method' style='display: none;'><a href="UntilFailure.html#_exit">_exit</a></li><li data-type='method' style='display: none;'><a href="UntilFailure.html#_open">_open</a></li><li data-type='method' style='display: none;'><a href="UntilFailure.html#_run">_run</a></li><li data-type='method' style='display: none;'><a href="UntilFailure.html#_tick">_tick</a></li><li data-type='method' style='display: none;'><a href="UntilFailure.html#close">close</a></li><li data-type='method' style='display: none;'><a href="UntilFailure.html#enter">enter</a></li><li data-type='method' style='display: none;'><a href="UntilFailure.html#exit">exit</a></li><li data-type='method' style='display: none;'><a href="UntilFailure.html#open">open</a></li><li data-type='method' style='display: none;'><a href="UntilFailure.html#run">run</a></li><li data-type='method' style='display: none;'><a href="UntilFailure.html#tick">tick</a></li></ul></li><li><a href="UntilSuccess.html">UntilSuccess</a><ul class='methods'><li data-type='method' style='display: none;'><a href="UntilSuccess.html#_close">_close</a></li><li data-type='method' style='display: none;'><a href="UntilSuccess.html#_enter">_enter</a></li><li data-type='method' style='display: none;'><a href="UntilSuccess.html#_exit">_exit</a></li><li data-type='method' style='display: none;'><a href="UntilSuccess.html#_open">_open</a></li><li data-type='method' style='display: none;'><a href="UntilSuccess.html#_run">_run</a></li><li data-type='method' style='display: none;'><a href="UntilSuccess.html#_tick">_tick</a></li><li data-type='method' style='display: none;'><a href="UntilSuccess.html#close">close</a></li><li data-type='method' style='display: none;'><a href="UntilSuccess.html#enter">enter</a></li><li data-type='method' style='display: none;'><a href="UntilSuccess.html#exit">exit</a></li><li data-type='method' style='display: none;'><a href="UntilSuccess.html#open">open</a></li><li data-type='method' style='display: none;'><a href="UntilSuccess.html#run">run</a></li><li data-type='method' style='display: none;'><a href="UntilSuccess.html#tick">tick</a></li></ul></li></ul><h3>Modules</h3><ul><li><a href="module-BlackBoard.html">BlackBoard</a></li><li><a href="module-Context.html">Context</a></li></ul><h3>Tutorials</h3><ul><li><a href="tutorial-blackboard.html">Blackboard</a></li></ul><h3>Global</h3><ul><li><a href="global.html#BehaviorTreeOptions">BehaviorTreeOptions</a></li><li><a href="global.html#Constant">Constant</a></li><li><a href="global.html#defaultBehaviorTreeOptions">defaultBehaviorTreeOptions</a></li><li><a href="global.html#LogFunction">LogFunction</a></li><li><a href="global.html#NodeCategory">NodeCategory</a></li><li><a href="global.html#NodeData">NodeData</a></li><li><a href="global.html#NodeDefinition">NodeDefinition</a></li><li><a href="global.html#NodeId">NodeId</a></li><li><a href="global.html#NodeStatus">NodeStatus</a></li><li><a href="global.html#NodeType">NodeType</a></li><li><a href="global.html#Registers">Registers</a></li><li><a href="global.html#severities">severities</a></li><li><a href="global.html#SYSLOG_LEVEL">SYSLOG_LEVEL</a></li><li><a href="global.html#TreeDefinition">TreeDefinition</a></li><li><a href="global.html#workerConfig">workerConfig</a></li></ul> </nav> <div id="main"> <h1 class="page-title">core/Context.js</h1> <section> <article> <pre class="prettyprint source linenums"><code>const Logger = require('../utils/Logger'); /** @module Context */ /** * @typedef {object} RunLog * @property {object} context * @property {NodeData} returnNode */ /** * Class Context **/ class Context { /** * @constructor * @param {BehaviorTree} tree * @param {Blackboard} blackboard * @param {BehaviorTreeOptions} [options] */ constructor(tree, blackboard, options = {}) { /** @type {BehaviorTree} * @deprecated * @description use behaviorTree instead * */ this.tree = tree; this.behaviorTree = tree; /** * @type {Blackboard} * @private */ this._blackboard = blackboard; /** @type {BehaviorTreeOptions} */ this.options = options; /** @type {BaseNode[]} */ this.activeNodes = []; /** @type {Logger} */ this.logger = new Logger(this, this.options.logger); } /** * @type {Blackboard} */ get blackboard() { return this._blackboard; } set blackboard(blackboard) { this._blackboard = blackboard; } /** * @type {TreeBoard} */ get treeBoard() { return this._blackboard.tree(this.behaviorTree); } /** * @param {BaseNode} node - caller node **/ enterNode(node) { this.logger.DEBUG_debug(' '.repeat(this.activeNodes.length) + `ENTER \t${node.name} - ${node.type} - ${node.id}`); } /** * @param {BaseNode} node - caller node **/ openNode(node) { this.treeBoard.createNode(node); this.treeBoard.node(node).openNode(); this.activeNodes.push(node); this.logger.DEBUG_debug(' '.repeat(this.activeNodes.length) + `OPEN \t${node.name} - ${node.type} - ${node.id}`); } /** * @param {BaseNode} node - caller node **/ runNode(node) { this.logger.DEBUG_debug(' '.repeat(this.activeNodes.length) + `RUN \t${node.name} - ${node.type} - ${node.id}`); } /** * @param {BaseNode} node - caller node **/ closeNode(node) { this.treeBoard.node(node).closeNode(); this.logger.DEBUG_debug(' '.repeat(this.activeNodes.length) + `CLOSE \t${node.name} - ${node.type} - ${node.id}`); this.activeNodes.pop(); } /** * @param {BaseNode} node - caller node **/ exitNode(node) { this.logger.DEBUG_debug(' '.repeat(this.activeNodes.length) + `EXIT \t${node.name} - ${node.type} - ${node.id}`); } } module.exports = Context; </code></pre> </article> </section> </div> <br class="clear"> <footer> Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Mon Nov 04 2019 17:31:31 GMT+0900 (Korean Standard Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme. </footer> <script>prettyPrint();</script> <script src="scripts/polyfill.js"></script> <script src="scripts/linenumber.js"></script> <script src="scripts/search.js" defer></script> <script src="scripts/collapse.js" defer></script> </body> </html>