From 0b413c8c795c8af7f77db6f51c04b319c449b40f Mon Sep 17 00:00:00 2001 From: Luc Yriarte Date: Fri, 10 Aug 2012 14:17:08 +0200 Subject: [PATCH] cloudeebus js library: _addMethod creates wrapper methods to be auto-generated from introspection data. --- cloudeebus/cloudeebus.js | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/cloudeebus/cloudeebus.js b/cloudeebus/cloudeebus.js index 6a5e2cf..482590a 100644 --- a/cloudeebus/cloudeebus.js +++ b/cloudeebus/cloudeebus.js @@ -118,6 +118,28 @@ cloudeebus.ProxyObject = function(session, busConnection, busName, objectPath) { } +cloudeebus.ProxyObject.prototype._addMethod = function(ifName, method, nArgs) { + + var self = this; + + self[method] = function() { + if (arguments.length < nArgs || arguments.length > nArgs + 2) + throw "Error: method " + method + " takes " + nArgs + " parameters, got " + arguments.length + "."; + var args = []; + var successCB = null; + var errorCB = null; + for (var i=0; i < nArgs; i++ ) + args.push(arguments[i]); + if (arguments.length > nArgs) + successCB = arguments[nArgs]; + if (arguments.length > nArgs + 1) + errorCB = arguments[nArgs + 1]; + self.callMethod(ifName, method, args, successCB, errorCB); + } + +} + + cloudeebus.ProxyObject.prototype.callMethod = function(ifName, method, args, successCB, errorCB) { var self = this; @@ -181,4 +203,3 @@ cloudeebus.ProxyObject.prototype.connectToSignal = function(ifName, signal, succ // call dbusSend with bus type, destination, object, message and arguments self.wampSession.call("dbusRegister", arglist).then(connectToSignalSuccessCB, connectToSignalErrorCB); } - -- 2.7.4