iowrapper.py 971 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. class IOWrapper(object):
  2. def __init__(self, io_object):
  3. self.io_object = io_object
  4. self.record_buffer = False
  5. self.record_buffer_size = False
  6. self.bytes = bytes()
  7. self.buffer_size = 0
  8. def start_recording(self):
  9. self.record_buffer = True
  10. def start_recording_size(self):
  11. self.record_buffer_size = True
  12. def get_recorded_buffer(self):
  13. return self.bytes
  14. def get_recorded_size(self):
  15. return self.buffer_size
  16. def stop_recording(self):
  17. self.record_buffer = False
  18. self.bytes = bytes()
  19. def stop_recording_size(self):
  20. self.record_buffer_size = True
  21. self.buffer_size = 0
  22. def read(self, n_bytes):
  23. current_bytes = self.io_object.read(n_bytes)
  24. if self.record_buffer:
  25. self.bytes += current_bytes
  26. if self.record_buffer_size:
  27. self.buffer_size += len(current_bytes)
  28. return current_bytes