Advertisement
filhotecmail

reflectServerInvoke

Dec 15th, 2021
969
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. '{***************************************************************************}
  2. {                                                                           }
  3. {           Leopard Report                                                  }
  4. {           Copyright (C) 2012 Carlos Dias da Silva F.                      }
  5. {           leopardreport@hotmail.com                                       }
  6. {           2021/12 -                                                       }
  7. {           Framework Leopard Reflection                                    }
  8. {           Analisa CallBacks passados pelo ServerINvoke para que           }
  9. {           o sistema determine e invoke o método do serverfunction         }
  10. {           TODO: Falta Implementar o método que vai gravar em              }
  11. {          uma HashTable                                                    }
  12. {***************************************************************************}'
  13. function CallBackReflectionAssign(n, o, p) {
  14.     this.executor = new ServerFunctionExecutor("DSAdmin", o, this);
  15.     this.channerallocregister = n;
  16.     this.stopped = true;
  17.     this.tokenbpass = p;
  18.     this.callback = function(a, b, c) {
  19.         if (c != null && !c.stopped && a != null) {
  20.             a = (a.result != null) ? a.result : a;
  21.             a = isArray(a) ? a[0] : a;
  22.             var d = getSessionID();
  23.             if (d == null) { c.stopped = true }
  24.  
  25.             if (a.ExpiredtimeSession != null) {
  26.                 c.stopped = true;
  27.                 for (var i = 0; i < n.callbacks.length; i++)
  28.                 {
  29.                      n.callbacks[i].notifyCallback(a)
  30.                  }
  31.                 if (IsReflectionReferenceFunction(n.onChannelStateChange)) {
  32.                     n.onChannelStateChange(new channerallocregisterEventItem(n.EVENT_SERVER_DISCONNECT, n, null))
  33.                 }
  34.             } else if (a.broadcast != null) {
  35.  
  36.                 var e = a.broadcast;
  37.                 var f = e[0];
  38.                 var g = e[1];
  39.                 var h = a.channel == null ? n.serverChannelName : a.channel;
  40.                 var j = n.serverChannelName == h;
  41.                 for (var i = 0; i < n.callbacks.length; i++) {
  42.                     var k = n.callbacks[i];
  43.                     if (j || arrayIndexOf(k.serverChannelNames, h) > -1) {
  44.                         k.notifyCallback(f, g)
  45.                     }
  46.                 }
  47.                 c.sendResponse(true, c)
  48.             } else if (a.invoke != null) {
  49.                 var e = a.invoke;
  50.                 var l = e[0];
  51.                 var f = e[1];
  52.                 var g = e[2];
  53.                 var m;
  54.                 for (var i = 0; i < n.callbacks.length; i++) {
  55.                     m = n.callbacks[i];
  56.                     if (m.callbackId == l) {
  57.                         c.sendResponse(m.notifyCallback(f, g), c);
  58.                         break
  59.                     }
  60.                 }
  61.             } else if (a.error != null) {
  62.                 c.stopped = true;
  63.                 for (var i = 0; i < n.callbacks.length; i++) {
  64.                     n.callbacks[i].notifyCallback(a, "error")
  65.                 }
  66.                 if (IsReflectionReferenceFunction(n.onChannelStateChange)) {
  67.                     n.onChannelStateChange(new channerallocregisterEventItem(this.channerallocregister.EVENT_SERVER_DISCONNECT,
  68.                         this.channerallocregister, null))
  69.                 }
  70.             } else if (a.closeChannel == null && a.close == null) {
  71.                 c.sendResponse(false, c)
  72.             } else {
  73.                 c.stopped = true;
  74.                 for (var i = 0; i < n.callbacks.length; i++) { n.callbacks[i].notifyCallback(a, "closed") }
  75.                 if (IsReflectionReferenceFunction(n.onChannelStateChange)) { n.onChannelStateChange(new channerallocregisterEventItem(n.EVENT_CHANNEL_STOP, n, null)) }
  76.             }
  77.         } else {
  78.             if (c != null) {
  79.                 if (!c.stopped && IsReflectionReferenceFunction(n.onChannelStateChange)) { n.onChannelStateChange(new channerallocregisterEventItem(n.EVENT_SERVER_DISCONNECT, n, null)) }
  80.                 c.stopped = true
  81.             }
  82.         }
  83.     }
  84. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement