From cffe020a6fbbdbe2a716cda9ce2e9920083da530 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20Fr=C3=B6jdh?= Date: Fri, 22 Mar 2024 10:26:15 +0100 Subject: [PATCH] added a draft for file interface --- CMakeLists.txt | 4 ++-- file_io/include/aare/FileInterface.h | 35 ++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 file_io/include/aare/FileInterface.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 0b227b2..e27be3f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -49,7 +49,7 @@ else() aare_compiler_flags INTERFACE -fdiagnostics-parseable-fixits - -fdiagnostics-generate-patch + # -fdiagnostics-generate-patch -fdiagnostics-show-template-tree -fsanitize=address,undefined,pointer-compare -fno-sanitize-recover @@ -62,7 +62,7 @@ else() aare_compiler_flags INTERFACE -fdiagnostics-parseable-fixits - -fdiagnostics-generate-patch + # -fdiagnostics-generate-patch -fdiagnostics-show-template-tree -fsanitize=address,undefined,pointer-compare -fno-sanitize-recover diff --git a/file_io/include/aare/FileInterface.h b/file_io/include/aare/FileInterface.h new file mode 100644 index 0000000..3db9f6e --- /dev/null +++ b/file_io/include/aare/FileInterface.h @@ -0,0 +1,35 @@ +#pragma once +#include "aare/Frame.hpp" +#include +namespace aare { +class FileInterface { +public: + FileInterface(std::filesystem::path& fname ){}; //do we need this? + + // read the frame number on position frame_index + virtual size_t frame_number(size_t frame_index) = 0; + + // read one frame + virtual Frame read() = 0; + + // read n_frames frames + virtual std::vector read(size_t n_frames) = 0; //Is this the right interface? + + // read one frame into the provided buffer + virtual void read_into(std::byte* image_buf) = 0; + + // read n_frames frame into the provided buffer + virtual void read_into(std::byte* image_buf, size_t n_frames) = 0; + + // goto frame number + virtual void seek(size_t frame_number) = 0; + + // return the position of the file pointer (in number of frames) + virtual size_t tell() = 0; + + // total number of frames in the file + virtual size_t total_frames() = 0; + + virtual ~FileInterface() = 0; +}; +} // namespace aare