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 Types | |
using | Objects = std::vector< std::pair< edm::ObjectWithDict, bool > > |
Private Member Functions | |
Objects | borrowObjects () const |
Objects | initObjects_ () const |
void | returnObjects (Objects &&) const |
Private Attributes | |
std::vector< MethodInvoker > | methods_ |
oneapi::tbb::concurrent_queue< Objects > | objectsCache_ |
method::TypeCode | retType_ |
Evaluate an object's method or datamember (or chain of them) to get a number.
Definition at line 24 of file ExpressionVar.h.
|
private |
Definition at line 27 of file ExpressionVar.h.
ExpressionVar::ExpressionVar | ( | const std::vector< MethodInvoker > & | methods, |
method::TypeCode | retType | ||
) |
Definition at line 31 of file ExpressionVar.cc.
References initObjects_(), and returnObjects().
ExpressionVar::ExpressionVar | ( | const ExpressionVar & | rhs | ) |
Definition at line 36 of file ExpressionVar.cc.
References initObjects_(), and returnObjects().
|
override |
Definition at line 50 of file ExpressionVar.cc.
References delStorage(), EcalTangentSkim_cfg::o, L1TPhase2Offline_cfi::objects, and objectsCache_.
|
private |
Definition at line 40 of file ExpressionVar.cc.
References initObjects_(), L1TPhase2Offline_cfi::objects, and objectsCache_.
Referenced by value().
|
static |
delete an objecty, if needed this method is used also from the LazyInvoker code
Definition at line 59 of file ExpressionVar.cc.
References getGTfromDQMFile::obj, and AlCaHLTBitMon_ParallelJobs::p.
Referenced by ~ExpressionVar(), and reco::parser::SingleInvoker::~SingleInvoker().
|
private |
Definition at line 15 of file ExpressionVar.cc.
References cms::cuda::assert(), AlcaSiPixelAliHarvester0T_cff::method, and L1TPhase2Offline_cfi::objects.
Referenced by borrowObjects(), and ExpressionVar().
|
static |
Definition at line 92 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, AlcaSiPixelAliHarvester0T_cff::method, 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 74 of file ExpressionVar.cc.
References edm::TypeWithDict::allocate(), edm::TypeWithDict::byName(), edm::ObjectWithDict::byType(), edm::TypeWithDict::isClass(), edm::TypeWithDict::isPointer(), edm::TypeWithDict::isReference(), getGTfromDQMFile::obj, and runTheMatrix::ret.
Referenced by reco::parser::SingleInvoker::createStorage().
|
static |
performs the needed conversion from void* to double this method is used also from the ExpressionLazyVar code
Definition at line 157 of file ExpressionVar.cc.
References generateTowerEtThresholdLUT::addr, cms::cuda::assert(), reco::method::boolType, reco::method::charType, reco::method::doubleType, reco::method::enumType, reco::method::floatType, reco::method::intType, reco::method::longType, AlcaSiPixelAliHarvester0T_cff::method, getGTfromDQMFile::obj, 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().
|
private |
Definition at line 48 of file ExpressionVar.cc.
References eostools::move(), and objectsCache_.
Referenced by ExpressionVar(), and value().
|
overridevirtual |
Implements reco::parser::ExpressionBase.
Definition at line 139 of file ExpressionVar.cc.
References borrowObjects(), visualization-live-secondInstance_cfg::m, methods_, eostools::move(), getGTfromDQMFile::obj, objToDouble(), runTheMatrix::ret, retType_, returnObjects(), and heppy_batch::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 26 of file ExpressionVar.h.
Referenced by value().
|
mutableprivate |
Definition at line 28 of file ExpressionVar.h.
Referenced by borrowObjects(), returnObjects(), and ~ExpressionVar().
|
private |
Definition at line 29 of file ExpressionVar.h.
Referenced by value().