7 #include "TInterpreter.h"
9 #include "TMethodArg.h"
11 #include "tbb/concurrent_unordered_map.h"
16 typedef tbb::concurrent_unordered_map<TMethod const*, TypeWithDict> Map;
27 if (function_ ==
nullptr) {
30 return function_->IsValid();
39 return function_->GetReturnTypeNormalizedName();
44 auto const& item = returnTypeMap.find(
function_);
45 if(item != returnTypeMap.end()) {
49 returnTypeMap.insert(std::make_pair(
function_, theType));
60 return function_->Property() & kIsConstMethod;
103 std::vector<void*>
const&
values)
const {
104 void const**
data =
const_cast<void const**
>(values.data());
105 if (ret ==
nullptr) {
115 std::vector<void*>
const&
values)
const {
116 void const**
data =
const_cast<void const**
>(values.data());
117 if (ret ==
nullptr) {
118 gInterpreter->ExecuteWithArgsAndReturn(
function_,
nullptr, data, values.size(),
nullptr);
121 gInterpreter->ExecuteWithArgsAndReturn(
function_,
nullptr, data, values.size(), ret->
address());
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]
bool isDestructor() const