MessageCenter.js 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. var t = require;
  2. var e = module;
  3. var i = exports;
  4. Object.defineProperty(i, "__esModule", {value: !0}),
  5. ((e = {})[(e.eventTarget = 0)] = "eventTarget"),
  6. (e[(e.eventsMap = 1)] = "eventsMap"),
  7. (e[(e.captureEventsMap = 2)] = "captureEventsMap"),
  8. (e[(e.notifyLevel = 3)] = "notifyLevel"),
  9. (i.default = class {
  10. constructor(t) {
  11. (this.notifyLevel = 0),
  12. (this.type = t),
  13. ObjectPool.registerClass(s, "MessageVo"),
  14. (this.dict = {}),
  15. (this.notifyLevel = 0),
  16. (this.eVec = new Array()),
  17. (this.lastRunTime = 0),
  18. this.type;
  19. }
  20. clear() {
  21. (this.dict = {}), this.eVec.splice(0);
  22. }
  23. addListener(t, e, i, s) {
  24. s = 0 | +s;
  25. let o = -1;
  26. var a = this.dict[t];
  27. null == a ? (this.dict[t] = a = []) : 0 !== this.notifyLevel && (this.dict[t] = a = a.concat());
  28. for (var n = 0, r = a.length; n < r; n++) {
  29. if (a[n][0] == e && a[n][1] == i) return;
  30. -1 == o && a[n][2] < s && (o = n);
  31. }
  32. t = [e, i, s];
  33. return -1 !== o ? a.splice(o, 0, t) : a.push(t), t;
  34. }
  35. removeListener(t, e, i) {
  36. var s = this.dict[t];
  37. if (null != s) {
  38. 0 !== this.notifyLevel && (this.dict[t] = s = s.concat());
  39. for (var o = 0, a = s.length; o < a; o++)
  40. if (s[o][0] == e && s[o][1] == i) {
  41. s.splice(o, 1);
  42. break;
  43. }
  44. 0 == s.length && ((this.dict[t] = null), delete this.dict[t]);
  45. }
  46. }
  47. removeAll(t) {
  48. for (var e = Object.keys(this.dict), i = 0, s = e.length; i < s; i++) {
  49. var o = e[i],
  50. a = this.dict[o];
  51. 0 !== this.notifyLevel && (this.dict[o] = a = a.concat());
  52. for (var n = 0; n < a.length; n++) a[n][1] == t && (a.splice(n, 1), n--);
  53. 0 == a.length && ((this.dict[o] = null), delete this.dict[o]);
  54. }
  55. }
  56. dispatch(t, ...e) {
  57. var i;
  58. null != this.dict[t] &&
  59. (((i = ObjectPool.pop("MessageVo")).type = t),
  60. (i.param = e),
  61. 0 == this.type
  62. ? this.eVec.push(i)
  63. : 1 == this.type
  64. ? this.dealMsg(i)
  65. : Log.trace("MessageCenter未实现的类型"));
  66. }
  67. run() {}
  68. dealMsg(t) {
  69. var e = this.dict[t.type],
  70. i = 0,
  71. s = e.length,
  72. o = null;
  73. for (this.notifyLevel++; i < s; ) {
  74. o = e[i];
  75. try {
  76. o[0].apply(o[1], t.param);
  77. } catch (t) {
  78. Log.error("消息处理出错:", t.toString());
  79. }
  80. i++;
  81. }
  82. this.notifyLevel--, t.dispose(), ObjectPool.push(t);
  83. }
  84. });
  85. class s {
  86. constructor() {
  87. this.ObjectPoolKey = null;
  88. }
  89. dispose() {
  90. (this.type = null), (this.param = null);
  91. }
  92. }