示例#1
0
 def _decode_one(self, data, bag, little_endian=False):
     for case in self._fields.values():
         try:
             match = case.decode(data, bag, little_endian=little_endian)
             trace("'%s' matches in bag '%s'. value: %r" % (case.name, self.name, match[match.len - 1]))
             return match
         except Exception as e:
             trace("'%s' does not match in bag '%s'. Error: %s" % (case.name, self.name, e.message))
     raise AssertionError("Unable to decode bag value.")
示例#2
0
 def get(self, message_template, timeout=None, header_filter=None):
     header_fields = message_template.header_parameters
     logger.trace("Get message with params %s" % header_fields)
     msg = self._get_from_cache(message_template, header_fields, header_filter)
     if msg:
         logger.trace("Cache hit. Cache currently has %s messages" % len(self._cache))
         return msg
     while True:
         header, pdu_bytes = self._protocol.read(self._stream, timeout=timeout)
         if self._matches(header, header_fields, header_filter):
             return self._to_msg(message_template, header, pdu_bytes)
         self._cache.append((header, pdu_bytes))
示例#3
0
 def get(self, message_template, timeout=None, header_filter=None):
     header_fields = message_template.header_parameters
     logger.trace("Get message with params %s" % header_fields)
     msg = self._get_from_cache(message_template, header_fields,
                                header_filter)
     if msg:
         logger.trace("Cache hit. Cache currently has %s messages" %
                      len(self._cache))
         return msg
     while True:
         header, pdu_bytes = self._protocol.read(self._stream,
                                                 timeout=timeout)
         if self._matches(header, header_fields, header_filter):
             return self._to_msg(message_template, header, pdu_bytes)
         self._cache.append((header, pdu_bytes))