| 123456789101112131415161718192021222324252627282930313233343536 |
- import struct
- from .text_data_pb2 import TextData
- def read_pb_stream(f):
- while True:
- buf = f.read(4)
- if len(buf) == 0:
- break
- size = struct.unpack("I", buf)[0]
- buf = f.read(size)
- text_data = TextData()
- text_data.ParseFromString(buf)
- yield text_data
- def write_pb_stream(f, text_data):
- buf = text_data.SerializeToString()
- f.write(struct.pack("I", len(buf)))
- f.write(buf)
- def pack_pb_stream(text_data):
- buf = text_data.SerializeToString()
- return struct.pack("I", len(buf)) + buf
- def split_pb_stream(f):
- while True:
- head = f.read(4)
- if len(head) == 0:
- break
- size = struct.unpack("I", head)[0]
- buf = f.read(size)
- yield head + buf
|