mirror of
https://github.com/mhx/dwarfs.git
synced 2025-09-19 09:17:21 -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 std::span<std::string_view const> categories() const = 0;
|
||||||
virtual bool is_single_fragment() 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 {
|
class random_access_categorizer : public categorizer {
|
||||||
|
@ -64,6 +64,8 @@ class inode_fragments {
|
|||||||
|
|
||||||
bool empty() const { return fragments_.empty(); }
|
bool empty() const { return fragments_.empty(); }
|
||||||
|
|
||||||
|
void clear() { fragments_.clear(); }
|
||||||
|
|
||||||
explicit operator bool() const { return !empty(); }
|
explicit operator bool() const { return !empty(); }
|
||||||
|
|
||||||
std::ostream&
|
std::ostream&
|
||||||
|
@ -245,9 +245,9 @@ std::string_view categorizer_manager_<LoggerPolicy>::category_name(
|
|||||||
template <typename LoggerPolicy>
|
template <typename LoggerPolicy>
|
||||||
folly::dynamic categorizer_manager_<LoggerPolicy>::category_metadata(
|
folly::dynamic categorizer_manager_<LoggerPolicy>::category_metadata(
|
||||||
fragment_category c) const {
|
fragment_category c) const {
|
||||||
auto categorizer =
|
auto cat = DWARFS_NOTHROW(categories_.at(c.value()));
|
||||||
DWARFS_NOTHROW(categorizers_.at(categories_.at(c.value()).second));
|
auto categorizer = DWARFS_NOTHROW(categorizers_.at(cat.second));
|
||||||
return categorizer->category_metadata(c);
|
return categorizer->category_metadata(cat.first, c);
|
||||||
}
|
}
|
||||||
|
|
||||||
categorizer_manager::categorizer_manager(logger& lgr)
|
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; }
|
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();
|
return folly::dynamic();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -159,7 +159,8 @@ class incompressible_categorizer_ final : public sequential_categorizer {
|
|||||||
|
|
||||||
bool is_single_fragment() const override { return true; }
|
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();
|
return folly::dynamic();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -149,7 +149,8 @@ class libmagic_categorizer_ final : public libmagic_categorizer_base {
|
|||||||
|
|
||||||
bool is_single_fragment() const override { return true; }
|
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();
|
return folly::dynamic();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -130,10 +130,15 @@ class pcmaudio_categorizer_ final : public pcmaudio_categorizer_base {
|
|||||||
|
|
||||||
bool is_single_fragment() const override { return false; }
|
bool is_single_fragment() const override { return false; }
|
||||||
|
|
||||||
folly::dynamic category_metadata(fragment_category c) const override {
|
folly::dynamic category_metadata(std::string_view category_name,
|
||||||
DWARFS_CHECK(c.has_subcategory(), "expected pcmaudio to have subcategory");
|
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 meta_.rlock()->lookup(c.subcategory());
|
||||||
}
|
}
|
||||||
|
return folly::dynamic();
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
LOG_PROXY_DECL(LoggerPolicy);
|
LOG_PROXY_DECL(LoggerPolicy);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user