mirror of
https://github.com/mhx/dwarfs.git
synced 2025-09-18 08:49:29 -04:00
Pass category name to category_metadata()
This commit is contained in:
parent
465f8e090c
commit
e08bbb5e94
@ -52,7 +52,8 @@ class categorizer {
|
||||
|
||||
virtual std::span<std::string_view const> categories() const = 0;
|
||||
virtual bool is_single_fragment() const = 0;
|
||||
virtual folly::dynamic category_metadata(fragment_category c) const = 0;
|
||||
virtual folly::dynamic category_metadata(std::string_view category_name,
|
||||
fragment_category c) const = 0;
|
||||
};
|
||||
|
||||
class random_access_categorizer : public categorizer {
|
||||
|
@ -64,6 +64,8 @@ class inode_fragments {
|
||||
|
||||
bool empty() const { return fragments_.empty(); }
|
||||
|
||||
void clear() { fragments_.clear(); }
|
||||
|
||||
explicit operator bool() const { return !empty(); }
|
||||
|
||||
std::ostream&
|
||||
|
@ -245,9 +245,9 @@ std::string_view categorizer_manager_<LoggerPolicy>::category_name(
|
||||
template <typename LoggerPolicy>
|
||||
folly::dynamic categorizer_manager_<LoggerPolicy>::category_metadata(
|
||||
fragment_category c) const {
|
||||
auto categorizer =
|
||||
DWARFS_NOTHROW(categorizers_.at(categories_.at(c.value()).second));
|
||||
return categorizer->category_metadata(c);
|
||||
auto cat = DWARFS_NOTHROW(categories_.at(c.value()));
|
||||
auto categorizer = DWARFS_NOTHROW(categorizers_.at(cat.second));
|
||||
return categorizer->category_metadata(cat.first, c);
|
||||
}
|
||||
|
||||
categorizer_manager::categorizer_manager(logger& lgr)
|
||||
|
@ -64,7 +64,8 @@ class binary_categorizer_ final : public binary_categorizer_base {
|
||||
|
||||
bool is_single_fragment() const override { return false; }
|
||||
|
||||
folly::dynamic category_metadata(fragment_category) const override {
|
||||
folly::dynamic
|
||||
category_metadata(std::string_view, fragment_category) const override {
|
||||
return folly::dynamic();
|
||||
}
|
||||
|
||||
|
@ -159,7 +159,8 @@ class incompressible_categorizer_ final : public sequential_categorizer {
|
||||
|
||||
bool is_single_fragment() const override { return true; }
|
||||
|
||||
folly::dynamic category_metadata(fragment_category) const override {
|
||||
folly::dynamic
|
||||
category_metadata(std::string_view, fragment_category) const override {
|
||||
return folly::dynamic();
|
||||
}
|
||||
|
||||
|
@ -149,7 +149,8 @@ class libmagic_categorizer_ final : public libmagic_categorizer_base {
|
||||
|
||||
bool is_single_fragment() const override { return true; }
|
||||
|
||||
folly::dynamic category_metadata(fragment_category) const override {
|
||||
folly::dynamic
|
||||
category_metadata(std::string_view, fragment_category) const override {
|
||||
return folly::dynamic();
|
||||
}
|
||||
|
||||
|
@ -130,9 +130,14 @@ class pcmaudio_categorizer_ final : public pcmaudio_categorizer_base {
|
||||
|
||||
bool is_single_fragment() const override { return false; }
|
||||
|
||||
folly::dynamic category_metadata(fragment_category c) const override {
|
||||
DWARFS_CHECK(c.has_subcategory(), "expected pcmaudio to have subcategory");
|
||||
return meta_.rlock()->lookup(c.subcategory());
|
||||
folly::dynamic category_metadata(std::string_view category_name,
|
||||
fragment_category c) const override {
|
||||
if (category_name == PCMAUDIO_CATEGORY) {
|
||||
DWARFS_CHECK(c.has_subcategory(),
|
||||
"expected PCMAUDIO to have subcategory");
|
||||
return meta_.rlock()->lookup(c.subcategory());
|
||||
}
|
||||
return folly::dynamic();
|
||||
}
|
||||
|
||||
private:
|
||||
|
Loading…
x
Reference in New Issue
Block a user