Beispiel #1
0
 def encode(self) -> bytearray:
     component_wires = [v.encode() for v in self.value]
     length = sum(len(w) for w in component_wires)
     buf_len = length + get_tl_num_size(length) + get_tl_num_size(
         StateVectorModelTypes.VECTOR.value)
     ret = bytearray(buf_len)
     pos = write_tl_num(StateVectorModelTypes.VECTOR.value, ret)
     pos += write_tl_num(length, ret, pos)
     for w in component_wires:
         ret[pos:pos + len(w)] = w
         pos += len(w)
     return ret
Beispiel #2
0
 def encode(self) -> bytearray:
     length, component_wires = 0, []
     for v in self.value:
         ba = v.encode()
         length += len(ba)
         component_wires.append(ba)
     buf_len = length + get_tl_num_size(length) + get_tl_num_size(
         SVSyncTlvTypes.VECTOR.value)
     ret = bytearray(buf_len)
     pos = write_tl_num(SVSyncTlvTypes.VECTOR.value, ret)
     pos += write_tl_num(length, ret, pos)
     for w in component_wires:
         ret[pos:pos + len(w)] = w
         pos += len(w)
     return ret
Beispiel #3
0
 def encode(self) -> bytearray:
     bseqno, bnid = pack_uint_bytes(self.seqno), self.nid.encode()
     # nid
     size = len(bnid) + get_tl_num_size(len(bnid)) + get_tl_num_size(
         SVSyncTlvTypes.VECTOR_ENTRY.value)
     temp1 = bytearray(size)
     pos = write_tl_num(SVSyncTlvTypes.VECTOR_ENTRY.value, temp1)
     pos += write_tl_num(len(bnid), temp1, pos)
     temp1[pos:pos + len(bnid)] = bnid
     # seqno
     size = len(bseqno) + get_tl_num_size(len(bseqno)) + get_tl_num_size(
         SVSyncTlvTypes.SEQNO.value)
     temp2 = bytearray(size)
     pos = write_tl_num(SVSyncTlvTypes.SEQNO.value, temp2)
     pos += write_tl_num(len(bseqno), temp2, pos)
     temp2[pos:pos + len(bseqno)] = bseqno
     return temp1 + temp2
Beispiel #4
0
 def test_1():
     assert get_tl_num_size(0) == 1
     assert get_tl_num_size(253) == 3
     assert get_tl_num_size(65535) == 3
     assert get_tl_num_size(65536) == 5
     assert get_tl_num_size(10000000000) == 9