1 #ifndef art_Framework_Principal_Selector_h 2 #define art_Framework_Principal_Selector_h 37 #include <type_traits> 42 std::is_base_of_v<SelectorBase, std::remove_reference_t<T>>;
107 return indent +
"Product instance name: '" + pin_ +
'\'';
132 return indent +
"Module label: '" + label_ +
'\'';
162 template <
typename A,
typename B>
171 return a_.match(p) && b_.match(p);
177 return a_.print(indent) +
'\n' + b_.print(indent);
184 template <
typename A,
typename B>
196 template <
typename A,
typename B>
205 return a_.match(p) || b_.match(p);
212 result += indent + a_.print(indent) +
'\n';
213 result += indent + indent + indent +
"or\n";
214 result += indent + b_.print(indent) +
'\n';
223 template <
typename A,
typename B>
224 std::enable_if_t<is_selector<A> && is_selector<B>,
OrHelper<A, B>>
235 template <
typename A>
251 result += indent + a_.print(indent) +
'\n';
258 template <
typename A>
269 template <
typename T>
279 return expression_.match(p);
285 return expression_.print(indent);
297 template <
typename T>
306 std::shared_ptr<SelectorBase>
sel_;
constexpr bool is_selector
AndHelper(A const &a, B const &b)
std::shared_ptr< SelectorBase > sel_
Selector(T const &expression)
bool doMatch(BranchDescription const &p) const override
ProductInstanceNameSelector(std::string const &pin)
std::enable_if_t< is_selector< A >, NotHelper< A > > operator!(A const &a)
std::string doPrint(std::string const &) const override
bool doMatch(BranchDescription const &p) const override
bool doMatch(BranchDescription const &p) const override
std::string const & processName() const noexcept
std::string doPrint(std::string const &indent) const override
std::enable_if_t< is_selector< A > &&is_selector< B >, AndHelper< A, B > > operator&&(A const &a, B const &b)
bool doMatch(BranchDescription const &p) const override
std::string doPrint(std::string const &indent) const override
bool doMatch(BranchDescription const &) const override
bool doMatch(BranchDescription const &p) const override
std::string doPrint(std::string const &indent) const override
bool doMatch(BranchDescription const &p) const override
ModuleLabelSelector(std::string const &label)
std::string doPrint(std::string const &indent) const override
std::string doPrint(std::string const &indent) const override
std::string const & moduleLabel() const noexcept
OrHelper(A const &a, B const &b)
bool doMatch(BranchDescription const &p) const override
ComposedSelectorWrapper(T const &t)
std::string const & productInstanceName() const noexcept
ProcessNameSelector(std::string const &pn)
std::string doPrint(std::string const &indent) const override
std::enable_if_t< is_selector< A > &&is_selector< B >, OrHelper< A, B > > operator||(A const &a, B const &b)
std::string doPrint(std::string const &indent) const override