CMS 3D CMS Logo

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

#include <ParameterDescription.h>

Inheritance diagram for edm::ParameterDescription< ParameterSetDescription >:
edm::ParameterDescriptionBase edm::ParameterDescriptionNode

Public Member Functions

virtual ParameterDescriptionNodeclone () const
 
 ParameterDescription (std::string const &iLabel, ParameterSetDescription const &value, bool isTracked)
 
 ParameterDescription (char const *iLabel, ParameterSetDescription const &value, bool isTracked)
 
virtual
ParameterSetDescription const * 
parameterSetDescription () const
 
virtual ParameterSetDescriptionparameterSetDescription ()
 
virtual ~ParameterDescription ()
 
- Public Member Functions inherited from edm::ParameterDescriptionBase
bool hasDefault () const
 
bool isTracked () const
 
std::string const & label () const
 
ParameterTypes type () const
 
virtual ~ParameterDescriptionBase ()
 
- Public Member Functions inherited from edm::ParameterDescriptionNode
void checkAndGetLabelsAndTypes (std::set< std::string > &usedLabels, std::set< ParameterTypes > &parameterTypes, std::set< ParameterTypes > &wildcardTypes) const
 
std::string const & comment () const
 
bool exists (ParameterSet const &pset) const
 
bool hasNestedContent ()
 
int howManyXORSubNodesExist (ParameterSet const &pset) const
 
bool partiallyExists (ParameterSet const &pset) const
 
void print (std::ostream &os, bool optional, bool writeToCfi, DocFormatHelper &dfh)
 
void printNestedContent (std::ostream &os, bool optional, DocFormatHelper &dfh)
 
void setComment (std::string const &value)
 
void setComment (char const *value)
 
void validate (ParameterSet &pset, std::set< std::string > &validatedLabels, bool optional) const
 
void writeCfi (std::ostream &os, bool &startWithComma, int indentation, bool &wroteSomething) const
 
virtual ~ParameterDescriptionNode ()
 

Private Member Functions

virtual bool exists_ (ParameterSet const &pset) const
 
virtual bool exists_ (ParameterSet const &pset, bool isTracked) const
 
virtual bool hasNestedContent_ ()
 
virtual void insertDefault_ (ParameterSet &pset) const
 
virtual void printDefault_ (std::ostream &os, bool writeToCfi, DocFormatHelper &dfh)
 
virtual void printNestedContent_ (std::ostream &os, bool optional, DocFormatHelper &dfh)
 
virtual void validate_ (ParameterSet &pset, std::set< std::string > &validatedLabels, bool optional) const
 
virtual void writeCfi_ (std::ostream &os, int indentation) const
 
virtual void writeDoc_ (std::ostream &os, int indentation) const
 

Private Attributes

value_ptr
< ParameterSetDescription
psetDesc_
 

Additional Inherited Members

- Static Public Member Functions inherited from edm::ParameterDescriptionNode
static void printSpaces (std::ostream &os, int n)
 
- Protected Member Functions inherited from edm::ParameterDescriptionBase
 ParameterDescriptionBase (std::string const &iLabel, ParameterTypes iType, bool isTracked, bool hasDefault)
 
 ParameterDescriptionBase (char const *iLabel, ParameterTypes iType, bool isTracked, bool hasDefault)
 
void throwMissingRequiredNoDefault () const
 
void throwParameterWrongTrackiness () const
 
void throwParameterWrongType () const
 
- Protected Attributes inherited from edm::ParameterDescriptionNode
std::string comment_
 

Detailed Description

template<>
class edm::ParameterDescription< ParameterSetDescription >

Definition at line 203 of file ParameterDescription.h.

Constructor & Destructor Documentation

edm::ParameterDescription< ParameterSetDescription >::ParameterDescription ( std::string const &  iLabel,
ParameterSetDescription const &  value,
bool  isTracked 
)

