CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/FWCore/Utilities/interface/InputTag.h

Go to the documentation of this file.
00001 #ifndef FWCore_Utilities_InputTag_h
00002 #define FWCore_Utilities_InputTag_h
00003 
00004 #include <string>
00005 #include <iosfwd>
00006 
00007 #include "FWCore/Utilities/interface/TypeID.h"
00008 #include "FWCore/Utilities/interface/BranchType.h"
00009 
00010 namespace edm {
00011 
00012   class InputTag {
00013   public:
00014     InputTag();
00015     InputTag(std::string const& label, std::string const& instance, std::string const& processName = "");
00016     InputTag(char const* label, char const* instance, char const* processName = "");
00021     InputTag(std::string const& s);
00022     ~InputTag();
00023     std::string encode() const;
00024 
00025     std::string const& label() const {return label_;} 
00026     std::string const& instance() const {return instance_;}
00029     std::string const& process() const {return process_;} 
00030     
00031     bool operator==(InputTag const& tag) const;
00032 
00033     TypeID& typeID() const {return typeID_;}
00034 
00035     BranchType& branchType() const {return branchType_;}
00036 
00037     size_t& cachedOffset() const {return cachedOffset_;}
00038 
00039     int& fillCount() const {return fillCount_;}
00040 
00041     void const*& productRegistry() const {return productRegistry_;}
00042 
00043   private:
00044     std::string label_;
00045     std::string instance_;
00046     std::string process_;
00047     mutable BranchType branchType_;
00048     mutable TypeID typeID_;
00049     mutable size_t cachedOffset_;
00050     mutable int fillCount_;
00051     mutable void const* productRegistry_;
00052   };
00053 
00054   std::ostream& operator<<(std::ostream& ost, InputTag const& tag);
00055 
00056 }
00057 
00058 #endif
00059