From e4d8f99d7a31a9a3894a9b2dec9e2d6cd8fa9525 Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Fri, 27 Dec 2024 15:08:14 -0600 Subject: [PATCH] refactor --- .../file_manager/ring_buffer_open_file.hpp | 4 +++- .../src/file_manager/ring_buffer_open_file.cpp | 15 +++++++++------ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/repertory/librepertory/include/file_manager/ring_buffer_open_file.hpp b/repertory/librepertory/include/file_manager/ring_buffer_open_file.hpp index 6b6ac7b3..e02bf77a 100644 --- a/repertory/librepertory/include/file_manager/ring_buffer_open_file.hpp +++ b/repertory/librepertory/include/file_manager/ring_buffer_open_file.hpp @@ -49,7 +49,9 @@ public: private: std::string source_path_; - data_buffer data_buffer_; + +private: + data_buffer read_buffer_; protected: [[nodiscard]] auto diff --git a/repertory/librepertory/src/file_manager/ring_buffer_open_file.cpp b/repertory/librepertory/src/file_manager/ring_buffer_open_file.cpp index e01ba7db..91d7f105 100644 --- a/repertory/librepertory/src/file_manager/ring_buffer_open_file.cpp +++ b/repertory/librepertory/src/file_manager/ring_buffer_open_file.cpp @@ -56,7 +56,7 @@ auto ring_buffer_open_file::can_handle_file(std::uint64_t file_size, auto ring_buffer_open_file::get_read_buffer(std::size_t /* chunk */) -> data_buffer & { - return data_buffer_; + return read_buffer_; } auto ring_buffer_open_file::on_check_start() -> bool { @@ -113,20 +113,23 @@ void ring_buffer_open_file::on_destroy() { nf_->close(); nf_.reset(); - if (not utils::file::file(get_source_path()).remove()) { - utils::error::raise_api_path_error( - function_name, get_api_path(), get_source_path(), - utils::get_last_error_code(), "failed to delete file"); + if (utils::file::file(get_source_path()).remove()) { + return; } + + utils::error::raise_api_path_error( + function_name, get_api_path(), get_source_path(), + utils::get_last_error_code(), "failed to delete file"); } auto ring_buffer_open_file::use_buffer( std::size_t chunk, std::function func) -> api_error { data_buffer buffer; + buffer.resize(get_chunk_size()); + auto res = do_io([&]() -> api_error { std::size_t bytes_read{}; - buffer.resize(get_chunk_size()); auto result = nf_->read(buffer, (chunk % get_read_state_size()) * get_chunk_size(), &bytes_read)