removed inheritence from File

This commit is contained in:
Erik Fröjdh 2024-03-27 16:55:17 +01:00
parent d07f867630
commit 130f6746e3
2 changed files with 20 additions and 15 deletions

View File

@ -1,5 +1,5 @@
#include "aare/FileInterface.hpp" #include "aare/FileInterface.hpp"
class File : public FileInterface { class File {
private: private:
FileInterface *file_impl; FileInterface *file_impl;
@ -10,19 +10,20 @@ class File : public FileInterface {
// - a appending (appends to existing file) // - a appending (appends to existing file)
// TODO! do we need to support w+, r+ and a+? // TODO! do we need to support w+, r+ and a+?
File(std::filesystem::path fname, std::string mode); File(std::filesystem::path fname, std::string mode);
Frame read() override; Frame read();
std::vector<Frame> read(size_t n_frames) override; Frame iread(size_t frame_number);
void read_into(std::byte *image_buf) override; std::vector<Frame> read(size_t n_frames);
void read_into(std::byte *image_buf, size_t n_frames) override; void read_into(std::byte *image_buf);
size_t frame_number(size_t frame_index) override; void read_into(std::byte *image_buf, size_t n_frames);
size_t bytes_per_frame() override; size_t frame_number(size_t frame_index);
size_t pixels() override; size_t bytes_per_frame();
void seek(size_t frame_number) override; size_t pixels();
size_t tell() override; void seek(size_t frame_number);
size_t total_frames() const override ; size_t tell() const;
ssize_t rows() const override ; size_t total_frames() const;
ssize_t cols() const override ; ssize_t rows() const;
ssize_t bitdepth() const override ; ssize_t cols() const;
ssize_t bitdepth() const;
File(File &&other); File(File &&other);

View File

@ -18,7 +18,7 @@ size_t File::frame_number(size_t frame_index) { return file_impl->frame_number(f
size_t File::bytes_per_frame() { return file_impl->bytes_per_frame(); } size_t File::bytes_per_frame() { return file_impl->bytes_per_frame(); }
size_t File::pixels() { return file_impl->pixels(); } size_t File::pixels() { return file_impl->pixels(); }
void File::seek(size_t frame_number) { file_impl->seek(frame_number); } void File::seek(size_t frame_number) { file_impl->seek(frame_number); }
size_t File::tell() { return file_impl->tell(); } size_t File::tell() const{ return file_impl->tell(); }
ssize_t File::rows() const { return file_impl->rows(); } ssize_t File::rows() const { return file_impl->rows(); }
ssize_t File::cols() const { return file_impl->cols(); } ssize_t File::cols() const { return file_impl->cols(); }
ssize_t File::bitdepth() const { return file_impl->bitdepth(); } ssize_t File::bitdepth() const { return file_impl->bitdepth(); }
@ -26,6 +26,10 @@ File::~File() {
delete file_impl; delete file_impl;
} }
Frame File::iread(size_t frame_number) {
return file_impl->iread(frame_number);
}
File::File(File &&other) { File::File(File &&other) {
file_impl = other.file_impl; file_impl = other.file_impl;
other.file_impl = nullptr; other.file_impl = nullptr;