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 30 of file ParameterDescription.cc.

32  :
35  }
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 38 of file ParameterDescription.cc.

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

Definition at line 46 of file ParameterDescription.cc.

46 { }

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 160 of file ParameterDescription.cc.

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

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

Reimplemented from edm::ParameterDescriptionNode.

Definition at line 94 of file ParameterDescription.cc.

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

Implements edm::ParameterDescriptionBase.

Definition at line 167 of file ParameterDescription.cc.

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

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

Reimplemented from edm::ParameterDescriptionBase.

Definition at line 134 of file ParameterDescription.cc.

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

Reimplemented from edm::ParameterDescriptionBase.

Definition at line 140 of file ParameterDescription.cc.

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

Reimplemented from edm::ParameterDescriptionBase.

Definition at line 83 of file ParameterDescription.cc.

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

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

Reimplemented from edm::ParameterDescriptionBase.

Definition at line 100 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(), and edm::DocFormatHelper::TOP.

102  {
103  int indentation = dfh.indentation();
104  if(dfh.parent() != DocFormatHelper::TOP) {
105  indentation -= DocFormatHelper::offsetSectionContent();
106  }
107 
108  std::stringstream ss;
109  ss << dfh.section() << "." << dfh.counter();
110  std::string newSection = ss.str();
111 
112  printSpaces(os, indentation);
113  os << "Section " << newSection
114  << " " << label() << " PSet description:\n";
115  if(!dfh.brief()) os << "\n";
116 
117  DocFormatHelper new_dfh(dfh);
118  new_dfh.init();
119  new_dfh.setSection(newSection);
120  if(dfh.parent() == DocFormatHelper::TOP) {
121  new_dfh.setIndentation(indentation + DocFormatHelper::offsetSectionContent());
122  }
123  psetDesc_->print(os, new_dfh);
124  }
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 50 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::ParameterDescriptionBase::isTracked(), edm::ParameterDescriptionBase::label(), edm::ParameterDescriptionBase::throwParameterWrongTrackiness(), and edm::ParameterDescriptionBase::throwParameterWrongType().

52  {
53 
54  bool exists = pset.existsAs<ParameterSet>(label(), isTracked());
55 
56  if(exists) {
57  validatedLabels.insert(label());
58  } else if(pset.existsAs<ParameterSet>(label(), !isTracked())) {
60  } else if(pset.exists(label())) {
62  }
63 
64  if(!optional && !exists) {
65  if(isTracked()) {
66  pset.addParameter(label(), ParameterSet());
67  } else {
68  pset.addUntrackedParameter(label(), ParameterSet());
69  }
70  validatedLabels.insert(label());
71  }
72 
73  exists = pset.existsAs<ParameterSet>(label(), isTracked());
74 
75  if(exists) {
76  ParameterSet * containedPSet = pset.getPSetForUpdate(label());
77  psetDesc_->validate(*containedPSet);
78  }
79  }
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 146 of file ParameterDescription.cc.

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

Implements edm::ParameterDescriptionBase.

Definition at line 154 of file ParameterDescription.cc.

154  {
155  }

Member Data Documentation

Definition at line 250 of file ParameterDescription.h.