LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
ProductInfo.h
Go to the documentation of this file.
1 #ifndef art_Framework_Principal_ProductInfo_h
2 #define art_Framework_Principal_ProductInfo_h
3 // vim: set sw=2 expandtab :
4 
7 
8 #include <iosfwd>
9 #include <string>
10 
11 namespace art {
12 
13  class ProductInfo {
14  public: // TYPES
15  enum class ConsumableType { Product = 0, ViewElement = 1, Many = 2 };
16 
17  ~ProductInfo();
18  explicit ProductInfo(ConsumableType, TypeID const&);
19  explicit ProductInfo(ConsumableType, std::string const& friendlyName);
20 
21  explicit ProductInfo(ConsumableType,
22  TypeID const&,
23  std::string const& label,
24  std::string const& instance,
25  ProcessTag const& process);
26 
27  explicit ProductInfo(ConsumableType,
28  std::string const& friendlyName,
29  std::string const& label,
30  std::string const& instance,
31  ProcessTag const& process);
32 
33  // Future need: We need a way to tell whether consumes* or
34  // mayConsume* was called.
35 
36  // Which kind of the ProductRetriever::get* functions we validate.
37  ConsumableType consumableType{};
38 
39  // Data product class type. Part 1 of branch name. The friendly
40  // class name is member is for testing reasons, where the type is
41  // specified in string form. In principle, this should be a
42  // variant object instead of two separate ones.
43  TypeID typeID{};
44  std::string friendlyClassName{};
45 
46  // Data product module label. Part 2 of branch name.
47  std::string label{};
48 
49  // Data product instance name. Part 3 of branch name.
50  std::string instance{};
51 
52  // Data product process name. Part 4 of branch name.
53  ProcessTag process{};
54  };
55 
56  bool operator<(ProductInfo const& a, ProductInfo const& b);
57  std::ostream& operator<<(std::ostream& os,
59  std::ostream& operator<<(std::ostream& os, ProductInfo const& info);
60 
61 } // namespace art
62 
63 #endif /* art_Framework_Principal_ProductInfo_h */
64 
65 // Local Variables:
66 // mode: c++
67 // End:
const std::string instance
std::ostream & operator<<(std::ostream &os, const GroupSelector &gs)
bool operator<(ProductInfo const &a, ProductInfo const &b)
Definition: ProductInfo.cc:51
std::string friendlyName(std::string const &iFullName)
Definition: MVAAlg.h:12