From df64fa05aab7f15b3a91863e894781c6a7d7354e Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Mon, 29 Jul 2024 12:31:09 +0200 Subject: [PATCH] refactor(segmenter_factory): more flexible ctors --- include/dwarfs/segmenter_factory.h | 6 ++++-- src/dwarfs/segmenter_factory.cpp | 8 ++++++++ test/dwarfs_test.cpp | 2 +- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/include/dwarfs/segmenter_factory.h b/include/dwarfs/segmenter_factory.h index f43826fb..8a510dea 100644 --- a/include/dwarfs/segmenter_factory.h +++ b/include/dwarfs/segmenter_factory.h @@ -44,12 +44,14 @@ class segmenter_factory { unsigned block_size_bits{22}; }; + segmenter_factory(logger& lgr, writer_progress& prog); + segmenter_factory(logger& lgr, writer_progress& prog, config const& cfg); + segmenter_factory(logger& lgr, writer_progress& prog, + std::shared_ptr catmgr); segmenter_factory(logger& lgr, writer_progress& prog, std::shared_ptr catmgr, config const& cfg); - segmenter_factory(logger& lgr, writer_progress& prog, config const& cfg); - segmenter create(fragment_category cat, size_t cat_size, compression_constraints const& cc, std::shared_ptr blkmgr, diff --git a/src/dwarfs/segmenter_factory.cpp b/src/dwarfs/segmenter_factory.cpp index 66807502..e53c88a0 100644 --- a/src/dwarfs/segmenter_factory.cpp +++ b/src/dwarfs/segmenter_factory.cpp @@ -79,4 +79,12 @@ segmenter_factory::segmenter_factory(logger& lgr, writer_progress& prog, config const& cfg) : segmenter_factory(lgr, prog, nullptr, cfg) {} +segmenter_factory::segmenter_factory(logger& lgr, writer_progress& prog) + : segmenter_factory(lgr, prog, config{}) {} + +segmenter_factory::segmenter_factory( + logger& lgr, writer_progress& prog, + std::shared_ptr catmgr) + : segmenter_factory(lgr, prog, std::move(catmgr), config{}) {} + } // namespace dwarfs diff --git a/test/dwarfs_test.cpp b/test/dwarfs_test.cpp index 6c94d883..3f3527d6 100644 --- a/test/dwarfs_test.cpp +++ b/test/dwarfs_test.cpp @@ -937,7 +937,7 @@ class filter_test writer_progress prog; thread_pool pool(lgr, *input, "worker", 1); - segmenter_factory sf(lgr, prog, segmenter_factory::config{}); + segmenter_factory sf(lgr, prog); entry_factory ef; scanner s(lgr, pool, sf, ef, *input, scr, options);