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 74 of file ParameterDescriptionCases.h.

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

74  :
75  caseMap_(new CaseMap),
77  {
78  std::pair<T, edm::value_ptr<ParameterDescriptionNode> > casePair(caseValue,edm::value_ptr<ParameterDescriptionNode>());
79  caseMap_->insert(casePair);
80  (*caseMap_)[caseValue] = std::move(node);
81  }
std::unique_ptr< CaseMap > caseMap_
def move(src, dest)
Definition: eostools.py:510
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 47 of file ParameterDescriptionCases.h.

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

47 { return std::move(caseMap_); }
std::unique_ptr< CaseMap > caseMap_
def move(src, dest)
Definition: eostools.py:510
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,edm::value_ptr<ParameterDescriptionNode>());
41  std::pair<typename CaseMap::iterator,bool> status;
42  status = caseMap_->insert(casePair);
43  (*caseMap_)[caseValue] = std::move(node);
44  if (status.second == false) duplicateCaseValues_ = true;
45  }
std::unique_ptr< CaseMap > caseMap_
def move(src, dest)
Definition: eostools.py:510

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 162 of file ParameterDescriptionNode.cc.

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

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

Definition at line 169 of file ParameterDescriptionNode.cc.

170  {
171  return std::unique_ptr<ParameterDescriptionCases<int>>(
172  new ParameterDescriptionCases<int>(caseValue, std::move(node)));
173  }
def move(src, dest)
Definition: eostools.py:510
template<typename T >
std::unique_ptr<ParameterDescriptionCases<std::string> > operator>> ( std::string const &  caseValue,
std::unique_ptr< ParameterDescriptionNode node 
)
friend

Definition at line 176 of file ParameterDescriptionNode.cc.

177  {
178  return std::unique_ptr<ParameterDescriptionCases<std::string>>(
179  new ParameterDescriptionCases<std::string>(caseValue, std::move(node)));
180  }
def move(src, dest)
Definition: eostools.py:510
template<typename T >
std::unique_ptr<ParameterDescriptionCases<std::string> > operator>> ( char const *  caseValue,
std::unique_ptr< ParameterDescriptionNode node 
)
friend

Definition at line 183 of file ParameterDescriptionNode.cc.

184  {
185  std::string caseValueString(caseValue);
186  return std::unique_ptr<ParameterDescriptionCases<std::string>>(
187  new ParameterDescriptionCases<std::string>(caseValue, std::move(node)));
188  }
def move(src, dest)
Definition: eostools.py:510

Member Data Documentation

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