LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
ModuleKeyAndType.h
Go to the documentation of this file.
1 #ifndef art_Framework_Core_detail_ModuleKeyAndType_h
2 #define art_Framework_Core_detail_ModuleKeyAndType_h
3 
6 
7 #include <map>
8 #include <string>
9 #include <vector>
10 
11 namespace art::detail {
12 
14  std::string key;
16  };
17 
18  enum class FilterAction { Normal = 0, Ignore = 1, Veto = 2 };
19 
20  struct ModuleSpec {
21  std::string name;
23  };
24 
25  inline bool
26  operator==(ModuleKeyAndType const& a, ModuleKeyAndType const& b) noexcept
27  {
28  return a.key == b.key && a.type == b.type;
29  }
30 
31  inline bool
32  operator!=(ModuleKeyAndType const& a, ModuleKeyAndType const& b) noexcept
33  {
34  return not(a == b);
35  }
36 
37  ModuleType module_type(std::string const& full_key);
38 
39  using keytype_for_name_t = std::map<std::string, ModuleKeyAndType>;
41  std::vector<std::pair<PathSpec, std::vector<ModuleSpec>>>;
43  std::map<std::string, std::vector<ModuleSpec>>;
44  using modules_for_path_t =
45  std::map<std::string, std::vector<ModuleKeyAndType>>;
46 }
47 
48 #endif /* art_Framework_Core_detail_ModuleKeyAndType_h */
49 
50 // Local Variables:
51 // mode: c++
52 // End:
std::map< std::string, ModuleKeyAndType > keytype_for_name_t
ModuleType module_type(std::string const &full_key)
std::map< std::string, std::vector< ModuleSpec >> module_entries_for_path_t
bool operator!=(ModuleKeyAndType const &a, ModuleKeyAndType const &b) noexcept
std::map< std::string, std::vector< ModuleKeyAndType >> modules_for_path_t
std::vector< std::pair< PathSpec, std::vector< ModuleSpec >>> module_entries_for_ordered_path_t
ModuleType
Definition: ModuleType.h:11
bool operator==(ModuleKeyAndType const &a, ModuleKeyAndType const &b) noexcept