cloudeebus.BusConnection = function(name, session) {
this.name = name;
this.wampSession = session;
+ this.service = null;
return this;
};
cloudeebus.BusConnection.prototype.addService = function(serviceName, successCB, errorCB) {
- self = this;
+ var self = this;
cloudeebusService = new cloudeebus.Service(this.wampSession, this, serviceName);
- function busServiceAddedSuccessCB() {
+ function busServiceAddedSuccessCB(service) {
+ self.service = service;
if (successCB)
successCB(cloudeebusService);
}
}
cloudeebusService.add(busServiceAddedSuccessCB, busServiceAddedErrorCB);
-
- return cloudeebusService;
};
};
cloudeebus.Service.prototype.add = function(successCB, errorCB) {
- self = this;
-
- function addServiceSuccessCB(dbusService) {
+ function ServiceAddSuccessCB(dbusService) {
if (successCB) {
try { // calling dbus hook object function for un-translated types
successCB(dbusService);
}
catch (e) {
- alert("Method callback exception: " + e);
+ alert(arguments.callee.name + "-> Method callback exception: " + e);
}
}
}
- function addServiceErrorCB(error) {
- if (errorCB)
- errorCB(error.desc);
- }
-
var arglist = [
this.busConnection,
this.name
];
// call dbusSend with bus type, destination, object, message and arguments
- self.wampSession.call("serviceAdd", arglist).then(addServiceSuccessCB, addServiceErrorCB);
+ this.wampSession.call("serviceAdd", arglist).then(ServiceAddSuccessCB, errorCB);
};
cloudeebus.Service.prototype.addAgent = function(objectPath, xmlTemplate, successCB, errorCB) {
- self = this;
-
- function addAgentSuccessCB(dbusService) {
+ function ServiceAddAgentSuccessCB(dbusService) {
if (successCB) {
try { // calling dbus hook object function for un-translated types
successCB(dbusService);
}
catch (e) {
- alert("Method callback exception: " + e);
+ alert(arguments.callee.name + "-> Method callback exception: " + e);
}
}
}
- function addAgentErrorCB(error) {
- if (errorCB)
- errorCB(error.desc);
- }
-
var arglist = [
objectPath,
xmlTemplate
];
// call dbusSend with bus type, destination, object, message and arguments
- self.wampSession.call("serviceAddAgent", arglist).then(addAgentSuccessCB, addAgentErrorCB);
+ this.wampSession.call("serviceAddAgent", arglist).then(ServiceAddAgentSuccessCB, errorCB);
+};
+
+cloudeebus.Service.prototype.delAgent = function(objectPath, successCB, errorCB) {
+ function ServiceDelAgentSuccessCB(agent) {
+ if (successCB) {
+ try { // calling dbus hook object function for un-translated types
+ successCB(agent);
+ }
+ catch (e) {
+ alert(arguments.callee.name + "-> Method callback exception: " + e);
+ }
+ }
+ }
+
+ var arglist = [
+ objectPath
+ ];
+
+ // call dbusSend with bus type, destination, object, message and arguments
+ this.wampSession.call("serviceDelAgent", arglist).then(ServiceDelAgentSuccessCB, errorCB);
};
cloudeebus.Service.prototype.registerMethod = function(methodId, methodHandler) {
- self.wampSession.subscribe(methodId, methodHandler);
+ this.wampSession.subscribe(methodId, methodHandler);
};
cloudeebus.Service.prototype.returnMethod = function(methodId, success, result, successCB, errorCB) {
result
];
- self.wampSession.call("returnMethod", arglist).then(successCB, errorCB);
+ this.wampSession.call("returnMethod", arglist).then(successCB, errorCB);
};
self.srvName = list[1]
if (self.services.has_key(self.srvName) == False):
self.services[self.srvName] = dbus.service.BusName(name = self.srvName, bus = self.bus)
- return self.srvName
-
+ return self.srvName
+
+ @exportRpc
+ def serviceRelease(self, list):
+ '''
+ arguments: busName, srvName
+ '''
+ busName = list[0]
+ self.bus = cache.dbusConnexion( busName['name'] )
+ self.srvName = list[1]
+ if (self.services.has_key(self.srvName) == True):
+ exe_str = "self.services['" + self.srvName +"']"
+ exec (exe_str, globals(), locals())
+ return self.srvName
+ else:
+ raise Exception(self.srvName + " do not exist")
+
@exportRpc
def serviceAddAgent(self, list):
'''
'''
self.agentObjectPath = list[0]
xmlTemplate = list[1]
- className = re.sub('/', '_', self.agentObjectPath[1:])
- if (self.dynDBusClasses.has_key(className) == False):
- self.dynDBusClasses[className] = dynDBusClass(className, globals(), locals())
- self.dynDBusClasses[className].createDBusServiceFromXML(xmlTemplate)
+ self.className = re.sub('/', '_', self.agentObjectPath[1:])
+ if (self.dynDBusClasses.has_key(self.className) == False):
+ self.dynDBusClasses[self.className] = dynDBusClass(self.className, globals(), locals())
+ self.dynDBusClasses[self.className].createDBusServiceFromXML(xmlTemplate)
# For Debug only
if (1):
if os.access('./MyDbusClass.py', os.R_OK) == False:
f = open('./MyDbusClass.py', 'w')
- f.write(self.dynDBusClasses[className].class_code.exec_string)
+ f.write(self.dynDBusClasses[self.className].class_code.exec_string)
f.close()
# self.dynDBusClass[className].p()
- self.dynDBusClasses[className].declare()
+ self.dynDBusClasses[self.className].declare()
- if (self.serviceAgents.has_key(className) == False):
- exe_str = "self.serviceAgents[" + className +"] = " + className + "(self.bus, callback=self.srvCB, objName=self.agentObjectPath, busName=self.srvName)"
+ if (self.serviceAgents.has_key(self.className) == False):
+ exe_str = "self.serviceAgents['" + self.className +"'] = " + self.className + "(self.bus, callback=self.srvCB, objName=self.agentObjectPath, busName=self.srvName)"
exec (exe_str, globals(), locals())
+ return (self.agentObjectPath)
+ else:
+ raise Exception(self.agentObjectPath + " already exist !!")
+
+ @exportRpc
+ def serviceDelAgent(self, list):
+ '''
+ arguments: objectPath, xmlTemplate
+ '''
+ agentObjectPath = list[0]
+ className = re.sub('/', '_', agentObjectPath[1:])
+
+ if (self.serviceAgents.has_key(className)):
+ exe_str = "self.serviceAgents['" + className +"'] = None"
+ exec (exe_str, globals(), locals())
+ return (self.className)
+ else:
+ raise Exception(agentObjectPath + "doesn't exist!")
@exportRpc
def getVersion(self):