CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Protected Attributes
RecordHelper< TOutput > Class Template Reference

#include <RecordHelper.h>

Public Types

typedef coral::AttributeList AttributeList
 
typedef std::vector
< FieldHandlerBase< TOutput > * > 
FieldVector
 

Public Member Functions

template<typename TField >
void addField (const std::string &fieldName, void(TOutput::*setter)(const TField))
 
virtual void extractRecord (const AttributeList &source, TOutput &dest)
 
virtual std::vector< std::string > getColumnList ()
 
virtual ~RecordHelper ()
 

Protected Attributes

FieldVector fields_
 

Detailed Description

template<class TOutput>
class RecordHelper< TOutput >

Description: A microframework to deal with the need to fill rather boring getter/setter classes from Coral classes.

Definition at line 151 of file RecordHelper.h.

Member Typedef Documentation

template<class TOutput >
typedef coral::AttributeList RecordHelper< TOutput >::AttributeList

Definition at line 153 of file RecordHelper.h.

template<class TOutput >
typedef std::vector<FieldHandlerBase<TOutput>*> RecordHelper< TOutput >::FieldVector

A list of field handlers that determine how to handle a record.

Definition at line 155 of file RecordHelper.h.

Constructor & Destructor Documentation

template<class TOutput >
virtual RecordHelper< TOutput >::~RecordHelper ( )
inlinevirtual

Destructor: Wipe out all the field handlers.

Definition at line 187 of file RecordHelper.h.

References RecordHelper< TOutput >::fields_.

187  {
188  for(typename FieldVector::iterator it = fields_.begin();
189  it < fields_.end() ; ++it) {
190  delete *it;
191  }
192  }
FieldVector fields_
Definition: RecordHelper.h:195

Member Function Documentation

template<class TOutput >
template<typename TField >
void RecordHelper< TOutput >::addField ( const std::string &  fieldName,
void(TOutput::*)(const TField)  setter 
)
inline

Definition at line 157 of file RecordHelper.h.

References gather_cfg::cout, RecordHelper< TOutput >::fields_, and mergeVDriftHistosByStation::name.

158  {
159 #ifdef RECORDHELPER_DEBUG
160  std::cout << "Adding field " << fieldName << ", type = " << typeid(TField).name() << std::endl;
161 #endif
162  this->fields_.push_back(new typename GroupFieldHandler<TOutput, typename Group<TOutput>::Type , TField>::Type(fieldName, setter));
163 
164  }
FieldVector fields_
Definition: RecordHelper.h:195
tuple cout
Definition: gather_cfg.py:121
TStandardGroup Type
Definition: RecordHelper.h:125
template<class TOutput >
virtual void RecordHelper< TOutput >::extractRecord ( const AttributeList source,
TOutput &  dest 
)
inlinevirtual

Iterates over all known fields and extracts the fields of the record in source to the object in dest.

Definition at line 168 of file RecordHelper.h.

References RecordHelper< TOutput >::fields_.

168  {
169  for(typename FieldVector::const_iterator it = fields_.begin();
170  it != fields_.end() ; ++it) {
171  (*it)->extractValue(source, dest);
172  }
173  }
FieldVector fields_
Definition: RecordHelper.h:195
template<class TOutput >
virtual std::vector<std::string> RecordHelper< TOutput >::getColumnList ( )
inlinevirtual

Returns a list of database column names for the added fields.

Definition at line 176 of file RecordHelper.h.

References RecordHelper< TOutput >::fields_.

176  {
177  std::vector<std::string> colList;
178  for(typename FieldVector::const_iterator it = fields_.begin();
179  it != fields_.end() ; ++it) {
180  colList.push_back((*it)->getColumnName());
181  }
182 
183  return colList;
184  }
FieldVector fields_
Definition: RecordHelper.h:195

Member Data Documentation

template<class TOutput >
FieldVector RecordHelper< TOutput >::fields_
protected

List of known fields. TODO: Make private, add base type addField.

Definition at line 195 of file RecordHelper.h.

Referenced by RecordHelper< TOutput >::addField(), RecordHelper< TOutput >::extractRecord(), RecordHelper< TOutput >::getColumnList(), and RecordHelper< TOutput >::~RecordHelper().