CMS 3D CMS Logo

InputTag.h
Go to the documentation of this file.
1 #ifndef FWCore_Utilities_InputTag_h
2 #define FWCore_Utilities_InputTag_h
3 
4 #include <atomic>
5 #include <iosfwd>
6 #include <string>
7 
12 
13 namespace edm {
14 
15  class InputTag {
16  public:
17  InputTag();
19  InputTag(char const* label, char const* instance, char const* processName = "");
24  InputTag(std::string const& s);
25  ~InputTag();
26 
27  InputTag(InputTag const& other);
28 
29  InputTag(InputTag&& other);
30  InputTag& operator=(InputTag const& other);
31 
32  InputTag& operator=(InputTag&& other);
33 
34  std::string encode() const;
35 
36  std::string const& label() const { return label_; }
37  std::string const& instance() const { return instance_; }
40  std::string const& process() const { return process_; }
41 
43 
44  bool operator==(InputTag const& tag) const;
45 
46  ProductResolverIndex indexFor(TypeID const& typeID, BranchType branchType, void const* productRegistry) const;
47 
49  TypeID const& typeID,
50  BranchType branchType,
51  void const* productRegistry) const;
52 
55 
56  private:
57  bool calcSkipCurrentProcess() const;
58 
62 
65 
66  mutable std::atomic<unsigned int> index_;
67 
68  CMS_THREAD_GUARD(index_) mutable char branchType_;
69 
71  };
72 
73  std::ostream& operator<<(std::ostream& ost, InputTag const& tag);
74 } // namespace edm
75 #endif
unsigned int ProductResolverIndex
InputTag & operator=(InputTag const &other)
Definition: InputTag.cc:103
std::string instance_
Definition: InputTag.h:60
std::string encode() const
Definition: InputTag.cc:159
BranchType
Definition: BranchType.h:11
ProductResolverIndex indexFor(TypeID const &typeID, BranchType branchType, void const *productRegistry) const
Definition: InputTag.cc:177
void tryToCacheIndex(ProductResolverIndex index, TypeID const &typeID, BranchType branchType, void const *productRegistry) const
Definition: InputTag.cc:193
static const std::string kSkipCurrentProcess
Definition: InputTag.h:53
#define CMS_THREAD_GUARD(_var_)
static const std::string kCurrentProcess
Definition: InputTag.h:54
std::string process_
Definition: InputTag.h:61
bool calcSkipCurrentProcess() const
Definition: InputTag.cc:149
std::string label_
Definition: InputTag.h:59
void const * productRegistry_
Definition: InputTag.h:64
bool willSkipCurrentProcess() const
Definition: InputTag.h:42
bool operator==(InputTag const &tag) const
Definition: InputTag.cc:173
std::string const & label() const
Definition: InputTag.h:36
std::string const & process() const
Definition: InputTag.h:40
bool skipCurrentProcess_
Definition: InputTag.h:70
HLT enums.
char branchType_
Definition: InputTag.h:68
std::string const & instance() const
Definition: InputTag.h:37
std::atomic< unsigned int > index_
Definition: InputTag.h:66
def branchType(schema, name)
Definition: revisionDML.py:114
TypeID typeID_
Definition: InputTag.h:63