8 #include "TMethodArg.h"
9 #include "TMethodCall.h"
11 #include "tbb/concurrent_unordered_map.h"
16 typedef tbb::concurrent_unordered_map<TMethod const*, TypeWithDict> Map;
25 TMethodCall caller( meth );
26 auto callFunc = caller.GetCallFunc();
27 funcptr_ = gInterpreter->CallFunc_IFacePtr( callFunc );
32 if (function_ ==
nullptr) {
35 return function_->IsValid();
44 return function_->GetReturnTypeNormalizedName();
49 auto const& item = returnTypeMap.find(
function_);
50 if(item != returnTypeMap.end()) {
54 returnTypeMap.insert(std::make_pair(
function_, theType));
65 return function_->Property() & kIsConstMethod;
108 std::vector<void*>
const&
values)
const {
109 void **
data =
const_cast<void**
>(values.data());
111 if (ret ==
nullptr) {
121 std::vector<void*>
const&
values)
const {
122 void **
data =
const_cast<void **
>(values.data());
124 if (ret ==
nullptr) {
125 (*
funcptr_.fGeneric)(
nullptr, values.size(),
data,
nullptr);
bool isConstructor() const
TypeWithDict declaringType() const
IterWithDict< TMethodArg > end() const
IterWithDict< TMethodArg > begin() const
static TypeWithDict byName(std::string const &name)
std::string typeName() const
void invoke(ObjectWithDict const &obj, ObjectWithDict *ret=nullptr, std::vector< void * > const &values=std::vector< void * >()) const
Call a member function.
TypeWithDict finalReturnType() const
size_t functionParameterSize(bool required=false) const
char data[epos_bytes_allocation]
TInterpreter::CallFuncIFacePtr_t funcptr_
bool isDestructor() const