#include "capi.h"
#include "cpp_cppyy.h"
#include "callcontext.h"
#include "TBaseClass.h"
#include "TClass.h"
#include "TClassRef.h"
#include "TClassTable.h"
#include "TClassEdit.h"
#include "TCollection.h"
#include "TDataMember.h"
#include "TDataType.h"
#include "TEnum.h"
#include "TEnumConstant.h"
#include "TEnv.h"
#include "TError.h"
#include "TException.h"
#include "TFunction.h"
#include "TFunctionTemplate.h"
#include "TGlobal.h"
#include "THashList.h"
#include "TInterpreter.h"
#include "TList.h"
#include "TListOfDataMembers.h"
#include "TListOfEnums.h"
#include "TMethod.h"
#include "TMethodArg.h"
#include "TROOT.h"
#include "TSystem.h"
#include <assert.h>
#include <algorithm>
#include <stdexcept>
#include <map>
#include <new>
#include <set>
#include <sstream>
#include <signal.h>
#include <stdlib.h>
#include <string.h>
#include <typeinfo>
#include <iostream>
Macros | |
#define | CPPYY_HANDLE_EXCEPTION |
#define | CPPYY_IMP_CALL(typecode, rtype) |
#define | FILL_COLL(type, filter) |
Typedefs | |
typedef std::vector< TClassRef > | ClassRefs_t |
typedef std::vector< TGlobal * > | GlobalVars_t |
typedef std::map< std::string, ClassRefs_t::size_type > | Name2ClassRefIndex_t |
typedef CPyCppyy::Parameter | Parameter |
Variables | |
static std::set< std::string > | g_builtins |
static GlobalVars_t | g_globalvars |
static Name2ClassRefIndex_t | g_name2classrefidx |
static bool | gEnableFastPath = true |
static std::set< std::string > | gInitialNames |
static const ClassRefs_t::size_type | GLOBAL_HANDLE = 1 |
static std::map< TDictionary::DeclId_t, CallWrapper * > | gMethodTemplates |
static std::set< std::string > | gRootSOs |
static std::set< std::string > | gSmartPtrTypes |
static std::set< std::string > | gSTLNames |
static std::vector< CallWrapper * > | gWrapperHolder |
static std::map< std::string, std::string > | resolved_enum_types |
static std::map< Cppyy::TCppType_t, bool > | sHasOperatorDelete |
const int | SMALL_ARGS_N = 8 |
static const ClassRefs_t::size_type | STD_HANDLE = GLOBAL_HANDLE + 1 |
#define CPPYY_HANDLE_EXCEPTION |
Definition at line 2252 of file clingwrapper.cxx.
#define CPPYY_IMP_CALL | ( | typecode, | |
rtype | |||
) |
Definition at line 821 of file clingwrapper.cxx.
#define FILL_COLL | ( | type, | |
filter | |||
) |
Definition at line 992 of file clingwrapper.cxx.
typedef std::vector<TClassRef> ClassRefs_t |
Definition at line 56 of file clingwrapper.cxx.
typedef std::vector<TGlobal*> GlobalVars_t |
Definition at line 110 of file clingwrapper.cxx.
typedef std::map<std::string, ClassRefs_t::size_type> Name2ClassRefIndex_t |
Definition at line 61 of file clingwrapper.cxx.
typedef CPyCppyy::Parameter Parameter |
Definition at line 48 of file clingwrapper.cxx.
|
inlinestatic |
Definition at line 813 of file clingwrapper.cxx.
|
inlinestatic |
Definition at line 1003 of file clingwrapper.cxx.
Definition at line 735 of file clingwrapper.cxx.
|
inlinestatic |
Definition at line 344 of file clingwrapper.cxx.
cppyy_type_t cppyy_actual_class | ( | cppyy_type_t | klass, |
cppyy_object_t | obj | ||
) |
Definition at line 2216 of file clingwrapper.cxx.
void cppyy_add_smartptr_type | ( | const char * | type_name | ) |
Definition at line 2483 of file clingwrapper.cxx.
cppyy_object_t cppyy_allocate | ( | cppyy_type_t | type | ) |
Definition at line 2230 of file clingwrapper.cxx.
Definition at line 2379 of file clingwrapper.cxx.
char * cppyy_base_name | ( | cppyy_type_t | type, |
int | base_index | ||
) |
Definition at line 2467 of file clingwrapper.cxx.
ptrdiff_t cppyy_base_offset | ( | cppyy_type_t | derived, |
cppyy_type_t | base, | ||
cppyy_object_t | address, | ||
int | direction | ||
) |
Definition at line 2489 of file clingwrapper.cxx.
unsigned char cppyy_call_b | ( | cppyy_method_t | method, |
cppyy_object_t | self, | ||
int | nargs, | ||
void * | args | ||
) |
Definition at line 2271 of file clingwrapper.cxx.
char cppyy_call_c | ( | cppyy_method_t | method, |
cppyy_object_t | self, | ||
int | nargs, | ||
void * | args | ||
) |
Definition at line 2278 of file clingwrapper.cxx.
double cppyy_call_d | ( | cppyy_method_t | method, |
cppyy_object_t | self, | ||
int | nargs, | ||
void * | args | ||
) |
Definition at line 2320 of file clingwrapper.cxx.
float cppyy_call_f | ( | cppyy_method_t | method, |
cppyy_object_t | self, | ||
int | nargs, | ||
void * | args | ||
) |
Definition at line 2313 of file clingwrapper.cxx.
short cppyy_call_h | ( | cppyy_method_t | method, |
cppyy_object_t | self, | ||
int | nargs, | ||
void * | args | ||
) |
Definition at line 2285 of file clingwrapper.cxx.
int cppyy_call_i | ( | cppyy_method_t | method, |
cppyy_object_t | self, | ||
int | nargs, | ||
void * | args | ||
) |
Definition at line 2292 of file clingwrapper.cxx.
long cppyy_call_l | ( | cppyy_method_t | method, |
cppyy_object_t | self, | ||
int | nargs, | ||
void * | args | ||
) |
Definition at line 2299 of file clingwrapper.cxx.
long double cppyy_call_ld | ( | cppyy_method_t | method, |
cppyy_object_t | self, | ||
int | nargs, | ||
void * | args | ||
) |
Definition at line 2327 of file clingwrapper.cxx.
long long cppyy_call_ll | ( | cppyy_method_t | method, |
cppyy_object_t | self, | ||
int | nargs, | ||
void * | args | ||
) |
Definition at line 2306 of file clingwrapper.cxx.
double cppyy_call_nld | ( | cppyy_method_t | method, |
cppyy_object_t | self, | ||
int | nargs, | ||
void * | args | ||
) |
Definition at line 2334 of file clingwrapper.cxx.
cppyy_object_t cppyy_call_o | ( | cppyy_method_t | method, |
cppyy_object_t | self, | ||
int | nargs, | ||
void * | args, | ||
cppyy_type_t | result_type | ||
) |
Definition at line 2365 of file clingwrapper.cxx.
void * cppyy_call_r | ( | cppyy_method_t | method, |
cppyy_object_t | self, | ||
int | nargs, | ||
void * | args | ||
) |
Definition at line 2338 of file clingwrapper.cxx.
char * cppyy_call_s | ( | cppyy_method_t | method, |
cppyy_object_t | self, | ||
int | nargs, | ||
void * | args, | ||
size_t * | lsz | ||
) |
Definition at line 2345 of file clingwrapper.cxx.
void cppyy_call_v | ( | cppyy_method_t | method, |
cppyy_object_t | self, | ||
int | nargs, | ||
void * | args | ||
) |
Definition at line 2265 of file clingwrapper.cxx.
cppyy_object_t cppyy_charp2stdstring | ( | const char * | str, |
size_t | sz | ||
) |
Definition at line 2702 of file clingwrapper.cxx.
int cppyy_compile | ( | const char * | code | ) |
Definition at line 2198 of file clingwrapper.cxx.
cppyy_object_t cppyy_construct | ( | cppyy_type_t | type | ) |
Definition at line 2238 of file clingwrapper.cxx.
cppyy_object_t cppyy_constructor | ( | cppyy_method_t | method, |
cppyy_type_t | klass, | ||
int | nargs, | ||
void * | args | ||
) |
Definition at line 2353 of file clingwrapper.cxx.
int cppyy_datamember_index | ( | cppyy_scope_t | scope, |
const char * | name | ||
) |
Definition at line 2637 of file clingwrapper.cxx.
char * cppyy_datamember_name | ( | cppyy_scope_t | scope, |
int | datamember_index | ||
) |
Definition at line 2625 of file clingwrapper.cxx.
intptr_t cppyy_datamember_offset | ( | cppyy_scope_t | scope, |
int | datamember_index | ||
) |
Definition at line 2633 of file clingwrapper.cxx.
char * cppyy_datamember_type | ( | cppyy_scope_t | scope, |
int | datamember_index | ||
) |
Definition at line 2629 of file clingwrapper.cxx.
void cppyy_deallocate | ( | cppyy_type_t | type, |
cppyy_object_t | self | ||
) |
Definition at line 2234 of file clingwrapper.cxx.
Definition at line 2384 of file clingwrapper.cxx.
void cppyy_destruct | ( | cppyy_type_t | type, |
cppyy_object_t | self | ||
) |
Definition at line 2242 of file clingwrapper.cxx.
void cppyy_destructor | ( | cppyy_type_t | klass, |
cppyy_object_t | self | ||
) |
Definition at line 2361 of file clingwrapper.cxx.
Definition at line 2719 of file clingwrapper.cxx.
int cppyy_exists_method_template | ( | cppyy_scope_t | scope, |
const char * | name | ||
) |
Definition at line 2581 of file clingwrapper.cxx.
char * cppyy_final_name | ( | cppyy_type_t | type | ) |
Definition at line 2443 of file clingwrapper.cxx.
Definition at line 2698 of file clingwrapper.cxx.
cppyy_funcaddr_t cppyy_function_address | ( | cppyy_method_t | method | ) |
Definition at line 2373 of file clingwrapper.cxx.
size_t cppyy_function_arg_sizeof | ( | ) |
Definition at line 2388 of file clingwrapper.cxx.
size_t cppyy_function_arg_typeoffset | ( | ) |
Definition at line 2392 of file clingwrapper.cxx.
const char ** cppyy_get_all_cpp_names | ( | cppyy_scope_t | scope, |
size_t * | count | ||
) |
Definition at line 2414 of file clingwrapper.cxx.
int cppyy_get_dimension_size | ( | cppyy_scope_t | scope, |
cppyy_index_t | idata, | ||
int | dimension | ||
) |
Definition at line 2664 of file clingwrapper.cxx.
cppyy_index_t cppyy_get_global_operator | ( | cppyy_scope_t | scope, |
cppyy_scope_t | lc, | ||
cppyy_scope_t | rc, | ||
const char * | op | ||
) |
Definition at line 2593 of file clingwrapper.cxx.
cppyy_method_t cppyy_get_method | ( | cppyy_scope_t | scope, |
cppyy_index_t | idx | ||
) |
Definition at line 2512 of file clingwrapper.cxx.
cppyy_method_t cppyy_get_method_template | ( | cppyy_scope_t | scope, |
const char * | name, | ||
const char * | proto | ||
) |
Definition at line 2589 of file clingwrapper.cxx.
int cppyy_get_num_templated_methods | ( | cppyy_scope_t | scope | ) |
Definition at line 2569 of file clingwrapper.cxx.
cppyy_scope_t cppyy_get_scope | ( | const char * | scope_name | ) |
Definition at line 2212 of file clingwrapper.cxx.
char * cppyy_get_templated_method_name | ( | cppyy_scope_t | scope, |
cppyy_index_t | imeth | ||
) |
Definition at line 2573 of file clingwrapper.cxx.
cppyy_scope_t * cppyy_get_using_namespaces | ( | cppyy_scope_t | scope | ) |
Definition at line 2429 of file clingwrapper.cxx.
int cppyy_has_complex_hierarchy | ( | cppyy_type_t | type | ) |
Definition at line 2455 of file clingwrapper.cxx.
int cppyy_has_virtual_destructor | ( | cppyy_type_t | type | ) |
Definition at line 2451 of file clingwrapper.cxx.
int cppyy_is_abstract | ( | cppyy_type_t | type | ) |
Definition at line 2406 of file clingwrapper.cxx.
int cppyy_is_const_data | ( | cppyy_scope_t | scope, |
cppyy_index_t | idata | ||
) |
Definition at line 2656 of file clingwrapper.cxx.
int cppyy_is_const_method | ( | cppyy_method_t | method | ) |
Definition at line 2565 of file clingwrapper.cxx.
int cppyy_is_constructor | ( | cppyy_method_t | method | ) |
Definition at line 2607 of file clingwrapper.cxx.
int cppyy_is_destructor | ( | cppyy_method_t | method | ) |
Definition at line 2611 of file clingwrapper.cxx.
int cppyy_is_enum | ( | const char * | type_name | ) |
Definition at line 2410 of file clingwrapper.cxx.
int cppyy_is_enum_data | ( | cppyy_scope_t | scope, |
cppyy_index_t | idata | ||
) |
Definition at line 2660 of file clingwrapper.cxx.
int cppyy_is_namespace | ( | cppyy_scope_t | scope | ) |
Definition at line 2398 of file clingwrapper.cxx.
int cppyy_is_protecteddata | ( | cppyy_type_t | type, |
cppyy_index_t | datamember_index | ||
) |
Definition at line 2648 of file clingwrapper.cxx.
int cppyy_is_protectedmethod | ( | cppyy_method_t | method | ) |
Definition at line 2603 of file clingwrapper.cxx.
int cppyy_is_publicdata | ( | cppyy_type_t | type, |
cppyy_index_t | datamember_index | ||
) |
Definition at line 2644 of file clingwrapper.cxx.
int cppyy_is_publicmethod | ( | cppyy_method_t | method | ) |
Definition at line 2599 of file clingwrapper.cxx.
int cppyy_is_smartptr | ( | cppyy_type_t | type | ) |
Definition at line 2475 of file clingwrapper.cxx.
int cppyy_is_staticdata | ( | cppyy_type_t | type, |
cppyy_index_t | datamember_index | ||
) |
Definition at line 2652 of file clingwrapper.cxx.
int cppyy_is_staticmethod | ( | cppyy_method_t | method | ) |
Definition at line 2615 of file clingwrapper.cxx.
int cppyy_is_subtype | ( | cppyy_type_t | derived, |
cppyy_type_t | base | ||
) |
Definition at line 2471 of file clingwrapper.cxx.
int cppyy_is_template | ( | const char * | template_name | ) |
Definition at line 2402 of file clingwrapper.cxx.
int cppyy_is_templated_constructor | ( | cppyy_scope_t | scope, |
cppyy_index_t | imeth | ||
) |
Definition at line 2577 of file clingwrapper.cxx.
RPY_EXTERN void * cppyy_load_dictionary | ( | const char * | lib_name | ) |
Definition at line 2671 of file clingwrapper.cxx.
Definition at line 2715 of file clingwrapper.cxx.
char * cppyy_method_arg_default | ( | cppyy_method_t | method, |
int | arg_index | ||
) |
Definition at line 2548 of file clingwrapper.cxx.
char * cppyy_method_arg_name | ( | cppyy_method_t | method, |
int | arg_index | ||
) |
Definition at line 2540 of file clingwrapper.cxx.
char * cppyy_method_arg_type | ( | cppyy_method_t | method, |
int | arg_index | ||
) |
Definition at line 2544 of file clingwrapper.cxx.
char * cppyy_method_full_name | ( | cppyy_method_t | method | ) |
Definition at line 2520 of file clingwrapper.cxx.
cppyy_index_t * cppyy_method_indices_from_name | ( | cppyy_scope_t | scope, |
const char * | name | ||
) |
Definition at line 2499 of file clingwrapper.cxx.
int cppyy_method_is_template | ( | cppyy_scope_t | scope, |
cppyy_index_t | idx | ||
) |
Definition at line 2585 of file clingwrapper.cxx.
char * cppyy_method_mangled_name | ( | cppyy_method_t | method | ) |
Definition at line 2524 of file clingwrapper.cxx.
char * cppyy_method_name | ( | cppyy_method_t | method | ) |
Definition at line 2516 of file clingwrapper.cxx.
int cppyy_method_num_args | ( | cppyy_method_t | method | ) |
Definition at line 2532 of file clingwrapper.cxx.
char * cppyy_method_prototype | ( | cppyy_scope_t | scope, |
cppyy_method_t | method, | ||
int | show_formalargs | ||
) |
Definition at line 2560 of file clingwrapper.cxx.
int cppyy_method_req_args | ( | cppyy_method_t | method | ) |
Definition at line 2536 of file clingwrapper.cxx.
char * cppyy_method_result_type | ( | cppyy_method_t | method | ) |
Definition at line 2528 of file clingwrapper.cxx.
char * cppyy_method_signature | ( | cppyy_method_t | method, |
int | show_formalargs | ||
) |
Definition at line 2552 of file clingwrapper.cxx.
char * cppyy_method_signature_max | ( | cppyy_method_t | method, |
int | show_formalargs, | ||
int | maxargs | ||
) |
Definition at line 2556 of file clingwrapper.cxx.
int cppyy_num_bases | ( | cppyy_type_t | type | ) |
Definition at line 2459 of file clingwrapper.cxx.
int cppyy_num_bases_longest_branch | ( | cppyy_type_t | type | ) |
Definition at line 2463 of file clingwrapper.cxx.
int cppyy_num_datamembers | ( | cppyy_scope_t | scope | ) |
Definition at line 2621 of file clingwrapper.cxx.
int cppyy_num_methods | ( | cppyy_scope_t | scope | ) |
Definition at line 2495 of file clingwrapper.cxx.
char * cppyy_resolve_enum | ( | const char * | enum_type | ) |
Definition at line 2208 of file clingwrapper.cxx.
char * cppyy_resolve_name | ( | const char * | cppitem_name | ) |
Definition at line 2204 of file clingwrapper.cxx.
char * cppyy_scoped_final_name | ( | cppyy_type_t | type | ) |
Definition at line 2447 of file clingwrapper.cxx.
size_t cppyy_size_of_klass | ( | cppyy_type_t | klass | ) |
Definition at line 2220 of file clingwrapper.cxx.
size_t cppyy_size_of_type | ( | const char * | type_name | ) |
Definition at line 2224 of file clingwrapper.cxx.
int cppyy_smartptr_info | ( | const char * | name, |
cppyy_type_t * | raw, | ||
cppyy_method_t * | deref | ||
) |
Definition at line 2479 of file clingwrapper.cxx.
const char * cppyy_stdstring2charp | ( | cppyy_object_t | ptr, |
size_t * | lsz | ||
) |
Definition at line 2706 of file clingwrapper.cxx.
cppyy_object_t cppyy_stdstring2stdstring | ( | cppyy_object_t | ptr | ) |
Definition at line 2711 of file clingwrapper.cxx.
Definition at line 2687 of file clingwrapper.cxx.
Definition at line 2692 of file clingwrapper.cxx.
int cppyy_vectorbool_getitem | ( | cppyy_object_t | ptr, |
int | idx | ||
) |
Definition at line 2723 of file clingwrapper.cxx.
void cppyy_vectorbool_setitem | ( | cppyy_object_t | ptr, |
int | idx, | ||
int | value | ||
) |
Definition at line 2727 of file clingwrapper.cxx.
|
static |
|
static |
Definition at line 701 of file clingwrapper.cxx.
|
static |
Definition at line 1907 of file clingwrapper.cxx.
Cppyy::TCppIndex_t GetLongestInheritancePath | ( | TClass * | klass | ) |
Retrieve number of base classes in the longest branch of the inheritance tree of the input class.
[in] | klass | The class to start the retrieval process from. |
This is a helper function for Cppyy::GetNumBasesLongestBranch. Given an inheritance tree, the function assigns weight 1 to each class that has at least one base. Starting from the input class, the function is called recursively on all the bases. For each base the return value is one (the weight of the base itself) plus the maximum value retrieved for their bases in turn. For example, given the following inheritance tree:
calling this function on an instance of C
will return 3, the steps required to go from C to X.
Definition at line 1243 of file clingwrapper.cxx.
|
inlinestatic |
Definition at line 364 of file clingwrapper.cxx.
|
inlinestatic |
Definition at line 334 of file clingwrapper.cxx.
|
inlinestatic |
Definition at line 352 of file clingwrapper.cxx.
|
inlinestatic |
Definition at line 103 of file clingwrapper.cxx.
|
inlinestatic |
Definition at line 96 of file clingwrapper.cxx.
|
static |
Definition at line 980 of file clingwrapper.cxx.
|
static |
Definition at line 954 of file clingwrapper.cxx.
Definition at line 757 of file clingwrapper.cxx.
|
inlinestatic |
Definition at line 327 of file clingwrapper.cxx.
|
inlinestatic |
Definition at line 1796 of file clingwrapper.cxx.
|
inlinestatic |
Definition at line 764 of file clingwrapper.cxx.
|
static |
Definition at line 121 of file clingwrapper.cxx.
|
static |
Definition at line 111 of file clingwrapper.cxx.
|
static |
Definition at line 62 of file clingwrapper.cxx.
|
static |
Definition at line 138 of file clingwrapper.cxx.
|
static |
Definition at line 134 of file clingwrapper.cxx.
|
static |
Definition at line 58 of file clingwrapper.cxx.
|
static |
Definition at line 1711 of file clingwrapper.cxx.
|
static |
Definition at line 135 of file clingwrapper.cxx.
|
static |
Definition at line 129 of file clingwrapper.cxx.
|
static |
Definition at line 113 of file clingwrapper.cxx.
|
static |
Definition at line 95 of file clingwrapper.cxx.
|
static |
Definition at line 443 of file clingwrapper.cxx.
|
static |
Definition at line 679 of file clingwrapper.cxx.
const int SMALL_ARGS_N = 8 |
Definition at line 53 of file clingwrapper.cxx.
|
static |
Definition at line 59 of file clingwrapper.cxx.