"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Subscription = void 0; var _logger = _interopRequireDefault(require("../logger")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } class Subscription { // It is query condition eg query.where constructor(className, query, queryHash) { this.className = className; this.query = query; this.hash = queryHash; this.clientRequestIds = new Map(); } addClientSubscription(clientId, requestId) { if (!this.clientRequestIds.has(clientId)) { this.clientRequestIds.set(clientId, []); } const requestIds = this.clientRequestIds.get(clientId); requestIds.push(requestId); } deleteClientSubscription(clientId, requestId) { const requestIds = this.clientRequestIds.get(clientId); if (typeof requestIds === 'undefined') { _logger.default.error('Can not find client %d to delete', clientId); return; } const index = requestIds.indexOf(requestId); if (index < 0) { _logger.default.error('Can not find client %d subscription %d to delete', clientId, requestId); return; } requestIds.splice(index, 1); // Delete client reference if it has no subscription if (requestIds.length == 0) { this.clientRequestIds.delete(clientId); } } hasSubscribingClient() { return this.clientRequestIds.size > 0; } } exports.Subscription = Subscription; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9nZ2VyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJTdWJzY3JpcHRpb24iLCJjb25zdHJ1Y3RvciIsImNsYXNzTmFtZSIsInF1ZXJ5IiwicXVlcnlIYXNoIiwiaGFzaCIsImNsaWVudFJlcXVlc3RJZHMiLCJNYXAiLCJhZGRDbGllbnRTdWJzY3JpcHRpb24iLCJjbGllbnRJZCIsInJlcXVlc3RJZCIsImhhcyIsInNldCIsInJlcXVlc3RJZHMiLCJnZXQiLCJwdXNoIiwiZGVsZXRlQ2xpZW50U3Vic2NyaXB0aW9uIiwibG9nZ2VyIiwiZXJyb3IiLCJpbmRleCIsImluZGV4T2YiLCJzcGxpY2UiLCJsZW5ndGgiLCJkZWxldGUiLCJoYXNTdWJzY3JpYmluZ0NsaWVudCIsInNpemUiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL0xpdmVRdWVyeS9TdWJzY3JpcHRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGxvZ2dlciBmcm9tICcuLi9sb2dnZXInO1xuXG5leHBvcnQgdHlwZSBGbGF0dGVuZWRPYmplY3REYXRhID0geyBbYXR0cjogc3RyaW5nXTogYW55IH07XG5leHBvcnQgdHlwZSBRdWVyeURhdGEgPSB7IFthdHRyOiBzdHJpbmddOiBhbnkgfTtcblxuY2xhc3MgU3Vic2NyaXB0aW9uIHtcbiAgLy8gSXQgaXMgcXVlcnkgY29uZGl0aW9uIGVnIHF1ZXJ5LndoZXJlXG4gIHF1ZXJ5OiBRdWVyeURhdGE7XG4gIGNsYXNzTmFtZTogc3RyaW5nO1xuICBoYXNoOiBzdHJpbmc7XG4gIGNsaWVudFJlcXVlc3RJZHM6IE9iamVjdDtcblxuICBjb25zdHJ1Y3RvcihjbGFzc05hbWU6IHN0cmluZywgcXVlcnk6IFF1ZXJ5RGF0YSwgcXVlcnlIYXNoOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNsYXNzTmFtZSA9IGNsYXNzTmFtZTtcbiAgICB0aGlzLnF1ZXJ5ID0gcXVlcnk7XG4gICAgdGhpcy5oYXNoID0gcXVlcnlIYXNoO1xuICAgIHRoaXMuY2xpZW50UmVxdWVzdElkcyA9IG5ldyBNYXAoKTtcbiAgfVxuXG4gIGFkZENsaWVudFN1YnNjcmlwdGlvbihjbGllbnRJZDogbnVtYmVyLCByZXF1ZXN0SWQ6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICghdGhpcy5jbGllbnRSZXF1ZXN0SWRzLmhhcyhjbGllbnRJZCkpIHtcbiAgICAgIHRoaXMuY2xpZW50UmVxdWVzdElkcy5zZXQoY2xpZW50SWQsIFtdKTtcbiAgICB9XG4gICAgY29uc3QgcmVxdWVzdElkcyA9IHRoaXMuY2xpZW50UmVxdWVzdElkcy5nZXQoY2xpZW50SWQpO1xuICAgIHJlcXVlc3RJZHMucHVzaChyZXF1ZXN0SWQpO1xuICB9XG5cbiAgZGVsZXRlQ2xpZW50U3Vic2NyaXB0aW9uKGNsaWVudElkOiBudW1iZXIsIHJlcXVlc3RJZDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgcmVxdWVzdElkcyA9IHRoaXMuY2xpZW50UmVxdWVzdElkcy5nZXQoY2xpZW50SWQpO1xuICAgIGlmICh0eXBlb2YgcmVxdWVzdElkcyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGxvZ2dlci5lcnJvcignQ2FuIG5vdCBmaW5kIGNsaWVudCAlZCB0byBkZWxldGUnLCBjbGllbnRJZCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaW5kZXggPSByZXF1ZXN0SWRzLmluZGV4T2YocmVxdWVzdElkKTtcbiAgICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICBsb2dnZXIuZXJyb3IoJ0NhbiBub3QgZmluZCBjbGllbnQgJWQgc3Vic2NyaXB0aW9uICVkIHRvIGRlbGV0ZScsIGNsaWVudElkLCByZXF1ZXN0SWQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICByZXF1ZXN0SWRzLnNwbGljZShpbmRleCwgMSk7XG4gICAgLy8gRGVsZXRlIGNsaWVudCByZWZlcmVuY2UgaWYgaXQgaGFzIG5vIHN1YnNjcmlwdGlvblxuICAgIGlmIChyZXF1ZXN0SWRzLmxlbmd0aCA9PSAwKSB7XG4gICAgICB0aGlzLmNsaWVudFJlcXVlc3RJZHMuZGVsZXRlKGNsaWVudElkKTtcbiAgICB9XG4gIH1cblxuICBoYXNTdWJzY3JpYmluZ0NsaWVudCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jbGllbnRSZXF1ZXN0SWRzLnNpemUgPiAwO1xuICB9XG59XG5cbmV4cG9ydCB7IFN1YnNjcmlwdGlvbiB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFBK0IsU0FBQUQsdUJBQUFFLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFLL0IsTUFBTUcsWUFBWSxDQUFDO0VBQ2pCOztFQU1BQyxXQUFXQSxDQUFDQyxTQUFpQixFQUFFQyxLQUFnQixFQUFFQyxTQUFpQixFQUFFO0lBQ2xFLElBQUksQ0FBQ0YsU0FBUyxHQUFHQSxTQUFTO0lBQzFCLElBQUksQ0FBQ0MsS0FBSyxHQUFHQSxLQUFLO0lBQ2xCLElBQUksQ0FBQ0UsSUFBSSxHQUFHRCxTQUFTO0lBQ3JCLElBQUksQ0FBQ0UsZ0JBQWdCLEdBQUcsSUFBSUMsR0FBRyxDQUFDLENBQUM7RUFDbkM7RUFFQUMscUJBQXFCQSxDQUFDQyxRQUFnQixFQUFFQyxTQUFpQixFQUFRO0lBQy9ELElBQUksQ0FBQyxJQUFJLENBQUNKLGdCQUFnQixDQUFDSyxHQUFHLENBQUNGLFFBQVEsQ0FBQyxFQUFFO01BQ3hDLElBQUksQ0FBQ0gsZ0JBQWdCLENBQUNNLEdBQUcsQ0FBQ0gsUUFBUSxFQUFFLEVBQUUsQ0FBQztJQUN6QztJQUNBLE1BQU1JLFVBQVUsR0FBRyxJQUFJLENBQUNQLGdCQUFnQixDQUFDUSxHQUFHLENBQUNMLFFBQVEsQ0FBQztJQUN0REksVUFBVSxDQUFDRSxJQUFJLENBQUNMLFNBQVMsQ0FBQztFQUM1QjtFQUVBTSx3QkFBd0JBLENBQUNQLFFBQWdCLEVBQUVDLFNBQWlCLEVBQVE7SUFDbEUsTUFBTUcsVUFBVSxHQUFHLElBQUksQ0FBQ1AsZ0JBQWdCLENBQUNRLEdBQUcsQ0FBQ0wsUUFBUSxDQUFDO0lBQ3RELElBQUksT0FBT0ksVUFBVSxLQUFLLFdBQVcsRUFBRTtNQUNyQ0ksZUFBTSxDQUFDQyxLQUFLLENBQUMsa0NBQWtDLEVBQUVULFFBQVEsQ0FBQztNQUMxRDtJQUNGO0lBRUEsTUFBTVUsS0FBSyxHQUFHTixVQUFVLENBQUNPLE9BQU8sQ0FBQ1YsU0FBUyxDQUFDO0lBQzNDLElBQUlTLEtBQUssR0FBRyxDQUFDLEVBQUU7TUFDYkYsZUFBTSxDQUFDQyxLQUFLLENBQUMsa0RBQWtELEVBQUVULFFBQVEsRUFBRUMsU0FBUyxDQUFDO01BQ3JGO0lBQ0Y7SUFDQUcsVUFBVSxDQUFDUSxNQUFNLENBQUNGLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDM0I7SUFDQSxJQUFJTixVQUFVLENBQUNTLE1BQU0sSUFBSSxDQUFDLEVBQUU7TUFDMUIsSUFBSSxDQUFDaEIsZ0JBQWdCLENBQUNpQixNQUFNLENBQUNkLFFBQVEsQ0FBQztJQUN4QztFQUNGO0VBRUFlLG9CQUFvQkEsQ0FBQSxFQUFZO0lBQzlCLE9BQU8sSUFBSSxDQUFDbEIsZ0JBQWdCLENBQUNtQixJQUFJLEdBQUcsQ0FBQztFQUN2QztBQUNGO0FBQUNDLE9BQUEsQ0FBQTFCLFlBQUEsR0FBQUEsWUFBQSIsImlnbm9yZUxpc3QiOltdfQ==