Evaluate an object's method or datamember (or chain of them) to get a number. More...
#include <ExpressionVar.h>
Public Member Functions | |
ExpressionVar (const std::vector< MethodInvoker > &methods, method::TypeCode retType) | |
ExpressionVar (const ExpressionVar &) | |
double | value (const edm::ObjectWithDict &) const override |
~ExpressionVar () override | |
Public Member Functions inherited from reco::parser::ExpressionBase | |
virtual | ~ExpressionBase () |
Static Public Member Functions | |
static void | delStorage (edm::ObjectWithDict &) |
static bool | isValidReturnType (method::TypeCode) |
static bool | makeStorage (edm::ObjectWithDict &obj, const edm::TypeWithDict &retType) |
static double | objToDouble (const edm::ObjectWithDict &obj, method::TypeCode type) |
Private Member Functions | |
void | initObjects_ () |
Private Attributes | |
std::vector< MethodInvoker > | methods_ |
std::vector< bool > | needsDestructor_ |
std::vector< edm::ObjectWithDict > | objects_ |
method::TypeCode | retType_ |
Evaluate an object's method or datamember (or chain of them) to get a number.
Definition at line 23 of file ExpressionVar.h.
ExpressionVar::ExpressionVar | ( | const std::vector< MethodInvoker > & | methods, |
method::TypeCode | retType | ||
) |
Definition at line 29 of file ExpressionVar.cc.
References initObjects_().
ExpressionVar::ExpressionVar | ( | const ExpressionVar & | rhs | ) |
Definition at line 34 of file ExpressionVar.cc.
References initObjects_().
|
override |
Definition at line 38 of file ExpressionVar.cc.
References delStorage(), Exhume::I, and objects_.
|
static |
delete an objecty, if needed this method is used also from the LazyInvoker code
Definition at line 45 of file ExpressionVar.cc.
References edm::ObjectWithDict::address(), edm::TypeWithDict::deallocate(), edm::TypeWithDict::isPointer(), edm::TypeWithDict::isReference(), AlCaHLTBitMon_ParallelJobs::p, and edm::ObjectWithDict::typeOf().
Referenced by ~ExpressionVar(), and reco::parser::SingleInvoker::~SingleInvoker().
|
private |
Definition at line 15 of file ExpressionVar.cc.
References Exhume::I.
Referenced by ExpressionVar().
|
static |
Definition at line 78 of file ExpressionVar.cc.
References reco::method::boolType, reco::method::charType, reco::method::doubleType, reco::method::enumType, reco::method::floatType, reco::method::intType, reco::method::longType, runTheMatrix::ret, reco::method::shortType, reco::method::uCharType, reco::method::uIntType, reco::method::uLongType, and reco::method::uShortType.
Referenced by reco::parser::ExpressionVarSetter::push(), and reco::parser::SingleInvoker::retToDouble().
|
static |
allocate an object to hold the result of a given member (if needed) this method is used also from the LazyInvoker code returns true if objects returned from this will require a destructor
Definition at line 60 of file ExpressionVar.cc.
References edm::TypeWithDict::allocate(), edm::TypeWithDict::byName(), edm::ObjectWithDict::byType(), edm::TypeWithDict::isClass(), edm::TypeWithDict::isPointer(), edm::TypeWithDict::isReference(), and runTheMatrix::ret.
Referenced by reco::parser::SingleInvoker::SingleInvoker().
|
static |
performs the needed conversion from void* to double this method is used also from the ExpressionLazyVar code
Definition at line 142 of file ExpressionVar.cc.
References generateTowerEtThresholdLUT::addr, edm::ObjectWithDict::address(), cms::cuda::assert(), reco::method::boolType, reco::method::charType, reco::method::doubleType, reco::method::enumType, reco::method::floatType, reco::method::intType, reco::method::longType, runTheMatrix::ret, reco::method::shortType, reco::method::uCharType, reco::method::uIntType, reco::method::uLongType, and reco::method::uShortType.
Referenced by reco::parser::SingleInvoker::retToDouble(), and value().
|
overridevirtual |
Implements reco::parser::ExpressionBase.
Definition at line 125 of file ExpressionVar.cc.
References Exhume::I, methods_, needsDestructor_, objects_, objToDouble(), runTheMatrix::ret, retType_, and hgcalPerformanceValidation::val.
Referenced by Types.int32::__nonzero__(), Types.uint32::__nonzero__(), Types.int64::__nonzero__(), Types.uint64::__nonzero__(), Types.double::__nonzero__(), Types.bool::__nonzero__(), Types.string::__nonzero__(), average.Average::average(), Types.string::configValue(), Types.FileInPath::configValue(), Mixins.UsingBlock::dumpPython(), Mixins.UsingBlock::insertInto(), Types.int32::insertInto(), Types.uint32::insertInto(), Types.int64::insertInto(), Types.uint64::insertInto(), Types.double::insertInto(), Types.bool::insertInto(), Types.string::insertInto(), Types.FileInPath::insertInto(), Types.vint32::insertInto(), Types.vuint32::insertInto(), Types.vint64::insertInto(), Types.vuint64::insertInto(), Types.vdouble::insertInto(), Types.vbool::insertInto(), and Types.vstring::insertInto().
|
private |
Definition at line 25 of file ExpressionVar.h.
Referenced by value().
|
mutableprivate |
Definition at line 27 of file ExpressionVar.h.
Referenced by value().
|
mutableprivate |
Definition at line 26 of file ExpressionVar.h.
Referenced by value(), and ~ExpressionVar().
|
private |
Definition at line 28 of file ExpressionVar.h.
Referenced by value().