CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Classes | Public Member Functions | Private Member Functions | Private Attributes
edm::ProcessConfiguration Class Reference

#include <ProcessConfiguration.h>

Classes

struct  Transients
 

Public Member Functions

ProcessConfigurationID id () const
 
void initializeTransients () const
 
bool isParameterSetValid () const
 
ParameterSetID const & parameterSetID () const
 
PassID const & passID () const
 
 ProcessConfiguration ()
 
 ProcessConfiguration (std::string const &procName, ReleaseVersion const &relVersion, PassID const &pass)
 
 ProcessConfiguration (std::string const &procName, ParameterSetID const &pSetID, ReleaseVersion const &relVersion, PassID const &pass)
 
std::string const & processName () const
 
void reduce ()
 
ReleaseVersion const & releaseVersion () const
 
void setParameterSetID (ParameterSetID const &pSetID)
 

Private Member Functions

bool & isCurrentProcess () const
 
ProcessConfigurationIDpcid () const
 

Private Attributes

ParameterSetID parameterSetID_
 
PassID passID_
 
std::string processName_
 
ReleaseVersion releaseVersion_
 
Transients transient_
 

Detailed Description

Definition at line 13 of file ProcessConfiguration.h.

Constructor & Destructor Documentation

edm::ProcessConfiguration::ProcessConfiguration ( )
edm::ProcessConfiguration::ProcessConfiguration ( std::string const &  procName,
ReleaseVersion const &  relVersion,
PassID const &  pass 
)

Definition at line 29 of file ProcessConfiguration.cc.

References isCurrentProcess().

32  :
33  processName_(procName),
35  releaseVersion_(relVersion),
36  passID_(pass) { isCurrentProcess() = true; }
edm::ProcessConfiguration::ProcessConfiguration ( std::string const &  procName,
ParameterSetID const &  pSetID,
ReleaseVersion const &  relVersion,
PassID const &  pass 
)

Definition at line 19 of file ProcessConfiguration.cc.

23  :
24  processName_(procName),
25  parameterSetID_(pSetID),
26  releaseVersion_(relVersion),
27  passID_(pass) { }

Member Function Documentation

ProcessConfigurationID edm::ProcessConfiguration::id ( void  ) const

Definition at line 54 of file ProcessConfiguration.cc.

References cms::Digest::digest(), pcid(), edm::Hash< I >::swap(), tmp, and cms::MD5Result::toString().

Referenced by edm::fillProductRegistryTransients(), edm::ModuleDescription::processConfigurationID(), and edm::Provenance::processConfigurationID().

54  {
55  if(pcid().isValid()) {
56  return pcid();
57  }
58  // This implementation is ripe for optimization.
59  std::ostringstream oss;
60  oss << *this;
61  std::string stringrep = oss.str();
62  cms::Digest md5alg(stringrep);
63  ProcessConfigurationID tmp(md5alg.digest().toString());
64  pcid().swap(tmp);
65  return pcid();
66  }
void swap(Hash< I > &other)
Definition: Hash.h:202
ProcessConfigurationID & pcid() const
Hash< ProcessConfigurationType > ProcessConfigurationID
std::vector< std::vector< double > > tmp
Definition: MVATrainer.cc:100
void edm::ProcessConfiguration::initializeTransients ( ) const
inline
bool& edm::ProcessConfiguration::isCurrentProcess ( ) const
inlineprivate
bool edm::ProcessConfiguration::isParameterSetValid ( ) const
inline

Definition at line 27 of file ProcessConfiguration.h.

References edm::Hash< I >::isValid(), and parameterSetID_.

27 {return parameterSetID_.isValid();}
bool isValid() const
Definition: Hash.h:146
ParameterSetID const & edm::ProcessConfiguration::parameterSetID ( ) const

Definition at line 39 of file ProcessConfiguration.cc.

References edm::hlt::Exception, isCurrentProcess(), edm::errors::LogicError, and parameterSetID_.

Referenced by edm::fillProductRegistryTransients(), edm::Event::getProcessParameterSet(), edm::ModuleDescription::mainParameterSetID(), edm::operator<(), edm::operator<<(), and edm::operator==().

39  {
42  << "Illegal attempt to access the process top level parameter set ID\n"
43  << "from the ProcessConfiguration before that parameter\n"
44  << "set has been frozen and registered. The parameter set\n"
45  << "can be changed during module validation, which occurs\n"
46  << "concurrently with module construction. The ID of the\n"
47  << "ProcessConfiguration itself also depends on that parameter\n"
48  << "set ID. It is illegal to access either before they are frozen.\n";
49  }
50  return parameterSetID_;
51  }
Hash< ParameterSetType > ParameterSetID
PassID const& edm::ProcessConfiguration::passID ( ) const
inline
ProcessConfigurationID& edm::ProcessConfiguration::pcid ( ) const
inlineprivate

Definition at line 50 of file ProcessConfiguration.h.

References edm::ProcessConfiguration::Transients::pcid_, and transient_.

Referenced by id(), and reduce().

std::string const& edm::ProcessConfiguration::processName ( ) const
inline
void edm::ProcessConfiguration::reduce ( )

Definition at line 75 of file ProcessConfiguration.cc.

References pcid(), and releaseVersion_.

75  {
76  // Skip to the part of the release version just after
77  // the first two numbers and erase the rest of it.
78  std::string::iterator iter = releaseVersion_.begin();
79  std::string::iterator iEnd = releaseVersion_.end();
80  while(iter != iEnd && isdigit(*iter) == 0) ++iter;
81  while(iter != iEnd && isdigit(*iter) != 0) ++iter;
82  while(iter != iEnd && isdigit(*iter) == 0) ++iter;
83  while(iter != iEnd && isdigit(*iter) != 0) ++iter;
84  if (iter == iEnd) return;
86  releaseVersion_.erase(iter,iEnd);
87  }
ProcessConfigurationID & pcid() const
Hash< ProcessConfigurationType > ProcessConfigurationID
ReleaseVersion const& edm::ProcessConfiguration::releaseVersion ( ) const
inline
void edm::ProcessConfiguration::setParameterSetID ( ParameterSetID const &  pSetID)

Definition at line 69 of file ProcessConfiguration.cc.

References parameterSetID_.

69  {
70  assert(parameterSetID_ == ParameterSetID());
71  parameterSetID_ = pSetID;
72  }
Hash< ParameterSetType > ParameterSetID

Member Data Documentation

ParameterSetID edm::ProcessConfiguration::parameterSetID_
private

Definition at line 54 of file ProcessConfiguration.h.

Referenced by isParameterSetValid(), parameterSetID(), and setParameterSetID().

PassID edm::ProcessConfiguration::passID_
private

Definition at line 56 of file ProcessConfiguration.h.

Referenced by passID().

std::string edm::ProcessConfiguration::processName_
private

Definition at line 53 of file ProcessConfiguration.h.

Referenced by processName().

ReleaseVersion edm::ProcessConfiguration::releaseVersion_
private

Definition at line 55 of file ProcessConfiguration.h.

Referenced by reduce(), and releaseVersion().

Transients edm::ProcessConfiguration::transient_
mutableprivate

Definition at line 57 of file ProcessConfiguration.h.

Referenced by initializeTransients(), isCurrentProcess(), and pcid().