From cef1ff706764f8525dc11d5840b5727a90b81609 Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Mon, 23 Sep 2024 20:38:52 -0500 Subject: [PATCH] refactor --- .../include/providers/base_provider.hpp | 138 +++++++++--------- .../src/providers/base_provider.cpp | 13 +- 2 files changed, 74 insertions(+), 77 deletions(-) diff --git a/repertory/librepertory/include/providers/base_provider.hpp b/repertory/librepertory/include/providers/base_provider.hpp index 3ddb6ccb..e1a787d0 100644 --- a/repertory/librepertory/include/providers/base_provider.hpp +++ b/repertory/librepertory/include/providers/base_provider.hpp @@ -46,7 +46,7 @@ private: i_file_manager *fm_{}; private: - void remove_deleted_files(); + void remove_deleted_files(bool source_only); protected: [[nodiscard]] static auto create_api_file(std::string path, std::string key, @@ -56,9 +56,9 @@ protected: std::uint64_t size, api_meta_map &meta) -> api_file; - [[nodiscard]] virtual auto create_directory_impl(const std::string &api_path, - api_meta_map &meta) - -> api_error = 0; + [[nodiscard]] virtual auto + create_directory_impl(const std::string &api_path, + api_meta_map &meta) -> api_error = 0; [[nodiscard]] virtual auto create_file_extra(const std::string & /* api_path */, @@ -70,8 +70,8 @@ protected: return api_item_added_; } - [[nodiscard]] auto get_api_item_added() const - -> const api_item_added_callback & { + [[nodiscard]] auto + get_api_item_added() const -> const api_item_added_callback & { return api_item_added_; } @@ -95,25 +95,23 @@ protected: return fm_; } - [[nodiscard]] virtual auto get_used_drive_space_impl() const - -> std::uint64_t = 0; + [[nodiscard]] virtual auto + get_used_drive_space_impl() const -> std::uint64_t = 0; - [[nodiscard]] virtual auto remove_directory_impl(const std::string &api_path) - -> api_error = 0; + [[nodiscard]] virtual auto + remove_directory_impl(const std::string &api_path) -> api_error = 0; - [[nodiscard]] virtual auto remove_file_impl(const std::string &api_path) - -> api_error = 0; + [[nodiscard]] virtual auto + remove_file_impl(const std::string &api_path) -> api_error = 0; - [[nodiscard]] virtual auto upload_file_impl(const std::string &api_path, - const std::string &source_path, - stop_type &stop_requested) - -> api_error = 0; + [[nodiscard]] virtual auto + upload_file_impl(const std::string &api_path, const std::string &source_path, + stop_type &stop_requested) -> api_error = 0; public: - [[nodiscard]] auto - create_directory_clone_source_meta(const std::string &source_api_path, - const std::string &api_path) - -> api_error override; + [[nodiscard]] auto create_directory_clone_source_meta( + const std::string &source_api_path, + const std::string &api_path) -> api_error override; [[nodiscard]] auto create_directory(const std::string &api_path, api_meta_map &meta) -> api_error override; @@ -121,80 +119,74 @@ public: [[nodiscard]] auto create_file(const std::string &api_path, api_meta_map &meta) -> api_error override; - [[nodiscard]] auto get_api_path_from_source(const std::string &source_path, - std::string &api_path) const - -> api_error override; - - [[nodiscard]] auto get_directory_items(const std::string &api_path, - directory_item_list &list) const - -> api_error override; - - [[nodiscard]] auto get_file_size(const std::string &api_path, - std::uint64_t &file_size) const - -> api_error override; - - [[nodiscard]] auto get_filesystem_item(const std::string &api_path, - bool directory, - filesystem_item &fsi) const - -> api_error override; - - [[nodiscard]] auto get_filesystem_item_and_file(const std::string &api_path, - api_file &f, - filesystem_item &fsi) const - -> api_error override; + [[nodiscard]] auto + get_api_path_from_source(const std::string &source_path, + std::string &api_path) const -> api_error override; [[nodiscard]] auto - get_filesystem_item_from_source_path(const std::string &source_path, - filesystem_item &fsi) const - -> api_error override; + get_directory_items(const std::string &api_path, + directory_item_list &list) const -> api_error override; - [[nodiscard]] auto get_item_meta(const std::string &api_path, - api_meta_map &meta) const - -> api_error override; + [[nodiscard]] auto + get_file_size(const std::string &api_path, + std::uint64_t &file_size) const -> api_error override; - [[nodiscard]] auto get_item_meta(const std::string &api_path, - const std::string &key, - std::string &value) const - -> api_error override; + [[nodiscard]] auto + get_filesystem_item(const std::string &api_path, bool directory, + filesystem_item &fsi) const -> api_error override; - [[nodiscard]] auto get_pinned_files() const - -> std::vector override; + [[nodiscard]] auto get_filesystem_item_and_file( + const std::string &api_path, api_file &f, + filesystem_item &fsi) const -> api_error override; + + [[nodiscard]] auto get_filesystem_item_from_source_path( + const std::string &source_path, + filesystem_item &fsi) const -> api_error override; + + [[nodiscard]] auto + get_item_meta(const std::string &api_path, + api_meta_map &meta) const -> api_error override; + + [[nodiscard]] auto + get_item_meta(const std::string &api_path, const std::string &key, + std::string &value) const -> api_error override; + + [[nodiscard]] auto + get_pinned_files() const -> std::vector override; [[nodiscard]] auto get_total_item_count() const -> std::uint64_t override; [[nodiscard]] auto get_used_drive_space() const -> std::uint64_t override; - [[nodiscard]] auto is_file_writeable(const std::string &api_path) const - -> bool override; + [[nodiscard]] auto + is_file_writeable(const std::string &api_path) const -> bool override; - [[nodiscard]] auto remove_directory(const std::string &api_path) - -> api_error override; + [[nodiscard]] auto + remove_directory(const std::string &api_path) -> api_error override; - [[nodiscard]] auto remove_file(const std::string &api_path) - -> api_error override; + [[nodiscard]] auto + remove_file(const std::string &api_path) -> api_error override; - [[nodiscard]] auto remove_item_meta(const std::string &api_path, - const std::string &key) - -> api_error override; + [[nodiscard]] auto + remove_item_meta(const std::string &api_path, + const std::string &key) -> api_error override; - [[nodiscard]] auto set_item_meta(const std::string &api_path, - const std::string &key, - const std::string &value) - -> api_error override; + [[nodiscard]] auto + set_item_meta(const std::string &api_path, const std::string &key, + const std::string &value) -> api_error override; - [[nodiscard]] auto set_item_meta(const std::string &api_path, - const api_meta_map &meta) - -> api_error override; + [[nodiscard]] auto + set_item_meta(const std::string &api_path, + const api_meta_map &meta) -> api_error override; [[nodiscard]] auto start(api_item_added_callback api_item_added, i_file_manager *mgr) -> bool override; void stop() override; - [[nodiscard]] auto upload_file(const std::string &api_path, - const std::string &source_path, - stop_type &stop_requested) - -> api_error override; + [[nodiscard]] auto + upload_file(const std::string &api_path, const std::string &source_path, + stop_type &stop_requested) -> api_error override; }; } // namespace repertory diff --git a/repertory/librepertory/src/providers/base_provider.cpp b/repertory/librepertory/src/providers/base_provider.cpp index 1e36f46f..5544f95b 100644 --- a/repertory/librepertory/src/providers/base_provider.cpp +++ b/repertory/librepertory/src/providers/base_provider.cpp @@ -435,7 +435,7 @@ auto base_provider::is_file_writeable(const std::string &api_path) const return not exists; } -void base_provider::remove_deleted_files() { +void base_provider::remove_deleted_files(bool source_only) { static constexpr const std::string_view function_name{ static_cast(__FUNCTION__), }; @@ -475,6 +475,10 @@ void base_provider::remove_deleted_files() { } } + if (source_only) { + return; + } + struct removed_item { std::string api_path{}; bool directory{}; @@ -708,10 +712,11 @@ auto base_provider::start(api_item_added_callback api_item_added, } if (online && not unmount_requested) { - remove_deleted_files(); + remove_deleted_files(true); - polling::instance().set_callback({"check_deleted", polling::frequency::low, - [this]() { remove_deleted_files(); }}); + polling::instance().set_callback( + {"check_deleted", polling::frequency::low, + [this]() { remove_deleted_files(false); }}); return true; }