def initFromXml(self, xmlNode = None): if xmlNode == None: return None first = xmlNode.firstChild while first: if first.tagName == "type": d = first.firstChild.data[:].encode(COMARValue.GLO_ENCODING) if d in ["propertyget", "propertyset", "method"]: self.type = d else: return 1 elif first.tagName == "name": d = first.firstChild.data[:].encode(COMARValue.GLO_ENCODING) self.name = d[:255] elif first.tagName == "ttsid": if first.firstChild: d = first.firstChild.data[:].encode(COMARValue.GLO_ENCODING) else: d = "" self.oldtts = d[:255] elif first.tagName == "index": if first.firstChild: d = first.firstChild.data[:].encode(COMARValue.GLO_ENCODING) else: d = "" self.index = d elif first.tagName == "object": self.object = COMARValue._load_value_xml(first) print "OBJ:", self.object, self.object.type, self.object.data elif first.tagName == "parameters": # Difficult point.. node = first.firstChild while node: if node.tagName == "parameter": chld = node.firstChild prmname = None value = None while chld: if chld.tagName == "name": d = chld.firstChild.data[:].encode(COMARValue.GLO_ENCODING) prmname = d elif chld.tagName == "value": value = COMARValue._load_value_xml(chld.firstChild) chld=chld.nextSibling if prmname != None and value != None: self.prms[prmname] = value node = node.nextSibling first = first.nextSibling
def initFromXml(self, xmlNode = None): if xmlNode == None: return None first = xmlNode.firstChild rval = None res = None while first: if first.tagName == "TTSID": d = first.firstChild.data[:].encode(COMARValue.GLO_ENCODING) self.TTSID = d[:255] elif first.tagName == "status": d = first.firstChild.data[:].encode(COMARValue.GLO_ENCODING) if d in STATUS_CODES: self.status = d else: return 1 elif first.tagName == "retval": rvnode = first.firstChild while rvnode: if rvnode.tagName == "execresult": res = rvnode.firstChild.data[:].encode(COMARValue.GLO_ENCODING) elif rvnode.tagName == "returnvalue": tmp = rvnode.firstChild rval = COMARValue._load_value_xml(tmp) rvnode = rvnode.nextSibling first = first.nextSibling if rval != None and res != None: if self.status == "RESULT": self.retval = COMARValue.COMARRetVal(result = int(res), value = rval)
def initFromXml(self, xmlNode = None): if xmlNode == None: return None first = xmlNode.firstChild while first: if first.tagName == "type": d = first.firstChild.data[:].encode(COMARValue.GLO_ENCODING) if d in ["propertyget", "propertyset", "method"]: self.type = d else: return 1 elif first.tagName == "name": d = first.firstChild.data[:].encode(COMARValue.GLO_ENCODING) self.name = d[:255] elif first.tagName == "index": d = first.firstChild.data[:].encode(COMARValue.GLO_ENCODING) self.index = d[:255] elif first.tagName == "code": d = first.firstChild.data[:].encode(COMARValue.GLO_ENCODING) self.code = d[:65535] elif first.tagName == "compression": d = first.firstChild.data[:].encode(COMARValue.GLO_ENCODING) self._compress = d elif first.tagName == "parameters": # Difficult point.. node = first.firstChild while node: if node.tagName == "parameter": chld = node.firstChild prmname = None value = None while chld: if chld.tagName == "name": d = chld.firstChild.data[:].encode(COMARValue.GLO_ENCODING) prmname = d elif chld.tagName == "value": value = COMARValue._load_value_xml(chld.firstChild) chld=chld.nextSibling if prmname != None and value != None: self.prms[prmname] = value node = node.nextSibling first = first.nextSibling if self._compress == "GZIP": self.code = base64.decodestring(self.code) self.code = zlib.decompress(self.code) elif self._compress == "BZIP2": self.code = base64.decodestring(self.code) self.code = bz2.decompress(self.code) elif self._compress != "NONE": return 1