refactor(inode_manager): move to internal namespace

This commit is contained in:
Marcus Holland-Moritz 2024-07-28 15:06:54 +02:00
parent e7a59133f4
commit a1e045a2f4
6 changed files with 27 additions and 38 deletions

View File

@ -656,11 +656,11 @@ list(APPEND LIBDWARFS_WRITER_SRC
src/dwarfs/fragment_order_parser.cpp src/dwarfs/fragment_order_parser.cpp
src/dwarfs/inode_element_view.cpp src/dwarfs/inode_element_view.cpp
src/dwarfs/inode_fragments.cpp src/dwarfs/inode_fragments.cpp
src/dwarfs/inode_manager.cpp
src/dwarfs/inode_ordering.cpp src/dwarfs/inode_ordering.cpp
src/dwarfs/internal/block_manager.cpp src/dwarfs/internal/block_manager.cpp
src/dwarfs/internal/file_scanner.cpp src/dwarfs/internal/file_scanner.cpp
src/dwarfs/internal/global_entry_data.cpp src/dwarfs/internal/global_entry_data.cpp
src/dwarfs/internal/inode_manager.cpp
src/dwarfs/internal/metadata_freezer.cpp src/dwarfs/internal/metadata_freezer.cpp
src/dwarfs/nilsimsa.cpp src/dwarfs/nilsimsa.cpp
src/dwarfs/progress.cpp src/dwarfs/progress.cpp

View File

@ -29,21 +29,17 @@
namespace dwarfs { namespace dwarfs {
class file; class file;
class inode_manager;
class logger; class logger;
class os_access; class os_access;
class progress; class progress;
namespace internal {
class worker_group;
}
struct inode_options; struct inode_options;
namespace internal { namespace internal {
class inode_manager;
class worker_group;
class file_scanner { class file_scanner {
public: public:
struct options { struct options {
@ -51,7 +47,7 @@ class file_scanner {
bool debug_inode_create{false}; bool debug_inode_create{false};
}; };
file_scanner(logger& lgr, internal::worker_group& wg, os_access const& os, file_scanner(logger& lgr, worker_group& wg, os_access const& os,
inode_manager& im, progress& prog, options const& opts); inode_manager& im, progress& prog, options const& opts);
void scan(file* p) { impl_->scan(p); } void scan(file* p) { impl_->scan(p); }

View File

@ -41,14 +41,12 @@ class os_access;
class progress; class progress;
class script; class script;
struct inode_options;
namespace internal { namespace internal {
class worker_group; class worker_group;
}
struct inode_options;
class inode_manager { class inode_manager {
public: public:
using inode_cb = std::function<void(std::shared_ptr<inode> const&)>; using inode_cb = std::function<void(std::shared_ptr<inode> const&)>;
@ -85,14 +83,14 @@ class inode_manager {
return impl_->fragment_category_info(); return impl_->fragment_category_info();
} }
void scan_background(internal::worker_group& wg, os_access const& os, void scan_background(worker_group& wg, os_access const& os,
std::shared_ptr<inode> ino, file* p) const { std::shared_ptr<inode> ino, file* p) const {
impl_->scan_background(wg, os, std::move(ino), p); impl_->scan_background(wg, os, std::move(ino), p);
} }
bool has_invalid_inodes() const { return impl_->has_invalid_inodes(); } bool has_invalid_inodes() const { return impl_->has_invalid_inodes(); }
void try_scan_invalid(internal::worker_group& wg, os_access const& os) { void try_scan_invalid(worker_group& wg, os_access const& os) {
impl_->try_scan_invalid(wg, os); impl_->try_scan_invalid(wg, os);
} }
@ -101,7 +99,7 @@ class inode_manager {
sortable_inode_span sortable_span() const { return impl_->sortable_span(); } sortable_inode_span sortable_span() const { return impl_->sortable_span(); }
sortable_inode_span sortable_inode_span
ordered_span(fragment_category cat, internal::worker_group& wg) const { ordered_span(fragment_category cat, worker_group& wg) const {
return impl_->ordered_span(cat, wg); return impl_->ordered_span(cat, wg);
} }
@ -114,20 +112,20 @@ class inode_manager {
virtual void for_each_inode_in_order( virtual void for_each_inode_in_order(
std::function<void(std::shared_ptr<inode> const&)> const& fn) const = 0; std::function<void(std::shared_ptr<inode> const&)> const& fn) const = 0;
virtual fragment_infos fragment_category_info() const = 0; virtual fragment_infos fragment_category_info() const = 0;
virtual void virtual void scan_background(worker_group& wg, os_access const& os,
scan_background(internal::worker_group& wg, os_access const& os, std::shared_ptr<inode> ino, file* p) const = 0;
std::shared_ptr<inode> ino, file* p) const = 0;
virtual bool has_invalid_inodes() const = 0; virtual bool has_invalid_inodes() const = 0;
virtual void virtual void try_scan_invalid(worker_group& wg, os_access const& os) = 0;
try_scan_invalid(internal::worker_group& wg, os_access const& os) = 0;
virtual void dump(std::ostream& os) const = 0; virtual void dump(std::ostream& os) const = 0;
virtual sortable_inode_span sortable_span() const = 0; virtual sortable_inode_span sortable_span() const = 0;
virtual sortable_inode_span virtual sortable_inode_span
ordered_span(fragment_category cat, internal::worker_group& wg) const = 0; ordered_span(fragment_category cat, worker_group& wg) const = 0;
}; };
private: private:
std::unique_ptr<impl> impl_; std::unique_ptr<impl> impl_;
}; };
} // namespace internal
} // namespace dwarfs } // namespace dwarfs

View File

@ -36,7 +36,6 @@
#include <dwarfs/entry.h> #include <dwarfs/entry.h>
#include <dwarfs/format.h> #include <dwarfs/format.h>
#include <dwarfs/inode.h> #include <dwarfs/inode.h>
#include <dwarfs/inode_manager.h>
#include <dwarfs/logger.h> #include <dwarfs/logger.h>
#include <dwarfs/mmif.h> #include <dwarfs/mmif.h>
#include <dwarfs/options.h> #include <dwarfs/options.h>
@ -45,6 +44,7 @@
#include <dwarfs/util.h> #include <dwarfs/util.h>
#include <dwarfs/internal/file_scanner.h> #include <dwarfs/internal/file_scanner.h>
#include <dwarfs/internal/inode_manager.h>
#include <dwarfs/internal/worker_group.h> #include <dwarfs/internal/worker_group.h>
namespace dwarfs::internal { namespace dwarfs::internal {
@ -59,7 +59,7 @@ constexpr size_t const kLargeFileStartHashSize = 4096;
template <typename LoggerPolicy> template <typename LoggerPolicy>
class file_scanner_ final : public file_scanner::impl { class file_scanner_ final : public file_scanner::impl {
public: public:
file_scanner_(logger& lgr, internal::worker_group& wg, os_access const& os, file_scanner_(logger& lgr, worker_group& wg, os_access const& os,
inode_manager& im, progress& prog, inode_manager& im, progress& prog,
file_scanner::options const& opts); file_scanner::options const& opts);
@ -119,7 +119,7 @@ class file_scanner_ final : public file_scanner::impl {
void dump_map(std::ostream& os, std::string_view name, T const& map) const; void dump_map(std::ostream& os, std::string_view name, T const& map) const;
LOG_PROXY_DECL(LoggerPolicy); LOG_PROXY_DECL(LoggerPolicy);
internal::worker_group& wg_; worker_group& wg_;
os_access const& os_; os_access const& os_;
inode_manager& im_; inode_manager& im_;
progress& prog_; progress& prog_;
@ -188,8 +188,7 @@ class file_scanner_ final : public file_scanner::impl {
// it should happen rarely enough to not be a problem. // it should happen rarely enough to not be a problem.
template <typename LoggerPolicy> template <typename LoggerPolicy>
file_scanner_<LoggerPolicy>::file_scanner_(logger& lgr, file_scanner_<LoggerPolicy>::file_scanner_(logger& lgr, worker_group& wg,
internal::worker_group& wg,
os_access const& os, os_access const& os,
inode_manager& im, progress& prog, inode_manager& im, progress& prog,
file_scanner::options const& opts) file_scanner::options const& opts)
@ -681,9 +680,9 @@ void file_scanner_<LoggerPolicy>::dump(std::ostream& os) const {
os << "\n}\n"; os << "\n}\n";
} }
file_scanner::file_scanner(logger& lgr, internal::worker_group& wg, file_scanner::file_scanner(logger& lgr, worker_group& wg, os_access const& os,
os_access const& os, inode_manager& im, inode_manager& im, progress& prog,
progress& prog, options const& opts) options const& opts)
: impl_{make_unique_logging_object<impl, file_scanner_, logger_policies>( : impl_{make_unique_logging_object<impl, file_scanner_, logger_policies>(
lgr, wg, os, im, prog, opts)} {} lgr, wg, os, im, prog, opts)} {}

View File

@ -44,7 +44,6 @@
#include <dwarfs/compiler.h> #include <dwarfs/compiler.h>
#include <dwarfs/entry.h> #include <dwarfs/entry.h>
#include <dwarfs/error.h> #include <dwarfs/error.h>
#include <dwarfs/inode_manager.h>
#include <dwarfs/inode_ordering.h> #include <dwarfs/inode_ordering.h>
#include <dwarfs/logger.h> #include <dwarfs/logger.h>
#include <dwarfs/match.h> #include <dwarfs/match.h>
@ -60,13 +59,12 @@
#include <dwarfs/similarity_ordering.h> #include <dwarfs/similarity_ordering.h>
#include <dwarfs/util.h> #include <dwarfs/util.h>
#include <dwarfs/internal/inode_manager.h>
#include <dwarfs/internal/worker_group.h> #include <dwarfs/internal/worker_group.h>
#include <dwarfs/gen-cpp2/metadata_types.h> #include <dwarfs/gen-cpp2/metadata_types.h>
namespace dwarfs { namespace dwarfs::internal {
namespace internal {
namespace { namespace {
@ -814,11 +812,9 @@ auto inode_manager_<LoggerPolicy>::ordered_span(
return span; return span;
} }
} // namespace internal
inode_manager::inode_manager(logger& lgr, progress& prog, inode_manager::inode_manager(logger& lgr, progress& prog,
inode_options const& opts) inode_options const& opts)
: impl_(make_unique_logging_object<impl, internal::inode_manager_, : impl_(make_unique_logging_object<impl, internal::inode_manager_,
logger_policies>(lgr, prog, opts)) {} logger_policies>(lgr, prog, opts)) {}
} // namespace dwarfs } // namespace dwarfs::internal

View File

@ -46,7 +46,6 @@
#include <dwarfs/fragment_chunkable.h> #include <dwarfs/fragment_chunkable.h>
#include <dwarfs/history.h> #include <dwarfs/history.h>
#include <dwarfs/inode.h> #include <dwarfs/inode.h>
#include <dwarfs/inode_manager.h>
#include <dwarfs/inode_ordering.h> #include <dwarfs/inode_ordering.h>
#include <dwarfs/logger.h> #include <dwarfs/logger.h>
#include <dwarfs/mmif.h> #include <dwarfs/mmif.h>
@ -65,6 +64,7 @@
#include <dwarfs/internal/features.h> #include <dwarfs/internal/features.h>
#include <dwarfs/internal/file_scanner.h> #include <dwarfs/internal/file_scanner.h>
#include <dwarfs/internal/global_entry_data.h> #include <dwarfs/internal/global_entry_data.h>
#include <dwarfs/internal/inode_manager.h>
#include <dwarfs/internal/metadata_freezer.h> #include <dwarfs/internal/metadata_freezer.h>
#include <dwarfs/internal/string_table.h> #include <dwarfs/internal/string_table.h>
#include <dwarfs/internal/worker_group.h> #include <dwarfs/internal/worker_group.h>