save work debugging

This commit is contained in:
Bechir Braham
2024-04-22 18:58:46 +02:00
parent 1177fd129d
commit e791992a05
7 changed files with 47 additions and 21 deletions

View File

@ -26,6 +26,7 @@ class File {
void write(Frame &frame);
Frame read();
Frame iread(size_t frame_number);
std::vector<Frame> iread(size_t frame_number, size_t n_frames);
std::vector<Frame> read(size_t n_frames);
void read_into(std::byte *image_buf);
void read_into(std::byte *image_buf, size_t n_frames);

View File

@ -134,28 +134,14 @@ class FileInterface {
* @param frame_number frame number to read
* @return frame
*/
Frame iread(size_t frame_number) {
auto old_pos = tell();
seek(frame_number);
Frame tmp = read();
seek(old_pos);
return tmp;
};
virtual Frame iread(size_t frame_number)=0;
/**
* @brief read n_frames from the file starting at the given frame number
* @param frame_number frame number to start reading from
* @param n_frames number of frames to read
* @return vector of frames
*/
std::vector<Frame> iread(size_t frame_number, size_t n_frames) {
auto old_pos = tell();
seek(frame_number);
std::vector<Frame> tmp = read(n_frames);
seek(old_pos);
return tmp;
}
virtual std::vector<Frame> iread(size_t frame_number, size_t n_frames)=0;
// function to query the data type of the file
/*virtual DataType dtype = 0; */

View File

@ -72,6 +72,21 @@ class NumpyFile : public FileInterface {
}
return arr;
}
Frame iread(size_t frame_number) {
auto old_pos = tell();
seek(frame_number);
Frame tmp = read();
seek(old_pos);
return tmp;
};
std::vector<Frame> iread(size_t frame_number, size_t n_frames) {
auto old_pos = tell();
seek(frame_number);
std::vector<Frame> tmp = read(n_frames);
seek(old_pos);
return tmp;
}
~NumpyFile() noexcept override;

View File

@ -26,8 +26,8 @@ class RawFile : public FileInterface {
*/
void write([[maybe_unused]] Frame &frame) override { throw std::runtime_error("Not implemented"); };
Frame read() override {
return get_frame(frame_number(this->current_frame++));
};
std::cout << "Reading frame " << this->current_frame << std::endl;
return get_frame(frame_number(this->current_frame++)); };
std::vector<Frame> read(size_t n_frames) override;
void read_into(std::byte *image_buf) override {
return get_frame_into(frame_number(this->current_frame++), image_buf);
@ -48,10 +48,13 @@ class RawFile : public FileInterface {
size_t pixels_per_frame() override { return m_rows * m_cols; }
// goto frame number
void seek(size_t frame_number) override { this->current_frame = frame_number; };
void seek(size_t frame_number) override { this->current_frame = frame_number + m_starting_frame;
std::cout<<"Seeking to frame "<<frame_number<<std::endl;
std::cout<<"Current frame is "<<this->current_frame<<std::endl;
};
// return the position of the file pointer (in number of frames)
size_t tell() override { return this->current_frame; };
size_t tell() override { return this->current_frame - m_starting_frame; };
/**
* @brief check if the file is a master file
@ -98,6 +101,21 @@ class RawFile : public FileInterface {
size_t rows() const override { return m_rows; }
size_t cols() const override { return m_cols; }
size_t bitdepth() const override { return m_bitdepth; }
Frame iread(size_t frame_number) override {
auto old_pos = tell();
seek(frame_number);
Frame tmp = read();
seek(old_pos);
return tmp;
}
std::vector<Frame> iread(size_t frame_number, size_t n_frames) override {
auto old_pos = tell();
seek(frame_number);
std::vector<Frame> tmp = read(n_frames);
seek(old_pos);
return tmp;
}
private:
/**

View File

@ -45,7 +45,8 @@ class SubFile {
* @param bitdepth bitdepth of the subfile
* @throws std::invalid_argument if the detector,type pair is not supported
*/
SubFile(const std::filesystem::path &fname, DetectorType detector, size_t rows, size_t cols, size_t bitdepth,int subfile_id);
SubFile(const std::filesystem::path &fname, DetectorType detector, size_t rows, size_t cols, size_t bitdepth,
int subfile_id);
/**
* @brief read the subfile into a buffer

View File

@ -45,6 +45,9 @@ size_t File::bitdepth() const { return file_impl->bitdepth(); }
File::~File() { delete file_impl; }
Frame File::iread(size_t frame_number) { return file_impl->iread(frame_number); }
std::vector<Frame> File::iread(size_t frame_number, size_t n_frames) {
return file_impl->iread(frame_number, n_frames);
}
File::File(File &&other) noexcept : file_impl(other.file_impl) { other.file_impl = nullptr; }

View File

@ -24,7 +24,9 @@ RawFile::RawFile(const std::filesystem::path &fname, const std::string &mode, co
} else {
throw std::runtime_error(LOCATION + "Unsupported mode");
}
aare::logger::error("axxxsdasda", m_starting_frame);
m_starting_frame = this->frame_number(0);
aare::logger::error("asdasda", m_starting_frame);
}
void RawFile::open_subfiles() {