Version of this codec. Args: Codec (code.Codec): Inherit and implement codec interface functions.
| 11 | |
| 12 | |
| 13 | class BasicCodec(Codec): |
| 14 | """Version of this codec. |
| 15 | |
| 16 | Args: |
| 17 | Codec (code.Codec): Inherit and implement codec interface functions. |
| 18 | """ |
| 19 | |
| 20 | BASIC_CODEC_VERSION = 1 |
| 21 | |
| 22 | def start_write_message(self, msgInfo): |
| 23 | header = (self.BASIC_CODEC_VERSION << 24) \ |
| 24 | | ((msgInfo.service & 0xff) << 16) \ |
| 25 | | ((msgInfo.request & 0xff) << 8) \ |
| 26 | | (msgInfo.type.value & 0xff) |
| 27 | self.write_uint32(header) |
| 28 | self.write_uint32(msgInfo.sequence) |
| 29 | |
| 30 | def _write(self, fmt, value): |
| 31 | self._buffer += struct.pack(fmt, value) |
| 32 | self._cursor += struct.calcsize(fmt) |
| 33 | |
| 34 | def write_bool(self, value): |
| 35 | self._write('<?', value) |
| 36 | |
| 37 | def write_int8(self, value): |
| 38 | self._write('<b', value) |
| 39 | |
| 40 | def write_int16(self, value): |
| 41 | self._write('<h', value) |
| 42 | |
| 43 | def write_int32(self, value): |
| 44 | self._write('<i', value) |
| 45 | |
| 46 | def write_int64(self, value): |
| 47 | self._write('<q', value) |
| 48 | |
| 49 | def write_uint8(self, value): |
| 50 | self._write('<B', value) |
| 51 | |
| 52 | def write_uint16(self, value): |
| 53 | self._write('<H', value) |
| 54 | |
| 55 | def write_uint32(self, value): |
| 56 | self._write('<I', value) |
| 57 | |
| 58 | def write_uint64(self, value): |
| 59 | self._write('<Q', value) |
| 60 | |
| 61 | def write_float(self, value): |
| 62 | self._write('<f', value) |
| 63 | |
| 64 | def write_double(self, value): |
| 65 | self._write('<d', value) |
| 66 | |
| 67 | def write_string(self, value): |
| 68 | self.write_binary(value.encode()) |
| 69 | |
| 70 | def write_binary(self, value): |
no outgoing calls