Definition at line 28 of file ParameterDescription.cc.

30  :
33  }
ParameterDescriptionBase(std::string const &iLabel, ParameterTypes iType, bool isTracked, bool hasDefault)
edm::ParameterDescription< ParameterSetDescription >::ParameterDescription ( char const *  iLabel,
ParameterSetDescription const &  value,
bool  isTracked 
)

Definition at line 36 of file ParameterDescription.cc.

38  :
41  }
ParameterDescriptionBase(std::string const &iLabel, ParameterTypes iType, bool isTracked, bool hasDefault)

Definition at line 44 of file ParameterDescription.cc.

44 { }

Member Function Documentation

virtual ParameterDescriptionNode* edm::ParameterDescription< ParameterSetDescription >::clone ( void  ) const
inlinevirtual

Implements edm::ParameterDescriptionNode.

Definition at line 220 of file ParameterDescription.h.

References edm::ParameterDescription< T >::ParameterDescription().

220  {
221  return new ParameterDescription(*this);
222  }
ParameterDescription(std::string const &iLabel, ParameterSetDescription const &value, bool isTracked)
bool edm::ParameterDescription< ParameterSetDescription >::exists_ ( ParameterSet const &  pset) const
privatevirtual
bool edm::ParameterDescription< ParameterSetDescription >::exists_ ( ParameterSet const &  pset,
bool  isTracked 
) const
privatevirtual

Implements edm::ParameterDescriptionBase.

Definition at line 161 of file ParameterDescription.cc.

References Exception, and edm::errors::LogicError.

161  {
163  return true;
164  }
bool edm::ParameterDescription< ParameterSetDescription >::hasNestedContent_ ( )
privatevirtual

Reimplemented from edm::ParameterDescriptionNode.

Definition at line 95 of file ParameterDescription.cc.

95  {
96  return true;
97  }
void edm::ParameterDescription< ParameterSetDescription >::insertDefault_ ( ParameterSet pset) const
privatevirtual

Implements edm::ParameterDescriptionBase.

Definition at line 168 of file ParameterDescription.cc.

References Exception, and edm::errors::LogicError.

168  {
170  return;
171  }
ParameterSetDescription const * edm::ParameterDescription< ParameterSetDescription >::parameterSetDescription ( ) const
virtual

Reimplemented from edm::ParameterDescriptionBase.

Definition at line 135 of file ParameterDescription.cc.

135  {
136  return psetDesc_.operator->();
137  }

Reimplemented from edm::ParameterDescriptionBase.

Definition at line 141 of file ParameterDescription.cc.

141  {
142  return psetDesc_.operator->();
143  }
void edm::ParameterDescription< ParameterSetDescription >::printDefault_ ( std::ostream &  os,
bool  writeToCfi,
DocFormatHelper dfh 
)
privatevirtual

Reimplemented from edm::ParameterDescriptionBase.

Definition at line 84 of file ParameterDescription.cc.

References edm::DocFormatHelper::counter(), and edm::DocFormatHelper::section().

86  {
87  os << "see Section " << dfh.section()
88  << "." << dfh.counter();
89  if(!writeToCfi) os << " (do not write to cfi)";
90  os << "\n";
91  }
void edm::ParameterDescription< ParameterSetDescription >::printNestedContent_ ( std::ostream &  os,
bool  optional,
DocFormatHelper dfh 
)
privatevirtual

Reimplemented from edm::ParameterDescriptionBase.

Definition at line 101 of file ParameterDescription.cc.

References edm::DocFormatHelper::brief(), edm::DocFormatHelper::counter(), edm::DocFormatHelper::indentation(), edm::DocFormatHelper::init(), edm::ParameterDescriptionBase::label(), edm::DocFormatHelper::offsetSectionContent(), edm::DocFormatHelper::parent(), edm::ParameterDescriptionNode::printSpaces(), edm::DocFormatHelper::section(), edm::DocFormatHelper::setIndentation(), edm::DocFormatHelper::setSection(), contentValuesCheck::ss, AlCaHLTBitMon_QueryRunRegistry::string, and edm::DocFormatHelper::TOP.

