diff --git a/core/include/aare/Frame.hpp b/core/include/aare/Frame.hpp index c48a4b4..8ee386d 100644 --- a/core/include/aare/Frame.hpp +++ b/core/include/aare/Frame.hpp @@ -26,22 +26,23 @@ class Frame { Frame(ssize_t rows, ssize_t cols, ssize_t m_bitdepth); Frame(std::byte *fp, ssize_t rows, ssize_t cols, ssize_t m_bitdepth); std::byte *get(int row, int col); - // template void set(int row, int col, T data); + + + //TODO! can we, or even want to remove the template? template void set(int row, int col, T data) { assert(sizeof(T) == m_bitdepth/8); if (row < 0 || row >= m_rows || col < 0 || col >= m_cols) { - std::cerr << "Invalid row or column index" << std::endl; - return; - } - std::memcpy(m_data+(row*m_cols + col)*(m_bitdepth/8), &data, m_bitdepth/8); -} + throw std::out_of_range("Invalid row or column index"); + } + std::memcpy(m_data+(row*m_cols + col)*(m_bitdepth/8), &data, m_bitdepth/8); + } ssize_t rows() const { return m_rows; } ssize_t cols() const { return m_cols; } ssize_t bitdepth() const { return m_bitdepth; } ssize_t size() const { return m_rows * m_cols * m_bitdepth / 8; } - std::byte *_get_data() { return m_data; } + std::byte *data() { return m_data; } Frame &operator=(Frame &other) { m_rows = other.rows(); diff --git a/file_io/src/NumpyFile.cpp b/file_io/src/NumpyFile.cpp index e153b5f..ab7e602 100644 --- a/file_io/src/NumpyFile.cpp +++ b/file_io/src/NumpyFile.cpp @@ -38,14 +38,14 @@ void NumpyFile::write(Frame &frame) { throw std::runtime_error("File not open for writing"); } fseek(fp, 0, SEEK_END); - fwrite(frame._get_data(), frame.size(), 1, fp); + fwrite(frame.data(), frame.size(), 1, fp); } Frame NumpyFile::get_frame(size_t frame_number) { Frame frame(m_header.shape[1], m_header.shape[2], m_header.dtype.bitdepth()); - get_frame_into(frame_number, frame._get_data()); + get_frame_into(frame_number, frame.data()); return frame; } void NumpyFile::get_frame_into(size_t frame_number, std::byte *image_buf) { diff --git a/file_io/src/RawFile.cpp b/file_io/src/RawFile.cpp index e3e52d4..0fd23ce 100644 --- a/file_io/src/RawFile.cpp +++ b/file_io/src/RawFile.cpp @@ -5,7 +5,7 @@ namespace aare{ Frame RawFile::get_frame(size_t frame_number) { auto f = Frame(this->m_rows, this->m_cols, this->m_bitdepth); - std::byte *frame_buffer = f._get_data(); + std::byte *frame_buffer = f.data(); get_frame_into(frame_number, frame_buffer); return f; }