mirror of
https://github.com/slsdetectorgroup/aare.git
synced 2025-06-13 07:47:13 +02:00
add contextManager to hanldle files
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
#include "aare/JsonFile.hpp"
|
||||
|
||||
Frame *JsonFile::get_frame(size_t frame_number) {
|
||||
Frame JsonFile::get_frame(size_t frame_number) {
|
||||
if (frame_number > this->total_frames) {
|
||||
throw std::runtime_error("Frame number out of range");
|
||||
}
|
||||
@ -9,7 +9,7 @@ Frame *JsonFile::get_frame(size_t frame_number) {
|
||||
size_t frame_size = this->subfiles[subfile_id]->bytes_per_frame();
|
||||
buffer = new std::byte[frame_size];
|
||||
this->subfiles[subfile_id]->get_frame(buffer, frame_number % this->max_frames_per_file);
|
||||
auto f = new Frame(buffer, this->rows, this->cols, this->bitdepth );
|
||||
auto f = Frame(buffer, this->rows, this->cols, this->bitdepth );
|
||||
|
||||
|
||||
delete[] buffer;
|
||||
|
@ -49,8 +49,8 @@ void JsonFileFactory::open_subfiles(File*_file) {
|
||||
}
|
||||
}
|
||||
|
||||
File* JsonFileFactory::load_file() {
|
||||
JsonFile *file = new JsonFile();
|
||||
JsonFile* JsonFileFactory::load_file() {
|
||||
JsonFile* file = new JsonFile();
|
||||
file->fname = this->m_fpath;
|
||||
this->parse_fname(file);
|
||||
this->parse_metadata(file);
|
||||
|
@ -6,16 +6,16 @@ NumpyFile::NumpyFile(std::filesystem::path fname_){
|
||||
fp = fopen(this->fname.c_str(), "rb");
|
||||
}
|
||||
|
||||
Frame* NumpyFile::get_frame(size_t frame_number) {
|
||||
Frame NumpyFile::get_frame(size_t frame_number) {
|
||||
if (fp == nullptr) {
|
||||
throw std::runtime_error("File not open");
|
||||
}
|
||||
if (frame_number > header.shape[0]) {
|
||||
throw std::runtime_error("Frame number out of range");
|
||||
}
|
||||
Frame *frame = new Frame(header.shape[1], header.shape[2], header.dtype.itemsize*8);
|
||||
Frame frame = Frame(header.shape[1], header.shape[2], header.dtype.itemsize*8);
|
||||
fseek(fp, header_size + frame_number * bytes_per_frame(), SEEK_SET);
|
||||
fread(frame->_get_data(), bytes_per_frame(), 1, fp);
|
||||
fread(frame._get_data(), bytes_per_frame(), 1, fp);
|
||||
return frame;
|
||||
}
|
||||
|
||||
|
@ -72,8 +72,8 @@ void NumpyFileFactory::parse_metadata(File *_file) {
|
||||
file->header = {dtype, fortran_order, shape};
|
||||
}
|
||||
|
||||
File* NumpyFileFactory::load_file() {
|
||||
NumpyFile *file = new NumpyFile(this->m_fpath);
|
||||
NumpyFile* NumpyFileFactory::load_file() {
|
||||
NumpyFile* file = new NumpyFile(this->m_fpath);
|
||||
parse_metadata(file);
|
||||
std::cout << "parsed header: " << file->header.to_string() << std::endl;
|
||||
return file;
|
||||
|
Reference in New Issue
Block a user