1 #ifndef CommonTools_Utils_MethodInvoker_h 2 #define CommonTools_Utils_MethodInvoker_h 11 #include <boost/shared_ptr.hpp> 12 #include <boost/utility.hpp> 17 #include "tbb/concurrent_unordered_map.h" 22 tbb::tbb_hash<std::string> hasher;
35 std::vector<AnyMethodArgument>
ints_;
44 const std::vector<AnyMethodArgument>& ints =
45 std::vector<AnyMethodArgument>());
79 const std::vector<AnyMethodArgument>&
args);
89 std::pair<edm::ObjectWithDict, bool>
91 std::vector<edm::ObjectWithDict>&
v)
const;
103 typedef tbb::concurrent_unordered_map<edm::TypeID, SingleInvokerPtr,edm::TypeIDHasher>
InvokerMap;
115 const std::vector<AnyMethodArgument>&
args);
125 std::vector<edm::ObjectWithDict>&
v)
const;
129 std::vector<edm::ObjectWithDict>&
v)
const;
135 #endif // CommonTools_Utils_MethodInvoker_h
method::TypeCode retType_
bool isRefGet_
true if this invoker just pops out a ref and returns (ref.get(), false)
bool storageNeedsDestructor_
edm::MemberWithDict member_
std::vector< AnyMethodArgument > ints_
size_t operator()(TypeID const &tid) const
Keeps different SingleInvokers for each dynamic type of the objects passed to invoke() ...
std::shared_ptr< SingleInvoker > SingleInvokerPtr
edm::MemberWithDict const member() const
tbb::concurrent_unordered_map< edm::TypeID, SingleInvokerPtr, edm::TypeIDHasher > InvokerMap
edm::FunctionWithDict method_
edm::ObjectWithDict storage_
edm::TypeWithDict retTypeFinal_
edm::FunctionWithDict const method() const
std::vector< void * > args_
std::vector< AnyMethodArgument > argsBeforeFixups_
std::vector< MethodInvoker > invokers_
const char * name() const