Esempio n. 1
0
    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
Esempio n. 2
0
 def __init__(self):
     self.header = CwxMsgHeader()
     self.package = CwxPackage()
Esempio n. 3
0
 def parse_package(self, msg):
     self.package.__init__()
     self.package = CwxPackage(msg)