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
|