refactor
This commit is contained in:
		| @@ -46,7 +46,7 @@ private: | |||||||
|   i_file_manager *fm_{}; |   i_file_manager *fm_{}; | ||||||
|  |  | ||||||
| private: | private: | ||||||
|   void remove_deleted_files(); |   void remove_deleted_files(bool source_only); | ||||||
|  |  | ||||||
| protected: | protected: | ||||||
|   [[nodiscard]] static auto create_api_file(std::string path, std::string key, |   [[nodiscard]] static auto create_api_file(std::string path, std::string key, | ||||||
| @@ -56,9 +56,9 @@ protected: | |||||||
|                                             std::uint64_t size, |                                             std::uint64_t size, | ||||||
|                                             api_meta_map &meta) -> api_file; |                                             api_meta_map &meta) -> api_file; | ||||||
|  |  | ||||||
|   [[nodiscard]] virtual auto create_directory_impl(const std::string &api_path, |   [[nodiscard]] virtual auto | ||||||
|                                                    api_meta_map &meta) |   create_directory_impl(const std::string &api_path, | ||||||
|       -> api_error = 0; |                         api_meta_map &meta) -> api_error = 0; | ||||||
|  |  | ||||||
|   [[nodiscard]] virtual auto |   [[nodiscard]] virtual auto | ||||||
|   create_file_extra(const std::string & /* api_path */, |   create_file_extra(const std::string & /* api_path */, | ||||||
| @@ -70,8 +70,8 @@ protected: | |||||||
|     return api_item_added_; |     return api_item_added_; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   [[nodiscard]] auto get_api_item_added() const |   [[nodiscard]] auto | ||||||
|       -> const api_item_added_callback & { |   get_api_item_added() const -> const api_item_added_callback & { | ||||||
|     return api_item_added_; |     return api_item_added_; | ||||||
|   } |   } | ||||||
|  |  | ||||||
| @@ -95,25 +95,23 @@ protected: | |||||||
|     return fm_; |     return fm_; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   [[nodiscard]] virtual auto get_used_drive_space_impl() const |   [[nodiscard]] virtual auto | ||||||
|       -> std::uint64_t = 0; |   get_used_drive_space_impl() const -> std::uint64_t = 0; | ||||||
|  |  | ||||||
|   [[nodiscard]] virtual auto remove_directory_impl(const std::string &api_path) |   [[nodiscard]] virtual auto | ||||||
|       -> api_error = 0; |   remove_directory_impl(const std::string &api_path) -> api_error = 0; | ||||||
|  |  | ||||||
|   [[nodiscard]] virtual auto remove_file_impl(const std::string &api_path) |   [[nodiscard]] virtual auto | ||||||
|       -> api_error = 0; |   remove_file_impl(const std::string &api_path) -> api_error = 0; | ||||||
|  |  | ||||||
|   [[nodiscard]] virtual auto upload_file_impl(const std::string &api_path, |   [[nodiscard]] virtual auto | ||||||
|                                               const std::string &source_path, |   upload_file_impl(const std::string &api_path, const std::string &source_path, | ||||||
|                                               stop_type &stop_requested) |                    stop_type &stop_requested) -> api_error = 0; | ||||||
|       -> api_error = 0; |  | ||||||
|  |  | ||||||
| public: | public: | ||||||
|   [[nodiscard]] auto |   [[nodiscard]] auto create_directory_clone_source_meta( | ||||||
|   create_directory_clone_source_meta(const std::string &source_api_path, |       const std::string &source_api_path, | ||||||
|                                      const std::string &api_path) |       const std::string &api_path) -> api_error override; | ||||||
|       -> api_error override; |  | ||||||
|  |  | ||||||
|   [[nodiscard]] auto create_directory(const std::string &api_path, |   [[nodiscard]] auto create_directory(const std::string &api_path, | ||||||
|                                       api_meta_map &meta) -> api_error override; |                                       api_meta_map &meta) -> api_error override; | ||||||
| @@ -121,80 +119,74 @@ public: | |||||||
|   [[nodiscard]] auto create_file(const std::string &api_path, |   [[nodiscard]] auto create_file(const std::string &api_path, | ||||||
|                                  api_meta_map &meta) -> api_error override; |                                  api_meta_map &meta) -> api_error override; | ||||||
|  |  | ||||||
|   [[nodiscard]] auto get_api_path_from_source(const std::string &source_path, |   [[nodiscard]] auto | ||||||
|                                               std::string &api_path) const |   get_api_path_from_source(const std::string &source_path, | ||||||
|       -> api_error override; |                            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 |   [[nodiscard]] auto | ||||||
|   get_filesystem_item_from_source_path(const std::string &source_path, |   get_directory_items(const std::string &api_path, | ||||||
|                                        filesystem_item &fsi) const |                       directory_item_list &list) const -> api_error override; | ||||||
|       -> api_error override; |  | ||||||
|  |  | ||||||
|   [[nodiscard]] auto get_item_meta(const std::string &api_path, |   [[nodiscard]] auto | ||||||
|                                    api_meta_map &meta) const |   get_file_size(const std::string &api_path, | ||||||
|       -> api_error override; |                 std::uint64_t &file_size) const -> api_error override; | ||||||
|  |  | ||||||
|   [[nodiscard]] auto get_item_meta(const std::string &api_path, |   [[nodiscard]] auto | ||||||
|                                    const std::string &key, |   get_filesystem_item(const std::string &api_path, bool directory, | ||||||
|                                    std::string &value) const |                       filesystem_item &fsi) const -> api_error override; | ||||||
|       -> api_error override; |  | ||||||
|  |  | ||||||
|   [[nodiscard]] auto get_pinned_files() const |   [[nodiscard]] auto get_filesystem_item_and_file( | ||||||
|       -> std::vector<std::string> override; |       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<std::string> override; | ||||||
|  |  | ||||||
|   [[nodiscard]] auto get_total_item_count() const -> std::uint64_t 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 get_used_drive_space() const -> std::uint64_t override; | ||||||
|  |  | ||||||
|   [[nodiscard]] auto is_file_writeable(const std::string &api_path) const |   [[nodiscard]] auto | ||||||
|       -> bool override; |   is_file_writeable(const std::string &api_path) const -> bool override; | ||||||
|  |  | ||||||
|   [[nodiscard]] auto remove_directory(const std::string &api_path) |   [[nodiscard]] auto | ||||||
|       -> api_error override; |   remove_directory(const std::string &api_path) -> api_error override; | ||||||
|  |  | ||||||
|   [[nodiscard]] auto remove_file(const std::string &api_path) |   [[nodiscard]] auto | ||||||
|       -> api_error override; |   remove_file(const std::string &api_path) -> api_error override; | ||||||
|  |  | ||||||
|   [[nodiscard]] auto remove_item_meta(const std::string &api_path, |   [[nodiscard]] auto | ||||||
|                                       const std::string &key) |   remove_item_meta(const std::string &api_path, | ||||||
|       -> api_error override; |                    const std::string &key) -> api_error override; | ||||||
|  |  | ||||||
|   [[nodiscard]] auto set_item_meta(const std::string &api_path, |   [[nodiscard]] auto | ||||||
|                                    const std::string &key, |   set_item_meta(const std::string &api_path, const std::string &key, | ||||||
|                                    const std::string &value) |                 const std::string &value) -> api_error override; | ||||||
|       -> api_error override; |  | ||||||
|  |  | ||||||
|   [[nodiscard]] auto set_item_meta(const std::string &api_path, |   [[nodiscard]] auto | ||||||
|                                    const api_meta_map &meta) |   set_item_meta(const std::string &api_path, | ||||||
|       -> api_error override; |                 const api_meta_map &meta) -> api_error override; | ||||||
|  |  | ||||||
|   [[nodiscard]] auto start(api_item_added_callback api_item_added, |   [[nodiscard]] auto start(api_item_added_callback api_item_added, | ||||||
|                            i_file_manager *mgr) -> bool override; |                            i_file_manager *mgr) -> bool override; | ||||||
|  |  | ||||||
|   void stop() override; |   void stop() override; | ||||||
|  |  | ||||||
|   [[nodiscard]] auto upload_file(const std::string &api_path, |   [[nodiscard]] auto | ||||||
|                                  const std::string &source_path, |   upload_file(const std::string &api_path, const std::string &source_path, | ||||||
|                                  stop_type &stop_requested) |               stop_type &stop_requested) -> api_error override; | ||||||
|       -> api_error override; |  | ||||||
| }; | }; | ||||||
| } // namespace repertory | } // namespace repertory | ||||||
|  |  | ||||||
|   | |||||||
| @@ -435,7 +435,7 @@ auto base_provider::is_file_writeable(const std::string &api_path) const | |||||||
|   return not exists; |   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 constexpr const std::string_view function_name{ | ||||||
|       static_cast<const char *>(__FUNCTION__), |       static_cast<const char *>(__FUNCTION__), | ||||||
|   }; |   }; | ||||||
| @@ -475,6 +475,10 @@ void base_provider::remove_deleted_files() { | |||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |   if (source_only) { | ||||||
|  |     return; | ||||||
|  |   } | ||||||
|  |  | ||||||
|   struct removed_item { |   struct removed_item { | ||||||
|     std::string api_path{}; |     std::string api_path{}; | ||||||
|     bool directory{}; |     bool directory{}; | ||||||
| @@ -708,10 +712,11 @@ auto base_provider::start(api_item_added_callback api_item_added, | |||||||
|   } |   } | ||||||
|  |  | ||||||
|   if (online && not unmount_requested) { |   if (online && not unmount_requested) { | ||||||
|     remove_deleted_files(); |     remove_deleted_files(true); | ||||||
|  |  | ||||||
|     polling::instance().set_callback({"check_deleted", polling::frequency::low, |     polling::instance().set_callback( | ||||||
|                                       [this]() { remove_deleted_files(); }}); |         {"check_deleted", polling::frequency::low, | ||||||
|  |          [this]() { remove_deleted_files(false); }}); | ||||||
|     return true; |     return true; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user