MCPcopy Index your code
hub / github.com/apache/dubbo-python2 / read_long

Method read_long

dubbo/codec/decoder.py:306–327  ·  view source on GitHub ↗

读取一个long类型的数字 :return:

(self)

Source from the content-addressed store, hash-verified

304
305 @ranges((0xd8, 0xff), (0x38, 0x3f), 0x59, ord('L'))
306 def read_long(self):
307 """
308 读取一个long类型的数字
309 :return:
310 """
311 value = self.read_byte()
312 if 0xd8 <= value <= 0xef:
313 result = value - 0xe0
314 elif 0xf0 <= value <= 0xff:
315 result = ((value - 0xf8) << 8) | self.read_byte()
316 elif 0x38 <= value <= 0x3f:
317 i = (value - 0x3c) << 16
318 i |= self.read_byte() << 8
319 i |= self.read_byte()
320 result = i
321 elif value == 0x59:
322 result = unpack('!i', self.read_bytes(4))[0]
323 elif value == ord('L'):
324 result = unpack('!q', self.read_bytes(8))[0]
325 else:
326 raise HessianTypeError('{0} is not long type'.format(value))
327 return result
328
329 @ranges(ord('N'))
330 def read_null(self):

Callers

nothing calls this directly

Calls 4

read_byteMethod · 0.95
read_bytesMethod · 0.95
HessianTypeErrorClass · 0.90
formatMethod · 0.80

Tested by

no test coverage detected