CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | Friends
gen::ParameterCollector::const_iterator Class Reference

#include <ParameterCollector.h>

Inheritance diagram for gen::ParameterCollector::const_iterator:

Public Member Functions

 const_iterator ()
 

Protected Member Functions

 const_iterator (const ParameterCollector *collector, std::vector< std::string >::const_iterator begin, std::vector< std::string >::const_iterator end, bool special=false, std::ostream *dump=0)
 

Private Types

typedef std::pair< std::vector
< std::string >
::const_iterator, std::vector
< std::string >
::const_iterator
IterPair
 

Private Member Functions

const std::string & dereference () const
 
bool equal (const const_iterator &other) const
 
void increment ()
 
void next ()
 

Private Attributes

std::string cache_
 
const ParameterCollectorcollector_
 
std::ostream * dump_
 
std::vector< IterPairiter_
 
bool special_
 

Friends

class boost::iterator_core_access
 
class ParameterCollector
 

Detailed Description

Definition at line 35 of file ParameterCollector.h.

Member Typedef Documentation

typedef std::pair<std::vector<std::string>::const_iterator, std::vector<std::string>::const_iterator> gen::ParameterCollector::const_iterator::IterPair
private

Definition at line 60 of file ParameterCollector.h.

Constructor & Destructor Documentation

gen::ParameterCollector::const_iterator::const_iterator ( )
inline

Definition at line 39 of file ParameterCollector.h.

ParameterCollector::const_iterator::const_iterator ( const ParameterCollector collector,
std::vector< std::string >::const_iterator  begin,
std::vector< std::string >::const_iterator  end,
bool  special = false,
std::ostream *  dump = 0 
)
inlineprotected

Definition at line 32 of file ParameterCollector.cc.

References iter_, and next().

37  : collector_(collector), dump_(dump), special_(special)
38 {
39  if (begin != end)
40  iter_.push_back(IterPair(begin, end));
41 
42  next();
43 }
std::pair< std::vector< std::string >::const_iterator, std::vector< std::string >::const_iterator > IterPair
const_iterator end() const
const_iterator begin() const

Member Function Documentation

const std::string& gen::ParameterCollector::const_iterator::dereference ( ) const
inlineprivate

Definition at line 53 of file ParameterCollector.h.

References cache_.

bool gen::ParameterCollector::const_iterator::equal ( const const_iterator other) const
inlineprivate

Definition at line 54 of file ParameterCollector.h.

References iter_.

55  { return iter_ == other.iter_; }
void ParameterCollector::const_iterator::increment ( )
private

Definition at line 45 of file ParameterCollector.cc.

References GetRecoTauVFromDQM_MC_cff::next.

46 {
47  if (++iter_.back().first == iter_.back().second)
48  iter_.pop_back();
49 
50  next();
51 }
void ParameterCollector::const_iterator::next ( void  )
private

Definition at line 53 of file ParameterCollector.cc.

References createPayload::block, edm::errors::Configuration, geometryCSVtoXML::line, and pos.

Referenced by BeautifulSoup.PageElement::_invert(), and const_iterator().

54 {
55  if (iter_.empty()) {
56  cache_.clear();
57  return;
58  }
59 
60  for(;;) {
61  const std::string &line = *iter_.back().first;
62 
63  bool special = special_ && iter_.size() == 1;
64  if ( (!line.empty() && line[0] == '+') || special) {
65  if (++iter_.back().first == iter_.back().second) {
66  iter_.pop_back();
67  if (iter_.empty())
68  special_ = false;
69  }
70 
71  std::string block = special ? line : line.substr(1);
72 
73  std::map<std::string, std::vector<std::string> >::const_iterator
74  pos = collector_->contents_.find(block);
75  if (pos == collector_->contents_.end())
77  << "ParameterCollector could not find configuration lines "
78  "block \"" << block << "\", included via plus sign.";
79 
80  if (dump_)
81  *dump_ << "\n####### " << block << " #######" << std::endl;
82 
83  if (!pos->second.empty())
84  iter_.push_back(IterPair(pos->second.begin(),
85  pos->second.end()));
86  } else {
87  cache_ = collector_->resolve(line);
88  if (dump_)
89  *dump_ << cache_ << std::endl;
90  break;
91  }
92  }
93 }
static std::string resolve(const std::string &line)
std::pair< std::vector< std::string >::const_iterator, std::vector< std::string >::const_iterator > IterPair
std::map< std::string, std::vector< std::string > > contents_

Friends And Related Function Documentation

friend class boost::iterator_core_access
friend

Definition at line 50 of file ParameterCollector.h.

friend class ParameterCollector
friend

Definition at line 42 of file ParameterCollector.h.

Member Data Documentation

std::string gen::ParameterCollector::const_iterator::cache_
private

Definition at line 66 of file ParameterCollector.h.

Referenced by dereference().

const ParameterCollector* gen::ParameterCollector::const_iterator::collector_
private

Definition at line 62 of file ParameterCollector.h.

std::ostream* gen::ParameterCollector::const_iterator::dump_
private

Definition at line 63 of file ParameterCollector.h.

std::vector<IterPair> gen::ParameterCollector::const_iterator::iter_
private

Definition at line 65 of file ParameterCollector.h.

Referenced by const_iterator(), and equal().

bool gen::ParameterCollector::const_iterator::special_
private

Definition at line 64 of file ParameterCollector.h.