| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- 'use strict'
- /**
- * Topic Alias receiving manager
- * This holds alias to topic map
- * @param {Number} [max] - topic alias maximum entries
- */
- function TopicAliasRecv (max) {
- if (!(this instanceof TopicAliasRecv)) {
- return new TopicAliasRecv(max)
- }
- this.aliasToTopic = {}
- this.max = max
- }
- /**
- * Insert or update topic - alias entry.
- * @param {String} [topic] - topic
- * @param {Number} [alias] - topic alias
- * @returns {Boolean} - if success return true otherwise false
- */
- TopicAliasRecv.prototype.put = function (topic, alias) {
- if (alias === 0 || alias > this.max) {
- return false
- }
- this.aliasToTopic[alias] = topic
- this.length = Object.keys(this.aliasToTopic).length
- return true
- }
- /**
- * Get topic by alias
- * @param {String} [topic] - topic
- * @returns {Number} - if mapped topic exists return topic alias, otherwise return undefined
- */
- TopicAliasRecv.prototype.getTopicByAlias = function (alias) {
- return this.aliasToTopic[alias]
- }
- /**
- * Clear all entries
- */
- TopicAliasRecv.prototype.clear = function () {
- this.aliasToTopic = {}
- }
- module.exports = TopicAliasRecv
|