00001 #ifndef Framework_ComponentDescription_h
00002 #define Framework_ComponentDescription_h
00003
00004
00005
00006
00007
00016
00017
00018
00019
00020
00021
00022
00023 #include <string>
00024
00025
00026 #include "DataFormats/Provenance/interface/PassID.h"
00027 #include "DataFormats/Provenance/interface/ParameterSetID.h"
00028 #include "DataFormats/Provenance/interface/ReleaseVersion.h"
00029
00030
00031 namespace edm {
00032 namespace eventsetup {
00033 struct ComponentDescription {
00034 std::string label_;
00035 std::string type_;
00036 bool isSource_;
00037 bool isLooper_;
00038
00039
00040
00041
00042
00043
00044 ParameterSetID pid_;
00045
00046
00047 ReleaseVersion releaseVersion_;
00048
00049
00050 std::string processName_;
00051
00052
00053
00054 PassID passID_;
00055
00056
00057
00058 ComponentDescription() :
00059 label_(),
00060 type_(),
00061 isSource_(false),
00062 isLooper_(false),
00063 pid_(),
00064 releaseVersion_(),
00065 processName_(),
00066 passID_() {}
00067
00068 ComponentDescription(const std::string& iType,
00069 const std::string& iLabel,
00070 bool iIsSource,
00071 bool iIsLooper=false) :
00072 label_(iLabel),
00073 type_(iType),
00074 isSource_(iIsSource),
00075 isLooper_(iIsLooper),
00076 pid_(),
00077 releaseVersion_(),
00078 processName_(),
00079 passID_() {}
00080
00081 bool operator<( const ComponentDescription& iRHS) const {
00082 return (type_ == iRHS.type_) ? (label_ < iRHS.label_) : (type_<iRHS.type_);
00083 }
00084 bool operator==(const ComponentDescription& iRHS) const {
00085 return label_ == iRHS.label_ &&
00086 type_ == iRHS.type_ &&
00087 isSource_ == iRHS.isSource_;
00088 }
00089 };
00090
00091 }
00092 }
00093
00094
00095
00096 #endif