def parse_sync_mult_data(self, msg): ''' @brief 解析chunk分发数据 ''' self.parse_package(msg) packages = [] if len(self.package.data ) == 1 and CwxMqPoco.KEY_M in self.package.data: msgs = self.package.get_key(CwxMqPoco.KEY_M) if isinstance(msgs, list): for m in self.package.get_key(CwxMqPoco.KEY_M): p = CwxPackage() p.data = m packages.append(p) else: p = CwxPackage() p.data = msgs packages.append(p) else: packages.append(self.package) res = [] for p in packages: sid = p.get_key_int(CwxMqPoco.KEY_SID) if sid == None: raise CwxMqError(CwxMqError.NO_SID, "No key[sid] in recv page.") time_stamp = p.get_key_int(CwxMqPoco.KEY_TIMESTAMP) if time_stamp == None: raise CwxMqError(CwxMqError.NO_SID, "No key[t] in recv_page.") topic = p.get_key(CwxMqPoco.KEY_TOPIC) if topic == None: raise CwxMqError(CwxMqError.NO_SID, "No key[topic] in recv_page.") data = p.get_key(CwxMqPoco.KEY_DATA) if data == None: raise CwxMqError(CwxMqError.NO_SID, "No key[d] in recv_page.") res.append( OrderedDict((("sid", sid), ("timestamp", time_stamp), ("topic", topic), ("data", data)))) return res
def __init__(self): self.header = CwxMsgHeader() self.package = CwxPackage()
def parse_package(self, msg): self.package.__init__() self.package = CwxPackage(msg)