frame.py 734 B

123456789101112131415161718192021222324252627282930
  1. class KafkaBytes(bytearray):
  2. def __init__(self, size):
  3. super(KafkaBytes, self).__init__(size)
  4. self._idx = 0
  5. def read(self, nbytes=None):
  6. if nbytes is None:
  7. nbytes = len(self) - self._idx
  8. start = self._idx
  9. self._idx += nbytes
  10. if self._idx > len(self):
  11. self._idx = len(self)
  12. return bytes(self[start:self._idx])
  13. def write(self, data):
  14. start = self._idx
  15. self._idx += len(data)
  16. self[start:self._idx] = data
  17. def seek(self, idx):
  18. self._idx = idx
  19. def tell(self):
  20. return self._idx
  21. def __str__(self):
  22. return 'KafkaBytes(%d)' % len(self)
  23. def __repr__(self):
  24. return str(self)