Reads a number of bytes from the stream. If a delimiter is encountered, calls Stream.parse() on the packet.
(self, bytes=1024)
| 546 | self.delimiter = delimiter |
| 547 | |
| 548 | def update(self, bytes=1024): |
| 549 | """ Reads a number of bytes from the stream. |
| 550 | If a delimiter is encountered, calls Stream.parse() on the packet. |
| 551 | """ |
| 552 | packets = [] |
| 553 | self.buffer += self.socket.read(bytes) |
| 554 | self.buffer = self.buffer.split(self.delimiter, 1) |
| 555 | while len(self.buffer) > 1: |
| 556 | data = self.buffer[0] |
| 557 | data = self.parse(data) |
| 558 | if data is not None: |
| 559 | packets.append(data) |
| 560 | self.buffer = self.buffer[-1] |
| 561 | self.buffer = self.buffer.split(self.delimiter, 1) |
| 562 | self.buffer = self.buffer[-1] |
| 563 | self.extend(packets) |
| 564 | return packets |
| 565 | |
| 566 | def parse(self, data): |
| 567 | """ Must be overridden in a subclass. |
no test coverage detected