1 #ifndef CommonTools_Utils_ExpressionVar_h 2 #define CommonTools_Utils_ExpressionVar_h 18 #include <oneapi/tbb/concurrent_queue.h> 27 using Objects = std::vector<std::pair<edm::ObjectWithDict, bool>>;
75 #endif // CommonTools_Utils_ExpressionVar_h
static bool makeStorage(edm::ObjectWithDict &obj, const edm::TypeWithDict &retType)
static double objToDouble(const edm::ObjectWithDict &obj, method::TypeCode type)
method::TypeCode retType_
ExpressionLazyVar(const std::vector< LazyInvoker > &methods)
ExpressionVar(const std::vector< MethodInvoker > &methods, method::TypeCode retType)
std::vector< std::pair< edm::ObjectWithDict, bool > > Objects
static bool isValidReturnType(method::TypeCode)
Objects borrowObjects() const
std::vector< MethodInvoker > methods_
void returnObjects(Objects &&) const
~ExpressionVar() override
double value(const edm::ObjectWithDict &) const override
static void delStorage(edm::ObjectWithDict &)
double value(const edm::ObjectWithDict &) const override
Evaluate an object's method or datamember (or chain of them) to get a number.
~ExpressionLazyVar() override
oneapi::tbb::concurrent_queue< Objects > objectsCache_
Objects initObjects_() const
std::vector< LazyInvoker > methods_