From daabab3a1b5c94e485a3eb74a5fb4d25ee6edb89 Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Thu, 26 Dec 2024 08:06:22 -0600 Subject: [PATCH] refactor --- .../include/file_manager/direct_open_file.hpp | 24 ++++----------- .../file_manager/ring_buffer_open_file.hpp | 11 ++++--- .../src/file_manager/direct_open_file.cpp | 30 ++----------------- 3 files changed, 15 insertions(+), 50 deletions(-) diff --git a/repertory/librepertory/include/file_manager/direct_open_file.hpp b/repertory/librepertory/include/file_manager/direct_open_file.hpp index a8ab3c1f..e398631c 100644 --- a/repertory/librepertory/include/file_manager/direct_open_file.hpp +++ b/repertory/librepertory/include/file_manager/direct_open_file.hpp @@ -64,10 +64,10 @@ private: stop_type stop_requested_{false}; private: - auto download_chunk(std::size_t chunk, bool skip_active) -> api_error; - void background_reader_thread(); + auto download_chunk(std::size_t chunk, bool skip_active) -> api_error; + protected: [[nodiscard]] auto is_download_complete() const -> bool override { return false; @@ -78,24 +78,10 @@ public: void forward(std::size_t count); - [[nodiscard]] auto get_current_chunk() const -> std::size_t { - return ring_pos_; - } - - [[nodiscard]] auto get_first_chunk() const -> std::size_t { - return ring_begin_; - } - - [[nodiscard]] auto get_last_chunk() const -> std::size_t { return ring_end_; } - [[nodiscard]] auto get_read_state() const -> boost::dynamic_bitset<> override; [[nodiscard]] auto get_read_state(std::size_t chunk) const -> bool override; - [[nodiscard]] auto get_total_chunks() const -> std::size_t { - return total_chunks_; - } - [[nodiscard]] auto is_complete() const -> bool override { return true; } [[nodiscard]] auto is_write_supported() const -> bool override { @@ -122,11 +108,11 @@ public: void reverse(std::size_t count); - void set(std::size_t first_chunk, std::size_t current_chunk); - void set_api_path(const std::string &api_path) override; - [[nodiscard]] auto write(std::uint64_t, const data_buffer &, std::size_t &) + [[nodiscard]] auto write(std::uint64_t /* write_offset */, + const data_buffer & /* data */, + std::size_t & /* bytes_written */) -> api_error override { return api_error::not_supported; } 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 247d0a03..a4ebb867 100644 --- a/repertory/librepertory/include/file_manager/ring_buffer_open_file.hpp +++ b/repertory/librepertory/include/file_manager/ring_buffer_open_file.hpp @@ -65,10 +65,10 @@ private: stop_type stop_requested_{false}; private: - auto download_chunk(std::size_t chunk, bool skip_active) -> api_error; - void background_reader_thread(); + auto download_chunk(std::size_t chunk, bool skip_active) -> api_error; + protected: [[nodiscard]] auto is_download_complete() const -> bool override { return false; @@ -110,7 +110,8 @@ public: [[nodiscard]] auto native_operation(native_operation_callback callback) -> api_error override; - [[nodiscard]] auto native_operation(std::uint64_t, native_operation_callback) + [[nodiscard]] auto native_operation(std::uint64_t /* new_file_size */, + native_operation_callback /* callback */) -> api_error override { return api_error::not_supported; } @@ -128,7 +129,9 @@ public: void set_api_path(const std::string &api_path) override; - [[nodiscard]] auto write(std::uint64_t, const data_buffer &, std::size_t &) + [[nodiscard]] auto write(std::uint64_t /* write_offset */, + const data_buffer & /* data */, + std::size_t & /* bytes_written */) -> api_error override { return api_error::not_supported; } diff --git a/repertory/librepertory/src/file_manager/direct_open_file.cpp b/repertory/librepertory/src/file_manager/direct_open_file.cpp index 3fd75490..ca115c00 100644 --- a/repertory/librepertory/src/file_manager/direct_open_file.cpp +++ b/repertory/librepertory/src/file_manager/direct_open_file.cpp @@ -30,8 +30,8 @@ namespace repertory { direct_open_file::direct_open_file(std::uint64_t chunk_size, - std::uint8_t chunk_timeout, - filesystem_item fsi, i_provider &provider) + std::uint8_t chunk_timeout, + filesystem_item fsi, i_provider &provider) : open_file_base(chunk_size, chunk_timeout, fsi, provider), ring_state_(ring_size), total_chunks_(static_cast( @@ -254,7 +254,7 @@ void direct_open_file::reverse(std::size_t count) { } auto direct_open_file::read(std::size_t read_size, std::uint64_t read_offset, - data_buffer &data) -> api_error { + data_buffer &data) -> api_error { if (fsi_.directory) { return api_error::invalid_operation; } @@ -312,30 +312,6 @@ auto direct_open_file::read(std::size_t read_size, std::uint64_t read_offset, return res; } -void direct_open_file::set(std::size_t first_chunk, - std::size_t current_chunk) { - mutex_lock chunk_lock(chunk_mtx_); - if (first_chunk >= total_chunks_) { - chunk_notify_.notify_all(); - throw std::runtime_error("first chunk must be less than total chunks"); - } - - ring_begin_ = first_chunk; - ring_end_ = - std::min(total_chunks_ - 1U, ring_begin_ + ring_state_.size() - 1U); - - if (current_chunk > ring_end_) { - chunk_notify_.notify_all(); - throw std::runtime_error( - "current chunk must be less than or equal to last chunk"); - } - - ring_pos_ = current_chunk; - ring_state_.set(0U, ring_state_.size(), false); - - chunk_notify_.notify_all(); -} - void direct_open_file::set_api_path(const std::string &api_path) { mutex_lock chunk_lock(chunk_mtx_); open_file_base::set_api_path(api_path);