Пример #1
0
	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
Пример #2
0
	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)
Пример #3
0
	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