Diffstat (limited to 'frontend/delta/js/Clipperz/PM/Proxy.js') (more/less context) (ignore whitespace changes)
-rw-r--r-- | frontend/delta/js/Clipperz/PM/Proxy.js | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/frontend/delta/js/Clipperz/PM/Proxy.js b/frontend/delta/js/Clipperz/PM/Proxy.js index 2ac684a..71c784f 100644 --- a/frontend/delta/js/Clipperz/PM/Proxy.js +++ b/frontend/delta/js/Clipperz/PM/Proxy.js @@ -27,160 +27,161 @@ if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } //============================================================================= Clipperz.PM.Proxy = function(args) { args = args || {}; this._shouldPayTolls = args.shouldPayTolls || false; this._tolls = { 'CONNECT': [], 'REGISTER': [], 'MESSAGE': [] }; if (args.isDefault === true) { Clipperz.PM.Proxy.defaultProxy = this; } return this; } Clipperz.PM.Proxy.prototype = MochiKit.Base.update(null, { 'toString': function() { return "Clipperz.PM.Proxy"; }, //========================================================================= 'shouldPayTolls': function() { return this._shouldPayTolls; }, //------------------------------------------------------------------------- 'tolls': function() { return this._tolls; }, //------------------------------------------------------------------------- 'payToll': function(aRequestType, someParameters) { var deferredResult; if (this.shouldPayTolls()) { deferredResult = new Clipperz.Async.Deferred("Proxy.payToll", {trace:false}); if (this.tolls()[aRequestType].length == 0) { deferredResult.addMethod(this, 'sendMessage', 'knock', {requestType:aRequestType}); deferredResult.addMethod(this, 'setTollCallback'); } deferredResult.addMethod(this.tolls()[aRequestType], 'pop'); deferredResult.addCallback(MochiKit.Base.methodcaller('deferredPay')); deferredResult.addCallback(function(aToll) { var result; result = { parameters: someParameters, toll: aToll } return result; }); deferredResult.callback(); } else { deferredResult = MochiKit.Async.succeed({parameters:someParameters}); } return deferredResult; }, //------------------------------------------------------------------------- 'addToll': function(aToll) { this.tolls()[aToll.requestType()].push(aToll); }, //========================================================================= 'setTollCallback': function(someParameters) { if (typeof(someParameters['toll']) != 'undefined') { this.addToll(new Clipperz.PM.Toll(someParameters['toll'])); } return someParameters['result']; }, //========================================================================= 'registration': function (someParameters) { return this.processMessage('registration', someParameters, 'REGISTER'); }, 'handshake': function (someParameters) { return this.processMessage('handshake', someParameters, 'CONNECT'); }, 'message': function (someParameters) { return this.processMessage('message', someParameters, 'MESSAGE'); }, 'logout': function (someParameters) { return this.processMessage('logout', someParameters, 'MESSAGE'); }, //========================================================================= 'processMessage': function (aFunctionName, someParameters, aRequestType) { var deferredResult; deferredResult = new Clipperz.Async.Deferred("Proxy.processMessage", {trace:false}); deferredResult.addMethod(this, 'payToll', aRequestType); deferredResult.addMethod(this, 'sendMessage', aFunctionName); deferredResult.addMethod(this, 'setTollCallback'); deferredResult.callback(someParameters); return deferredResult; }, //========================================================================= '_sendMessage': function (aFunctionName, aVersion, someParameters) { throw Clipperz.Base.exception.AbstractMethod; }, 'sendMessage': function (aFunctionName, someParameters) { var deferredResult; +console.log("PROXY.sendMessage", aFunctionName, someParameters); // TODO: read actual application version for a property set at build time deferredResult = new Clipperz.Async.Deferred("Proxy.sendMessage", {trace:false}); deferredResult.addMethod(this, '_sendMessage', aFunctionName, 'fake-app-version'); deferredResult.addErrback(MochiKit.Base.method(this, 'handleError')); deferredResult.callback(someParameters); return deferredResult; }, //------------------------------------------------------------------------- 'handleError': function (anError) { if (anError['message'] == 'Wrong application version') { anError['isPermanent'] = true; } return anError; }, //========================================================================= 'isReadOnly': function () { return false; }, 'canRegisterNewUsers': function () { return true; }, //========================================================================= __syntaxFix__: "syntax fix" }); |