1 #ifndef CondTools_L1Trigger_RecordHelper_h 2 #define CondTools_L1Trigger_RecordHelper_h 16 #include <boost/type_traits.hpp> 18 #include "RelationalAccess/ICursor.h" 19 #include "CoralBase/AttributeList.h" 20 #include "CoralBase/AttributeSpecification.h" 21 #include "CoralBase/Attribute.h" 62 typedef void (TOutput::*TSetMethod)(
const TCField);
70 #ifdef RECORDHELPER_DEBUG 75 ((
dest).*setter_)(TCField(value));
77 #ifdef RECORDHELPER_DEBUG 78 std::cout <<
"=" << TCField(value) << std::endl ;
106 #ifdef RECORDHELPER_DEBUG 109 ((
dest).*(this->setter_))(value != FalseCharacter);
121 class TStandardGroup;
124 template <
typename TOutput>
struct Group {
129 #define RH_ASSIGN_GROUP(TOutput, TGroup) template <> struct Group<TOutput> { \ 130 typedef TGroup Type; \ 143 template <
typename TOutput,
158 void (TOutput::*setter)(
const TField)) {
159 #ifdef RECORDHELPER_DEBUG 160 std::cout <<
"Adding field " << fieldName <<
", type = " <<
typeid(TField).
name() << std::endl;
169 for(
typename FieldVector::const_iterator it = fields_.begin();
170 it != fields_.end() ; ++it) {
171 (*it)->extractValue(source, dest);
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());
188 for(
typename FieldVector::iterator it = fields_.begin();
189 it < fields_.end() ; ++it) {
200 #define ADD_FIELD(HELPER, OUTPUT_NAME, FIELD_NAME) \ 201 HELPER.addField(#FIELD_NAME, &OUTPUT_NAME::set##FIELD_NAME);
virtual void extractRecord(const AttributeList &source, TOutput &dest)
std::vector< FieldHandlerBase< TOutput > * > FieldVector
void addField(const std::string &fieldName, void(TOutput::*setter)(const TField))
void extractValue(const AttributeList &src, TOutput &dest) override
virtual void extractValue(const AttributeList &src, TOutput &dest)=0
std::string upcaseString(std::string aString)
FieldHandler(const std::string &fieldName, TSetMethod setter)
FieldHandlerBase(const std::string &name)
const std::string & getName()
virtual const std::string getColumnName()
virtual ~FieldHandlerBase()
void extractValue(const AttributeList &src, TOutput &dest) override
coral::AttributeList AttributeList
FieldHandler< TOutput, TCType, TCType > Type
coral::AttributeList AttributeList
ASCIIBoolFieldHandler(const std::string &fieldName, typename FieldHandler< TOutput, bool, char >::TSetMethod setter)
coral::AttributeList AttributeList
virtual std::vector< std::string > getColumnList()
coral::AttributeList AttributeList
static std::string const source