X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=cloudeebus%2Fcloudeebus.js;h=92d31081364efbf75b5c3e0eeda651b1ddcbad79;hb=de126e87fcde25b375b2efb56583712b2ca8affc;hp=d3fb087fe1cf62686b8455a4fdec9821c6d64f33;hpb=f5e67d3a6de8fa1a85ea8e5552b1f469b77ad3c8;p=contrib%2Fcloudeebus.git diff --git a/cloudeebus/cloudeebus.js b/cloudeebus/cloudeebus.js index d3fb087..92d3108 100644 --- a/cloudeebus/cloudeebus.js +++ b/cloudeebus/cloudeebus.js @@ -29,7 +29,7 @@ var dbus = { // hook object for dbus types not translated by python-json /*****************************************************************************/ var cloudeebus = window.cloudeebus = { - version: "0.5.1", + version: "0.5.99", minVersion: "0.3.2" }; @@ -46,7 +46,7 @@ cloudeebus.log = function(msg) { cloudeebus.getError = function(error) { if (error.desc && error.uri) - return error.desc + " : " + error.uri; + return error.desc + " : " + error.uri; // error cloudeebus (from python) if (error.desc) return error.desc; if (error.uri) @@ -55,7 +55,9 @@ cloudeebus.getError = function(error) { return error.name + " : " + error.message; if (error.message) return error.message; - return error; + if (error.name) + return error.name; + return error; // error from Autobahn }; cloudeebus.versionCheck = function(version) { @@ -108,11 +110,13 @@ cloudeebus.connect = function(uri, manifest, successCB, errorCB) { function onWAMPSessionConnectedCB(session) { cloudeebus.wampSession = session; - if (manifest) + if (manifest) { cloudeebus.wampSession.authreq( manifest.name, - {permissions: manifest.permissions} + {permissions: manifest.permissions, + services: manifest.services} ).then(onWAMPSessionChallengedCB, onWAMPSessionAuthErrorCB); + } else cloudeebus.wampSession.authreq().then(function() { cloudeebus.wampSession.auth().then(onWAMPSessionAuthenticatedCB, onWAMPSessionAuthErrorCB); @@ -164,15 +168,17 @@ cloudeebus.BusConnection.prototype.getObject = function(busName, objectPath, int cloudeebus.BusConnection.prototype.addService = function(serviceName) { var self = this; + + if (!serviceName) + serviceName = ""; var promise = new cloudeebus.Promise(function (resolver) { - cloudeebusService = new cloudeebus.Service(self.wampSession, self, serviceName); + var cloudeebusService = new cloudeebus.Service(self.wampSession, self, serviceName); function ServiceAddedSuccessCB(serviceName) { - try { // calling dbus hook object function for un-translated types + try { cloudeebusService.isCreated = true; - var result = [ cloudeebusService ]; - resolver.fulfill(result[0], true); + resolver.fulfill(cloudeebusService, true); } catch (e) { var errorStr = cloudeebus.getError(e); @@ -184,7 +190,7 @@ cloudeebus.BusConnection.prototype.addService = function(serviceName) { function ServiceAddedErrorCB(error) { var errorStr = cloudeebus.getError(error); cloudeebus.log("Error adding service method: " + self.name + ", error: " + errorStr); - self.promise.resolver.reject(errorStr, true); + resolver.reject(errorStr, true); } var arglist = [ @@ -200,8 +206,9 @@ cloudeebus.BusConnection.prototype.addService = function(serviceName) { }; + /*****************************************************************************/ -//Generic definition for an agent. An agent need : +//Generic definition for an agent. An agent needs : //srvDbusName : the DBus parent service //objPath : a DBus path to access it //jsHdl : a Javascript handler to process methods, @@ -225,14 +232,14 @@ cloudeebus.Service = function(session, busConnection, name) { return this; }; + cloudeebus.Service.prototype.remove = function() { var self = this; var promise = new cloudeebus.Promise(function (resolver) { function ServiceRemovedSuccessCB(serviceName) { - try { // calling dbus hook object function for un-translated types - var result = [ serviceName ]; - resolver.fulfill(result[0], true); + try { + resolver.fulfill(serviceName, true); } catch (e) { var errorStr = cloudeebus.getError(e); @@ -249,7 +256,7 @@ cloudeebus.Service.prototype.remove = function() { for (var idx in self.agents) { if (self.agents[idx]) { - self.delAgent(self.agents[idx]); + self.removeAgent(self.agents[idx]); } } @@ -264,6 +271,7 @@ cloudeebus.Service.prototype.remove = function() { return promise; }; + cloudeebus.Service.prototype._searchMethod = function(ifName, method, objectJS) { var funcToCall = null; @@ -281,6 +289,7 @@ cloudeebus.Service.prototype._searchMethod = function(ifName, method, objectJS) return funcToCall; }; + cloudeebus.Service.prototype._addMethod = function(ifName, method, agent) { var service = this; @@ -307,11 +316,11 @@ cloudeebus.Service.prototype._addMethod = function(ifName, method, agent) { } }; agent.jsHdl.methodId[agent.objectPath].push(methodId); - cloudeebus.log("subscribe " + methodId); this.wampSession.subscribe(methodId, agent.jsHdl.wrapperFunc[method]); } }; + cloudeebus.Service.prototype._addSignal = function(ifName, signal, agent) { var service = this; var methodExist = false; @@ -334,6 +343,7 @@ cloudeebus.Service.prototype._addSignal = function(ifName, signal, agent) { cloudeebus.log("Can not create new method to emit signal '" + signal + "' in object JS this method already exist!"); }; + cloudeebus.Service.prototype._createWrapper = function(agent) { var self = this; var parser = new DOMParser(); @@ -359,6 +369,7 @@ cloudeebus.Service.prototype._createWrapper = function(agent) { } }; + cloudeebus.Service.prototype.addAgent = function(agent) { var self = this; @@ -367,8 +378,7 @@ cloudeebus.Service.prototype.addAgent = function(agent) { try { // calling dbus hook object function for un-translated types self.agents.push(agent); agent.registered = true; - var result = [ objPath ]; - resolver.fulfill(result[0], true); + resolver.fulfill(objPath, true); } catch (e) { var errorStr = cloudeebus.getError(e); @@ -388,7 +398,7 @@ cloudeebus.Service.prototype.addAgent = function(agent) { } catch (e) { var errorStr = cloudeebus.getError(e); - alert("Exception creating agent wrapper " + agent.objectPath + " : " + errorStr); + cloudeebus.log("Exception creating agent wrapper " + agent.objectPath + " : " + errorStr); resolver.reject(errorStr, true); return; } @@ -405,6 +415,7 @@ cloudeebus.Service.prototype.addAgent = function(agent) { return promise; }; + cloudeebus.Service.prototype._deleteWrapper = function(agent) { var objJs = agent.jsHdl; if (objJs.methodId[agent.objectPath]) { @@ -422,16 +433,16 @@ cloudeebus.Service.prototype._deleteWrapper = function(agent) { } }; -cloudeebus.Service.prototype.delAgent = function(rmAgent, successCB, errorCB) { + +cloudeebus.Service.prototype.removeAgent = function(rmAgent) { var self = this; var promise = new cloudeebus.Promise(function (resolver) { - function ServiceDelAgentSuccessCB(agent) { + function ServiceRemoveAgentSuccessCB(agent) { try { // calling dbus hook object function for un-translated types - self.agents.push(agent); - agent.registered = true; - var result = [ agent ]; - resolver.fulfill(result[0], true); + self.agents.pop(agent); + agent.registered = false; + resolver.fulfill(agent, true); } catch (e) { var errorStr = cloudeebus.getError(e); @@ -440,7 +451,7 @@ cloudeebus.Service.prototype.delAgent = function(rmAgent, successCB, errorCB) { } } - function ServiceDelAgentErrorCB(error) { + function ServiceRemoveAgentErrorCB(error) { var errorStr = cloudeebus.getError(error); cloudeebus.log("Error removing agent : " + rmAgent.objectPath + ", error: " + errorStr); self.promise.resolver.reject(errorStr, true); @@ -451,7 +462,7 @@ cloudeebus.Service.prototype.delAgent = function(rmAgent, successCB, errorCB) { } catch (e) { var errorStr = cloudeebus.getError(e); - alert("Exception removing wrapper of agent " + rmAgent.objectPath + " : " + errorStr); + cloudeebus.log("Exception removing wrapper of agent " + rmAgent.objectPath + " : " + errorStr); errorCB(errorStr); } @@ -460,12 +471,13 @@ cloudeebus.Service.prototype.delAgent = function(rmAgent, successCB, errorCB) { ]; // call dbusSend with bus type, destination, object, message and arguments - self.wampSession.call("serviceDelAgent", arglist).then(ServiceDelAgentSuccessCB, ServiceDelAgentErrorCB); + self.wampSession.call("serviceDelAgent", arglist).then(ServiceRemoveAgentSuccessCB, ServiceRemoveAgentErrorCB); }); return promise; }; + cloudeebus.Service.prototype._returnMethod = function(methodId, callIndex, success, result, successCB, errorCB) { var arglist = [ methodId, @@ -477,6 +489,7 @@ cloudeebus.Service.prototype._returnMethod = function(methodId, callIndex, succe this.wampSession.call("returnMethod", arglist).then(successCB, errorCB); }; + cloudeebus.Service.prototype._emitSignal = function(objectPath, signalName, result, successCB, errorCB) { var arglist = [ objectPath, @@ -934,7 +947,7 @@ cloudeebus.ProxyObject.prototype.connectToSignal = function(ifName, signal, hand var errorStr = cloudeebus.getError(error); cloudeebus.log("Error connecting to signal: " + signal + " on object: " + self.objectPath + " : " + errorStr); if (errorCB) - errorCB(cloudeebus.getError(errorStr)); + errorCB(errorStr); } var arglist = [