#include <MethodInvoker.h>
Public Member Functions | |
std::pair< Reflex::Object, bool > | invoke (const Reflex::Object &o, std::vector< Reflex::Object > &v) const |
double | retToDouble (const Reflex::Object &o) const |
SingleInvoker (const Reflex::Type &t, const std::string &name, const std::vector< AnyMethodArgument > &args) | |
void | throwFailedConversion (const Reflex::Object &o) const |
~SingleInvoker () | |
Private Attributes | |
std::vector< MethodInvoker > | invokers_ |
bool | isRefGet_ |
true if this invoker just pops out a ref and returns (ref.get(), false) More... | |
method::TypeCode | retType_ |
Reflex::Object | storage_ |
bool | storageNeedsDestructor_ |
A bigger brother of the MethodInvoker:
Definition at line 39 of file MethodInvoker.h.
SingleInvoker::SingleInvoker | ( | const Reflex::Type & | t, |
const std::string & | name, | ||
const std::vector< AnyMethodArgument > & | args | ||
) |
Definition at line 134 of file MethodInvoker.cc.
References invokers_, isRefGet_, reco::parser::ExpressionVar::makeStorage(), reco::parser::MethodSetter::push(), retType_, storage_, storageNeedsDestructor_, and reco::typeCode().
SingleInvoker::~SingleInvoker | ( | ) |
Definition at line 148 of file MethodInvoker.cc.
References reco::parser::ExpressionVar::delStorage(), and storage_.
pair< Object, bool > SingleInvoker::invoke | ( | const Reflex::Object & | o, |
std::vector< Reflex::Object > & | v | ||
) | const |
If the member is found in object o, evaluate and return (value,true) If the member is not found but o is a Ref/RefToBase/Ptr, (return o.get(), false) the actual Reflex::Object where the result is stored will be pushed in vector so that, if needed, its destructor can be called
Definition at line 154 of file MethodInvoker.cc.
References invokers_, isRefGet_, run_regression::ret, storage_, and storageNeedsDestructor_.
Referenced by reco::parser::LazyInvoker::invoke(), and reco::parser::LazyInvoker::invokeLast().
double SingleInvoker::retToDouble | ( | const Reflex::Object & | o | ) | const |
Definition at line 168 of file MethodInvoker.cc.
References reco::parser::ExpressionVar::isValidReturnType(), reco::parser::ExpressionVar::objToDouble(), retType_, and throwFailedConversion().
Referenced by reco::parser::LazyInvoker::invokeLast().
void SingleInvoker::throwFailedConversion | ( | const Reflex::Object & | o | ) | const |
Definition at line 176 of file MethodInvoker.cc.
References edm::errors::Configuration, edm::hlt::Exception, and invokers_.
Referenced by retToDouble().
|
private |
Definition at line 56 of file MethodInvoker.h.
Referenced by invoke(), SingleInvoker(), and throwFailedConversion().
|
private |
true if this invoker just pops out a ref and returns (ref.get(), false)
Definition at line 60 of file MethodInvoker.h.
Referenced by invoke(), and SingleInvoker().
|
private |
Definition at line 55 of file MethodInvoker.h.
Referenced by retToDouble(), and SingleInvoker().
|
mutableprivate |
Definition at line 57 of file MethodInvoker.h.
Referenced by invoke(), SingleInvoker(), and ~SingleInvoker().
|
private |
Definition at line 58 of file MethodInvoker.h.
Referenced by invoke(), and SingleInvoker().