### Table of Contents - [constructor](#constructor) - [start](#start) - [bind](#bind) - [queue](#queue) - [get](#get) - [delete](#delete) - [isValidPort](#isvalidport) - [create](#create) - [wait](#wait) - [getNextMessage](#getnextmessage) ## constructor [portManager.js:41-44](https://github.com/primea/js-primea-hypervisor/blob/9b7a855ce9b773c9162179ef6cdb3c70739711f0/portManager.js#L41-L44 "Source code on GitHub") The port manager manages the the ports. This inculdes creation, deletion fetching and waiting on ports **Parameters** - `opts` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** - `opts.state` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** - `opts.entryPort` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** - `opts.parentPort` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** - `opts.hypervisor` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** - `opts.exoInterface` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** ## start [portManager.js:51-63](https://github.com/primea/js-primea-hypervisor/blob/9b7a855ce9b773c9162179ef6cdb3c70739711f0/portManager.js#L51-L63 "Source code on GitHub") starts the port manager. This fetchs the ports from the state and maps them to thier names Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)** ## bind [portManager.js:75-79](https://github.com/primea/js-primea-hypervisor/blob/9b7a855ce9b773c9162179ef6cdb3c70739711f0/portManager.js#L75-L79 "Source code on GitHub") binds a port to a name **Parameters** - `port` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** the port to bind - `name` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** the name of the port ## queue [portManager.js:85-87](https://github.com/primea/js-primea-hypervisor/blob/9b7a855ce9b773c9162179ef6cdb3c70739711f0/portManager.js#L85-L87 "Source code on GitHub") queues a message on a port **Parameters** - `message` **Message** ## get [portManager.js:94-96](https://github.com/primea/js-primea-hypervisor/blob/9b7a855ce9b773c9162179ef6cdb3c70739711f0/portManager.js#L94-L96 "Source code on GitHub") gets a port given it's name **Parameters** - `name` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** Returns **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** ## delete [portManager.js:102-106](https://github.com/primea/js-primea-hypervisor/blob/9b7a855ce9b773c9162179ef6cdb3c70739711f0/portManager.js#L102-L106 "Source code on GitHub") deletes a port given its name **Parameters** - `name` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** ## isValidPort [portManager.js:113-115](https://github.com/primea/js-primea-hypervisor/blob/9b7a855ce9b773c9162179ef6cdb3c70739711f0/portManager.js#L113-L115 "Source code on GitHub") check if a port object is still valid **Parameters** - `port` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** Returns **[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** ## create [portManager.js:122-146](https://github.com/primea/js-primea-hypervisor/blob/9b7a855ce9b773c9162179ef6cdb3c70739711f0/portManager.js#L122-L146 "Source code on GitHub") creates a new Port given the container type **Parameters** - `type` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** Returns **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** the newly created port ## wait [portManager.js:155-167](https://github.com/primea/js-primea-hypervisor/blob/9b7a855ce9b773c9162179ef6cdb3c70739711f0/portManager.js#L155-L167 "Source code on GitHub") waits till all ports have reached a threshold tick count **Parameters** - `threshold` **Integer** the number of ticks to wait - `fromPort` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** the port requesting the wait (optional, default `this.entryPort`) - `ports` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)** the ports to wait on (optional, default `[...this._portMap]`) Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)** ## getNextMessage [portManager.js:174-187](https://github.com/primea/js-primea-hypervisor/blob/9b7a855ce9b773c9162179ef6cdb3c70739711f0/portManager.js#L174-L187 "Source code on GitHub") gets the next canonical message given the an array of ports to choose from **Parameters** - `ports` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)** (optional, default `[...this._portMap]`) Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)**