pandora-hub
Version:
pandora.js messenge hub
36 lines • 1.37 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const ObjectConsumer_1 = require("./ObjectConsumer");
class ConsumerManager {
constructor(hubClient, providerManager) {
this.hubClient = hubClient;
this.consumerCache = new Map;
this.providerManager = providerManager;
}
/**
* Get a Consumer by an ObjectDescription
* @param {ObjectDescription} objectDescription
* @param {ConsumerExtInfo} extInfo
* @return {ObjectConsumer}
*/
getConsumer(objectDescription, extInfo) {
const key = objectDescription.name + ':' + objectDescription.tag;
if (!this.consumerCache.has(key)) {
const consumer = new ObjectConsumer_1.ObjectConsumer(objectDescription, this.hubClient, this.providerManager, extInfo);
this.consumerCache.set(key, consumer);
return consumer;
}
return this.consumerCache.get(key);
}
/**
* get an Object Proxy by an ObjectDescription
* @param {ObjectDescription} objectDescription
* @param {ConsumerExtInfo} extInfo
* @return {Promise<T & DefaultObjectProxy>}
*/
async getProxy(objectDescription, extInfo) {
return this.getConsumer(objectDescription, extInfo).getProxy();
}
}
exports.ConsumerManager = ConsumerManager;
//# sourceMappingURL=ConsumerManager.js.map