CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes | Friends
edm::ParameterDescriptionCases< T > Class Template Reference

#include <ParameterDescriptionCases.h>

Public Types

typedef std::map< T, edm::value_ptr< ParameterDescriptionNode > > CaseMap
 

Public Member Functions

std::unique_ptr< CaseMapcaseMap ()
 
bool duplicateCaseValues () const
 
void insert (T caseValue, std::unique_ptr< ParameterDescriptionNode > node)
 

Private Member Functions

 ParameterDescriptionCases (T const &caseValue, std::unique_ptr< ParameterDescriptionNode > node)
 

Private Attributes

std::unique_ptr< CaseMapcaseMap_
 
bool duplicateCaseValues_
 

Friends

std::unique_ptr< ParameterDescriptionCases< bool > > operator>> (bool caseValue, std::unique_ptr< ParameterDescriptionNode > node)
 
std::unique_ptr< ParameterDescriptionCases< int > > operator>> (int caseValue, std::unique_ptr< ParameterDescriptionNode > node)
 
std::unique_ptr< ParameterDescriptionCases< std::string > > operator>> (std::string const &caseValue, std::unique_ptr< ParameterDescriptionNode > node)
 
std::unique_ptr< ParameterDescriptionCases< std::string > > operator>> (char const *caseValue, std::unique_ptr< ParameterDescriptionNode > node)
 

Detailed Description

template<typename T>
class edm::ParameterDescriptionCases< T >

Definition at line 35 of file ParameterDescriptionCases.h.

Member Typedef Documentation

template<typename T >
typedef std::map<T, edm::value_ptr<ParameterDescriptionNode> > edm::ParameterDescriptionCases< T >::CaseMap

Definition at line 37 of file ParameterDescriptionCases.h.

Constructor & Destructor Documentation

template<typename T >
edm::ParameterDescriptionCases< T >::ParameterDescriptionCases ( T const &  caseValue,
std::unique_ptr< ParameterDescriptionNode node 
)
inlineprivate

Definition at line 67 of file ParameterDescriptionCases.h.

References edm::ParameterDescriptionCases< T >::caseMap_, and eostools::move().

68  : caseMap_(new CaseMap), duplicateCaseValues_(false) {
69  std::pair<T, edm::value_ptr<ParameterDescriptionNode> > casePair(caseValue,
71  caseMap_->insert(casePair);
72  (*caseMap_)[caseValue] = std::move(node);
73  }
std::unique_ptr< CaseMap > caseMap_
def move(src, dest)
Definition: eostools.py:511
std::map< T, edm::value_ptr< ParameterDescriptionNode > > CaseMap

Member Function Documentation

template<typename T >
std::unique_ptr<CaseMap> edm::ParameterDescriptionCases< T >::caseMap ( )
inline

Definition at line 49 of file ParameterDescriptionCases.h.

References edm::ParameterDescriptionCases< T >::caseMap_, and eostools::move().

49 { return std::move(caseMap_); }
std::unique_ptr< CaseMap > caseMap_
def move(src, dest)
Definition: eostools.py:511
template<typename T >
bool edm::ParameterDescriptionCases< T >::duplicateCaseValues ( ) const
inline
template<typename T >
void edm::ParameterDescriptionCases< T >::insert ( T  caseValue,
std::unique_ptr< ParameterDescriptionNode node 
)
inline

Definition at line 39 of file ParameterDescriptionCases.h.

References edm::ParameterDescriptionCases< T >::caseMap_, edm::ParameterDescriptionCases< T >::duplicateCaseValues_, eostools::move(), and mps_update::status.

39  {
40  std::pair<T, edm::value_ptr<ParameterDescriptionNode> > casePair(caseValue,
42  std::pair<typename CaseMap::iterator, bool> status;
43  status = caseMap_->insert(casePair);
44  (*caseMap_)[caseValue] = std::move(node);
45  if (status.second == false)
46  duplicateCaseValues_ = true;
47  }
std::unique_ptr< CaseMap > caseMap_
def move(src, dest)
Definition: eostools.py:511

Friends And Related Function Documentation

template<typename T >
std::unique_ptr<ParameterDescriptionCases<bool> > operator>> ( bool  caseValue,
std::unique_ptr< ParameterDescriptionNode node 
)
friend

Definition at line 150 of file ParameterDescriptionNode.cc.

Referenced by edm::ParameterDescriptionCases< T >::duplicateCaseValues().

151  {
152  return std::unique_ptr<ParameterDescriptionCases<bool>>(
153  new ParameterDescriptionCases<bool>(caseValue, std::move(node)));
154  }
def move(src, dest)
Definition: eostools.py:511
template<typename T >
std::unique_ptr<ParameterDescriptionCases<int> > operator>> ( int  caseValue,
std::unique_ptr< ParameterDescriptionNode node 
)
friend

Definition at line 156 of file ParameterDescriptionNode.cc.

157  {
158  return std::unique_ptr<ParameterDescriptionCases<int>>(
159  new ParameterDescriptionCases<int>(caseValue, std::move(node)));
160  }
def move(src, dest)
Definition: eostools.py:511
template<typename T >
std::unique_ptr<ParameterDescriptionCases<std::string> > operator>> ( std::string const &  caseValue,
std::unique_ptr< ParameterDescriptionNode node 
)
friend

Definition at line 162 of file ParameterDescriptionNode.cc.

163  {
164  return std::unique_ptr<ParameterDescriptionCases<std::string>>(
165  new ParameterDescriptionCases<std::string>(caseValue, std::move(node)));
166  }
def move(src, dest)
Definition: eostools.py:511
template<typename T >
std::unique_ptr<ParameterDescriptionCases<std::string> > operator>> ( char const *  caseValue,
std::unique_ptr< ParameterDescriptionNode node 
)
friend

Definition at line 168 of file ParameterDescriptionNode.cc.

169  {
170  std::string caseValueString(caseValue);
171  return std::unique_ptr<ParameterDescriptionCases<std::string>>(
172  new ParameterDescriptionCases<std::string>(caseValue, std::move(node)));
173  }
def move(src, dest)
Definition: eostools.py:511

Member Data Documentation

template<typename T >
std::unique_ptr<CaseMap> edm::ParameterDescriptionCases< T >::caseMap_
private
template<typename T >
bool edm::ParameterDescriptionCases< T >::duplicateCaseValues_
private