1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- "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 {
-
- 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);
-
- if (requestIds.length == 0) {
- this.clientRequestIds.delete(clientId);
- }
- }
- hasSubscribingClient() {
- return this.clientRequestIds.size > 0;
- }
- }
- exports.Subscription = Subscription;
|