| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 | #pragma once#include <ByteStream.h>  // for ByteStream#include <stdint.h>      // for uint8_t#include <stdio.h>       // for size_t, FILE#include <string>        // for string/** FileStream** A class for reading and writing to files implementing the ByteStream interface.**/namespace bell {class FileStream : public ByteStream { public:  FileStream(const std::string& path, std::string mode);  ~FileStream();  FILE* file;  /*        * Reads data from the stream.        *        * @param buf The buffer to read data into.        * @param nbytes The size of the buffer.        * @return The number of bytes read.        * @throws std::runtime_error if the stream is closed.        */  size_t read(uint8_t* buf, size_t nbytes);  /*        * Skips nbytes bytes in the stream.        */  size_t skip(size_t nbytes);  size_t position();  size_t size();  // Closes the connection  void close();};}  // namespace bell
 |