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

Method _encode_object

dubbo/codec/encoder.py:307–336  ·  view source on GitHub ↗

对一个对象进行编码 :param value: :return:

(self, value)

Source from the content-addressed store, hash-verified

305 return result
306
307 def _encode_object(self, value):
308 """
309 对一个对象进行编码
310 :param value:
311 :return:
312 """
313 result = []
314 path = value.get_path()
315 field_names = value.keys()
316
317 if path not in self.__classes:
318 result.append(ord('C'))
319 result.extend(self._encode_single_value(path))
320
321 result.extend(self._encode_single_value(len(field_names)))
322
323 for field_name in field_names:
324 result.extend(self._encode_single_value(field_name))
325 self.__classes.append(path)
326 class_id = self.__classes.index(path)
327 if class_id <= 0xf:
328 class_id += 0x60
329 class_id &= 0xff
330 result.append(class_id)
331 else:
332 result.append(ord('O'))
333 result.extend(self._encode_single_value(class_id))
334 for field_name in field_names:
335 result.extend(self._encode_single_value(value[field_name]))
336 return result
337
338 def _encode_list(self, value):
339 """

Callers 1

_encode_single_valueMethod · 0.95

Calls 3

_encode_single_valueMethod · 0.95
get_pathMethod · 0.80
keysMethod · 0.80

Tested by

no test coverage detected