103  {
104  int indentation = dfh.indentation();
105  if(dfh.parent() != DocFormatHelper::TOP) {
106  indentation -= DocFormatHelper::offsetSectionContent();
107  }
108 
109  std::stringstream ss;
110  ss << dfh.section() << "." << dfh.counter();
111  std::string newSection = ss.str();
112 
113  printSpaces(os, indentation);
114  os << "Section " << newSection
115  << " " << label() << " PSet description:\n";
116  if(!dfh.brief()) os << "\n";
117 
118  DocFormatHelper new_dfh(dfh);
119  new_dfh.init();
120  new_dfh.setSection(newSection);
121  if(dfh.parent() == DocFormatHelper::TOP) {
122  new_dfh.setIndentation(indentation + DocFormatHelper::offsetSectionContent());
123  }
124  psetDesc_->print(os, new_dfh);
125  }
static int offsetSectionContent()
static void printSpaces(std::ostream &os, int n)
std::string const & label() const
void edm::ParameterDescription< ParameterSetDescription >::validate_ ( ParameterSet pset,
std::set< std::string > &  validatedLabels,
bool  optional 
) const
privatevirtual

Reimplemented from edm::ParameterDescriptionBase.

Definition at line 48 of file ParameterDescription.cc.

References edm::ParameterSet::addParameter(), edm::ParameterSet::addUntrackedParameter(), edm::ParameterDescriptionNode::exists(), edm::ParameterSet::exists(), edm::ParameterSet::existsAs(), edm::ParameterSet::getPSetForUpdate(), edm::ParameterSet::insert(), edm::ParameterSet::invalidateRegistration(), edm::ParameterSet::isRegistered(), edm::ParameterDescriptionBase::isTracked(), edm::ParameterDescriptionBase::label(), edm::ParameterDescriptionBase::throwParameterWrongTrackiness(), and edm::ParameterDescriptionBase::throwParameterWrongType().

50  {
51 
52  bool exists = pset.existsAs<ParameterSet>(label(), isTracked());
53 
54  if(exists) {
55  validatedLabels.insert(label());
56  } else if(pset.existsAs<ParameterSet>(label(), !isTracked())) {
58  } else if(pset.exists(label())) {
60  }
61 
62  if(!optional && !exists) {
63  if(isTracked()) {
64  pset.addParameter(label(), ParameterSet());
65  } else {
66  pset.addUntrackedParameter(label(), ParameterSet());
67  }
68  validatedLabels.insert(label());
69  }
70 
71  exists = pset.existsAs<ParameterSet>(label(), isTracked());
72 
73  if(exists) {
74  if(pset.isRegistered()) {
75  pset.invalidateRegistration("");
76  }
77  ParameterSet * containedPSet = pset.getPSetForUpdate(label());
78  psetDesc_->validate(*containedPSet);
79  }
80  }
bool exists(ParameterSet const &pset) const
std::string const & label() const
void edm::ParameterDescription< ParameterSetDescription >::writeCfi_ ( std::ostream &  os,
int  indentation 
) const
privatevirtual

Implements edm::ParameterDescriptionBase.

Definition at line 147 of file ParameterDescription.cc.

147  {
148  bool startWithComma = false;
149  indentation += 2;
150  psetDesc_->writeCfi(os, startWithComma, indentation);
151  }
void edm::ParameterDescription< ParameterSetDescription >::writeDoc_ ( std::ostream &  os,
int  indentation 
) const
privatevirtual

Implements edm::ParameterDescriptionBase.

Definition at line 155 of file ParameterDescription.cc.

155  {
156  }

Member Data Documentation

Definition at line 250 of file ParameterDescription.h.