mirror of
https://github.com/mhx/dwarfs.git
synced 2025-09-08 20:12:56 -04:00
refactor(filesystem_v2): simplify constructor
This commit is contained in:
parent
a5c293f5b7
commit
447320b15a
@ -64,7 +64,7 @@ class filesystem_v2 {
|
||||
filesystem_v2(logger& lgr, std::shared_ptr<mmif> mm);
|
||||
|
||||
filesystem_v2(logger& lgr, std::shared_ptr<mmif> mm,
|
||||
filesystem_options const& options, int inode_offset = 0,
|
||||
filesystem_options const& options,
|
||||
std::shared_ptr<performance_monitor const> perfmon = nullptr);
|
||||
|
||||
static int
|
||||
|
@ -75,6 +75,7 @@ struct filesystem_options {
|
||||
file_off_t image_offset{0};
|
||||
block_cache_options block_cache;
|
||||
metadata_options metadata;
|
||||
int inode_offset{0};
|
||||
};
|
||||
|
||||
struct filesystem_writer_options {
|
||||
|
@ -351,7 +351,7 @@ template <typename LoggerPolicy>
|
||||
class filesystem_ final : public filesystem_v2::impl {
|
||||
public:
|
||||
filesystem_(logger& lgr, std::shared_ptr<mmif> mm,
|
||||
const filesystem_options& options, int inode_offset,
|
||||
const filesystem_options& options,
|
||||
std::shared_ptr<performance_monitor const> perfmon);
|
||||
|
||||
void dump(std::ostream& os, int detail_level) const override;
|
||||
@ -482,7 +482,6 @@ filesystem_info const& filesystem_<LoggerPolicy>::get_info() const {
|
||||
template <typename LoggerPolicy>
|
||||
filesystem_<LoggerPolicy>::filesystem_(
|
||||
logger& lgr, std::shared_ptr<mmif> mm, const filesystem_options& options,
|
||||
int inode_offset,
|
||||
std::shared_ptr<performance_monitor const> perfmon [[maybe_unused]])
|
||||
: LOG_PROXY_INIT(lgr)
|
||||
, mm_(std::move(mm))
|
||||
@ -532,7 +531,7 @@ filesystem_<LoggerPolicy>::filesystem_(
|
||||
std::vector<uint8_t> schema_buffer;
|
||||
|
||||
meta_ = make_metadata(lgr, mm_, sections, schema_buffer, meta_buffer_,
|
||||
options.metadata, inode_offset, false,
|
||||
options.metadata, options.inode_offset, false,
|
||||
options.lock_mode, !parser_.has_checksums());
|
||||
|
||||
LOG_DEBUG << "read " << cache.block_count() << " blocks and " << meta_.size()
|
||||
@ -880,11 +879,10 @@ filesystem_v2::filesystem_v2(logger& lgr, std::shared_ptr<mmif> mm)
|
||||
|
||||
filesystem_v2::filesystem_v2(logger& lgr, std::shared_ptr<mmif> mm,
|
||||
const filesystem_options& options,
|
||||
int inode_offset,
|
||||
std::shared_ptr<performance_monitor const> perfmon)
|
||||
: impl_(make_unique_logging_object<filesystem_v2::impl, filesystem_,
|
||||
logger_policies>(
|
||||
lgr, std::move(mm), options, inode_offset, std::move(perfmon))) {}
|
||||
lgr, std::move(mm), options, std::move(perfmon))) {}
|
||||
|
||||
int filesystem_v2::identify(logger& lgr, std::shared_ptr<mmif> mm,
|
||||
std::ostream& os, int detail_level,
|
||||
|
@ -1162,6 +1162,15 @@ int run_fuse(struct fuse_args& args, char* mountpoint, int mt, int fg,
|
||||
template <typename LoggerPolicy>
|
||||
void load_filesystem(dwarfs_userdata& userdata) {
|
||||
LOG_PROXY(LoggerPolicy, userdata.lgr);
|
||||
|
||||
constexpr int const inode_offset =
|
||||
#ifdef FUSE_ROOT_ID
|
||||
FUSE_ROOT_ID
|
||||
#else
|
||||
0
|
||||
#endif
|
||||
;
|
||||
|
||||
auto ti = LOG_TIMED_INFO;
|
||||
auto& opts = userdata.opts;
|
||||
|
||||
@ -1174,6 +1183,7 @@ void load_filesystem(dwarfs_userdata& userdata) {
|
||||
fsopts.block_cache.init_workers = false;
|
||||
fsopts.metadata.enable_nlink = bool(opts.enable_nlink);
|
||||
fsopts.metadata.readonly = bool(opts.readonly);
|
||||
fsopts.inode_offset = inode_offset;
|
||||
|
||||
if (opts.image_offset_str) {
|
||||
std::string image_offset{opts.image_offset_str};
|
||||
@ -1187,14 +1197,6 @@ void load_filesystem(dwarfs_userdata& userdata) {
|
||||
}
|
||||
}
|
||||
|
||||
constexpr int inode_offset =
|
||||
#ifdef FUSE_ROOT_ID
|
||||
FUSE_ROOT_ID
|
||||
#else
|
||||
0
|
||||
#endif
|
||||
;
|
||||
|
||||
std::unordered_set<std::string> perfmon_enabled;
|
||||
#if DWARFS_PERFMON_ENABLED
|
||||
if (opts.perfmon_enabled_str) {
|
||||
@ -1221,7 +1223,7 @@ void load_filesystem(dwarfs_userdata& userdata) {
|
||||
|
||||
userdata.fs =
|
||||
filesystem_v2(userdata.lgr, std::make_shared<mmap>(opts.fsimage), fsopts,
|
||||
inode_offset, userdata.perfmon);
|
||||
userdata.perfmon);
|
||||
|
||||
ti << "file system initialized";
|
||||
}
|
||||
|
@ -142,8 +142,7 @@ int dwarfsextract_main(int argc, sys_char** argv) {
|
||||
std::shared_ptr<performance_monitor> perfmon =
|
||||
performance_monitor::create(perfmon_enabled);
|
||||
|
||||
filesystem_v2 fs(lgr, std::make_shared<mmap>(filesystem), fsopts, 0,
|
||||
perfmon);
|
||||
filesystem_v2 fs(lgr, std::make_shared<mmap>(filesystem), fsopts, perfmon);
|
||||
filesystem_extractor fsx(lgr);
|
||||
|
||||
if (format.empty()) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user