Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
clingwrapper.cxx File Reference
#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 <climits>
#include <stdexcept>
#include <map>
#include <new>
#include <set>
#include <sstream>
#include <signal.h>
#include <stdlib.h>
#include <string.h>
#include <typeinfo>
#include <iostream>
Include dependency graph for clingwrapper.cxx:

Macros

#define CPPYY_HANDLE_EXCEPTION
 
#define CPPYY_IMP_CALL(typecode, rtype)
 
#define DIRECT_CALL   ((size_t)1 << (8 * sizeof(size_t) - 1))
 
#define FILL_COLL(type, filter)
 

Typedefs

typedef std::vector< TClassRefClassRefs_t
 
typedef std::vector< TGlobal * > GlobalVars_t
 
typedef std::map< std::string, ClassRefs_t::size_type > Name2ClassRefIndex_t
 
typedef CPyCppyy::Parameter Parameter
 

Functions

static size_t CALL_NARGS (size_t nargs)
 
template<typename T >
static T CallT (Cppyy::TCppMethod_t method, Cppyy::TCppObject_t self, size_t nargs, void *args)
 
static void cond_add (Cppyy::TCppScope_t scope, const std::string &ns_scope, std::set< std::string > &cppnames, const char *name, bool nofilter=false)
 
static bool copy_args (Parameter *args, size_t nargs, void **vargs)
 
static char * cppstring_to_cstring (const std::string &cppstr)
 
cppyy_type_t cppyy_actual_class (cppyy_type_t klass, cppyy_object_t obj)
 
void cppyy_add_smartptr_type (const char *type_name)
 
cppyy_object_t cppyy_allocate (cppyy_type_t type)
 
void * cppyy_allocate_function_args (int nargs)
 
char * cppyy_base_name (cppyy_type_t type, int base_index)
 
ptrdiff_t cppyy_base_offset (cppyy_type_t derived, cppyy_type_t base, cppyy_object_t address, int direction)
 
unsigned char cppyy_call_b (cppyy_method_t method, cppyy_object_t self, int nargs, void *args)
 
char cppyy_call_c (cppyy_method_t method, cppyy_object_t self, int nargs, void *args)
 
double cppyy_call_d (cppyy_method_t method, cppyy_object_t self, int nargs, void *args)
 
float cppyy_call_f (cppyy_method_t method, cppyy_object_t self, int nargs, void *args)
 
short cppyy_call_h (cppyy_method_t method, cppyy_object_t self, int nargs, void *args)
 
int cppyy_call_i (cppyy_method_t method, cppyy_object_t self, int nargs, void *args)
 
long cppyy_call_l (cppyy_method_t method, cppyy_object_t self, int nargs, void *args)
 
long double cppyy_call_ld (cppyy_method_t method, cppyy_object_t self, int nargs, void *args)
 
long long cppyy_call_ll (cppyy_method_t method, cppyy_object_t self, int nargs, void *args)
 
double cppyy_call_nld (cppyy_method_t method, cppyy_object_t self, int nargs, void *args)
 
cppyy_object_t cppyy_call_o (cppyy_method_t method, cppyy_object_t self, int nargs, void *args, cppyy_type_t result_type)
 
void * cppyy_call_r (cppyy_method_t method, cppyy_object_t self, int nargs, void *args)
 
char * cppyy_call_s (cppyy_method_t method, cppyy_object_t self, int nargs, void *args, size_t *lsz)
 
void cppyy_call_v (cppyy_method_t method, cppyy_object_t self, int nargs, void *args)
 
cppyy_object_t cppyy_charp2stdstring (const char *str, size_t sz)
 
int cppyy_compile (const char *code)
 
cppyy_object_t cppyy_construct (cppyy_type_t type)
 
cppyy_object_t cppyy_constructor (cppyy_method_t method, cppyy_type_t klass, int nargs, void *args)
 
int cppyy_datamember_index (cppyy_scope_t scope, const char *name)
 
char * cppyy_datamember_name (cppyy_scope_t scope, int datamember_index)
 
intptr_t cppyy_datamember_offset (cppyy_scope_t scope, int datamember_index)
 
char * cppyy_datamember_type (cppyy_scope_t scope, int datamember_index)
 
void cppyy_deallocate (cppyy_type_t type, cppyy_object_t self)
 
void cppyy_deallocate_function_args (void *args)
 
void cppyy_destruct (cppyy_type_t type, cppyy_object_t self)
 
void cppyy_destructor (cppyy_type_t klass, cppyy_object_t self)
 
void cppyy_double2longdouble (double d, void *p)
 
int cppyy_exists_method_template (cppyy_scope_t scope, const char *name)
 
char * cppyy_final_name (cppyy_type_t type)
 
void cppyy_free (void *ptr)
 
cppyy_funcaddr_t cppyy_function_address (cppyy_method_t method)
 
size_t cppyy_function_arg_sizeof ()
 
size_t cppyy_function_arg_typeoffset ()
 
const char ** cppyy_get_all_cpp_names (cppyy_scope_t scope, size_t *count)
 
int cppyy_get_dimension_size (cppyy_scope_t scope, cppyy_index_t idata, int dimension)
 
cppyy_index_t cppyy_get_global_operator (cppyy_scope_t scope, cppyy_scope_t lc, cppyy_scope_t rc, const char *op)
 
cppyy_method_t cppyy_get_method (cppyy_scope_t scope, cppyy_index_t idx)
 
cppyy_method_t cppyy_get_method_template (cppyy_scope_t scope, const char *name, const char *proto)
 
int cppyy_get_num_templated_methods (cppyy_scope_t scope)
 
cppyy_scope_t cppyy_get_scope (const char *scope_name)
 
char * cppyy_get_templated_method_name (cppyy_scope_t scope, cppyy_index_t imeth)
 
cppyy_scope_tcppyy_get_using_namespaces (cppyy_scope_t scope)
 
int cppyy_has_complex_hierarchy (cppyy_type_t type)
 
int cppyy_has_virtual_destructor (cppyy_type_t type)
 
int cppyy_is_abstract (cppyy_type_t type)
 
int cppyy_is_aggregate (cppyy_type_t type)
 
int cppyy_is_const_data (cppyy_scope_t scope, cppyy_index_t idata)
 
int cppyy_is_const_method (cppyy_method_t method)
 
int cppyy_is_constructor (cppyy_method_t method)
 
int cppyy_is_destructor (cppyy_method_t method)
 
int cppyy_is_enum (const char *type_name)
 
int cppyy_is_enum_data (cppyy_scope_t scope, cppyy_index_t idata)
 
int cppyy_is_namespace (cppyy_scope_t scope)
 
int cppyy_is_protecteddata (cppyy_type_t type, cppyy_index_t datamember_index)
 
int cppyy_is_protectedmethod (cppyy_method_t method)
 
int cppyy_is_publicdata (cppyy_type_t type, cppyy_index_t datamember_index)
 
int cppyy_is_publicmethod (cppyy_method_t method)
 
int cppyy_is_smartptr (cppyy_type_t type)
 
int cppyy_is_staticdata (cppyy_type_t type, cppyy_index_t datamember_index)
 
int cppyy_is_staticmethod (cppyy_method_t method)
 
int cppyy_is_subtype (cppyy_type_t derived, cppyy_type_t base)
 
int cppyy_is_template (const char *template_name)
 
int cppyy_is_templated_constructor (cppyy_scope_t scope, cppyy_index_t imeth)
 
void * cppyy_load_dictionary (const char *lib_name)
 
double cppyy_longdouble2double (void *p)
 
char * cppyy_method_arg_default (cppyy_method_t method, int arg_index)
 
char * cppyy_method_arg_name (cppyy_method_t method, int arg_index)
 
char * cppyy_method_arg_type (cppyy_method_t method, int arg_index)
 
char * cppyy_method_full_name (cppyy_method_t method)
 
cppyy_index_tcppyy_method_indices_from_name (cppyy_scope_t scope, const char *name)
 
int cppyy_method_is_template (cppyy_scope_t scope, cppyy_index_t idx)
 
char * cppyy_method_mangled_name (cppyy_method_t method)
 
char * cppyy_method_name (cppyy_method_t method)
 
int cppyy_method_num_args (cppyy_method_t method)
 
char * cppyy_method_prototype (cppyy_scope_t scope, cppyy_method_t method, int show_formalargs)
 
int cppyy_method_req_args (cppyy_method_t method)
 
char * cppyy_method_result_type (cppyy_method_t method)
 
char * cppyy_method_signature (cppyy_method_t method, int show_formalargs)
 
char * cppyy_method_signature_max (cppyy_method_t method, int show_formalargs, int maxargs)
 
int cppyy_num_bases (cppyy_type_t type)
 
int cppyy_num_bases_longest_branch (cppyy_type_t type)
 
int cppyy_num_datamembers (cppyy_scope_t scope)
 
int cppyy_num_methods (cppyy_scope_t scope)
 
char * cppyy_resolve_enum (const char *enum_type)
 
char * cppyy_resolve_name (const char *cppitem_name)
 
char * cppyy_scoped_final_name (cppyy_type_t type)
 
size_t cppyy_size_of_klass (cppyy_type_t klass)
 
size_t cppyy_size_of_type (const char *type_name)
 
int cppyy_smartptr_info (const char *name, cppyy_type_t *raw, cppyy_method_t *deref)
 
const char * cppyy_stdstring2charp (cppyy_object_t ptr, size_t *lsz)
 
cppyy_object_t cppyy_stdstring2stdstring (cppyy_object_t ptr)
 
long long cppyy_strtoll (const char *str)
 
unsigned long long cppyy_strtoull (const char *str)
 
int cppyy_vectorbool_getitem (cppyy_object_t ptr, int idx)
 
void cppyy_vectorbool_setitem (cppyy_object_t ptr, int idx, int value)
 
static ClassRefs_t g_classrefs (1)
 
static TInterpreter::CallFuncIFacePtr_t GetCallFunc (Cppyy::TCppMethod_t method)
 
static TDataMemberGetDataMemberByIndex (TClassRef cr, int idata)
 
Cppyy::TCppIndex_t GetLongestInheritancePath (TClass *klass)
 Retrieve number of base classes in the longest branch of the inheritance tree of the input class.
 
static bool is_missclassified_stl (const std::string &name)
 
static CallWrapper::DeclId_t m2d (Cppyy::TCppMethod_t method)
 
static TFunctionm2f (Cppyy::TCppMethod_t method)
 
static bool match_name (const std::string &tname, const std::string fname)
 
static CallWrapper * new_CallWrapper (CallWrapper::DeclId_t fid, const std::string &n)
 
static CallWrapper * new_CallWrapper (TFunction *f)
 
static std::string outer_no_template (const std::string &name)
 
static std::string outer_with_template (const std::string &name)
 
static void release_args (Parameter *args, size_t nargs)
 
static TClassReftype_from_handle (Cppyy::TCppScope_t scope)
 
static std::string type_remap (const std::string &n1, const std::string &n2)
 
static bool WrapperCall (Cppyy::TCppMethod_t method, size_t nargs, void *args_, void *self, void *result)
 

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, boolsHasOperatorDelete
 
const int SMALL_ARGS_N = 8
 
static const ClassRefs_t::size_type STD_HANDLE = GLOBAL_HANDLE + 1
 

Macro Definition Documentation

◆ CPPYY_HANDLE_EXCEPTION

#define CPPYY_HANDLE_EXCEPTION
Value:
catch (std::exception& e) { \
cppyy_exctype_t* etype = (cppyy_exctype_t*)((Parameter*)args+nargs); \
*etype = (cppyy_exctype_t)2; \
*((char**)(etype+1)) = cppstring_to_cstring(e.what()); \
} \
catch (...) { \
cppyy_exctype_t* etype = (cppyy_exctype_t*)((Parameter*)args+nargs); \
*etype = (cppyy_exctype_t)1; \
*((char**)(etype+1)) = \
cppstring_to_cstring("unhandled, unknown C++ exception"); \
}
#define e(i)
Definition RSha256.hxx:103
unsigned long cppyy_exctype_t
Definition capi.h:20
static char * cppstring_to_cstring(const std::string &cppstr)

Definition at line 2364 of file clingwrapper.cxx.

◆ CPPYY_IMP_CALL

#define CPPYY_IMP_CALL (   typecode,
  rtype 
)
Value:
rtype Cppyy::Call##typecode(TCppMethod_t method, TCppObject_t self, size_t nargs, void* args)\
{ \
return CallT<rtype>(method, self, nargs, args); \
}

Definition at line 845 of file clingwrapper.cxx.

◆ DIRECT_CALL

#define DIRECT_CALL   ((size_t)1 << (8 * sizeof(size_t) - 1))

Definition at line 57 of file clingwrapper.cxx.

◆ FILL_COLL

#define FILL_COLL (   type,
  filter 
)
Value:
{ \
TIter itr{coll}; \
type* obj = nullptr; \
while ((obj = (type*)itr.Next())) { \
const char* nm = obj->GetName(); \
if (nm && nm[0] != '_' && !(obj->Property() & (filter))) { \
if (gInitialNames.find(nm) == gInitialNames.end()) \
cppnames.insert(nm); \
}}}
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
static std::set< std::string > gInitialNames

Definition at line 1071 of file clingwrapper.cxx.

Typedef Documentation

◆ ClassRefs_t

typedef std::vector<TClassRef> ClassRefs_t

Definition at line 63 of file clingwrapper.cxx.

◆ GlobalVars_t

typedef std::vector<TGlobal*> GlobalVars_t

Definition at line 117 of file clingwrapper.cxx.

◆ Name2ClassRefIndex_t

typedef std::map<std::string, ClassRefs_t::size_type> Name2ClassRefIndex_t

Definition at line 68 of file clingwrapper.cxx.

◆ Parameter

Definition at line 49 of file clingwrapper.cxx.

Function Documentation

◆ CALL_NARGS()

static size_t CALL_NARGS ( size_t  nargs)
inlinestatic

Definition at line 58 of file clingwrapper.cxx.

◆ CallT()

template<typename T >
static T CallT ( Cppyy::TCppMethod_t  method,
Cppyy::TCppObject_t  self,
size_t  nargs,
void *  args 
)
inlinestatic

Definition at line 837 of file clingwrapper.cxx.

◆ cond_add()

static void cond_add ( Cppyy::TCppScope_t  scope,
const std::string &  ns_scope,
std::set< std::string > &  cppnames,
const char *  name,
bool  nofilter = false 
)
inlinestatic

Definition at line 1082 of file clingwrapper.cxx.

◆ copy_args()

static bool copy_args ( Parameter args,
size_t  nargs,
void **  vargs 
)
inlinestatic

Definition at line 757 of file clingwrapper.cxx.

◆ cppstring_to_cstring()

static char * cppstring_to_cstring ( const std::string &  cppstr)
inlinestatic

Definition at line 357 of file clingwrapper.cxx.

◆ cppyy_actual_class()

cppyy_type_t cppyy_actual_class ( cppyy_type_t  klass,
cppyy_object_t  obj 
)

Definition at line 2328 of file clingwrapper.cxx.

◆ cppyy_add_smartptr_type()

void cppyy_add_smartptr_type ( const char *  type_name)

Definition at line 2599 of file clingwrapper.cxx.

◆ cppyy_allocate()

cppyy_object_t cppyy_allocate ( cppyy_type_t  type)

Definition at line 2342 of file clingwrapper.cxx.

◆ cppyy_allocate_function_args()

void * cppyy_allocate_function_args ( int  nargs)

Definition at line 2491 of file clingwrapper.cxx.

◆ cppyy_base_name()

char * cppyy_base_name ( cppyy_type_t  type,
int  base_index 
)

Definition at line 2583 of file clingwrapper.cxx.

◆ cppyy_base_offset()

ptrdiff_t cppyy_base_offset ( cppyy_type_t  derived,
cppyy_type_t  base,
cppyy_object_t  address,
int  direction 
)

Definition at line 2605 of file clingwrapper.cxx.

◆ cppyy_call_b()

unsigned char cppyy_call_b ( cppyy_method_t  method,
cppyy_object_t  self,
int  nargs,
void *  args 
)

Definition at line 2383 of file clingwrapper.cxx.

◆ cppyy_call_c()

char cppyy_call_c ( cppyy_method_t  method,
cppyy_object_t  self,
int  nargs,
void *  args 
)

Definition at line 2390 of file clingwrapper.cxx.

◆ cppyy_call_d()

double cppyy_call_d ( cppyy_method_t  method,
cppyy_object_t  self,
int  nargs,
void *  args 
)

Definition at line 2432 of file clingwrapper.cxx.

◆ cppyy_call_f()

float cppyy_call_f ( cppyy_method_t  method,
cppyy_object_t  self,
int  nargs,
void *  args 
)

Definition at line 2425 of file clingwrapper.cxx.

◆ cppyy_call_h()

short cppyy_call_h ( cppyy_method_t  method,
cppyy_object_t  self,
int  nargs,
void *  args 
)

Definition at line 2397 of file clingwrapper.cxx.

◆ cppyy_call_i()

int cppyy_call_i ( cppyy_method_t  method,
cppyy_object_t  self,
int  nargs,
void *  args 
)

Definition at line 2404 of file clingwrapper.cxx.

◆ cppyy_call_l()

long cppyy_call_l ( cppyy_method_t  method,
cppyy_object_t  self,
int  nargs,
void *  args 
)

Definition at line 2411 of file clingwrapper.cxx.

◆ cppyy_call_ld()

long double cppyy_call_ld ( cppyy_method_t  method,
cppyy_object_t  self,
int  nargs,
void *  args 
)

Definition at line 2439 of file clingwrapper.cxx.

◆ cppyy_call_ll()

long long cppyy_call_ll ( cppyy_method_t  method,
cppyy_object_t  self,
int  nargs,
void *  args 
)

Definition at line 2418 of file clingwrapper.cxx.

◆ cppyy_call_nld()

double cppyy_call_nld ( cppyy_method_t  method,
cppyy_object_t  self,
int  nargs,
void *  args 
)

Definition at line 2446 of file clingwrapper.cxx.

◆ cppyy_call_o()

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 2477 of file clingwrapper.cxx.

◆ cppyy_call_r()

void * cppyy_call_r ( cppyy_method_t  method,
cppyy_object_t  self,
int  nargs,
void *  args 
)

Definition at line 2450 of file clingwrapper.cxx.

◆ cppyy_call_s()

char * cppyy_call_s ( cppyy_method_t  method,
cppyy_object_t  self,
int  nargs,
void *  args,
size_t *  lsz 
)

Definition at line 2457 of file clingwrapper.cxx.

◆ cppyy_call_v()

void cppyy_call_v ( cppyy_method_t  method,
cppyy_object_t  self,
int  nargs,
void *  args 
)

Definition at line 2377 of file clingwrapper.cxx.

◆ cppyy_charp2stdstring()

cppyy_object_t cppyy_charp2stdstring ( const char *  str,
size_t  sz 
)

Definition at line 2818 of file clingwrapper.cxx.

◆ cppyy_compile()

int cppyy_compile ( const char *  code)

Definition at line 2310 of file clingwrapper.cxx.

◆ cppyy_construct()

cppyy_object_t cppyy_construct ( cppyy_type_t  type)

Definition at line 2350 of file clingwrapper.cxx.

◆ cppyy_constructor()

cppyy_object_t cppyy_constructor ( cppyy_method_t  method,
cppyy_type_t  klass,
int  nargs,
void *  args 
)

Definition at line 2465 of file clingwrapper.cxx.

◆ cppyy_datamember_index()

int cppyy_datamember_index ( cppyy_scope_t  scope,
const char *  name 
)

Definition at line 2753 of file clingwrapper.cxx.

◆ cppyy_datamember_name()

char * cppyy_datamember_name ( cppyy_scope_t  scope,
int  datamember_index 
)

Definition at line 2741 of file clingwrapper.cxx.

◆ cppyy_datamember_offset()

intptr_t cppyy_datamember_offset ( cppyy_scope_t  scope,
int  datamember_index 
)

Definition at line 2749 of file clingwrapper.cxx.

◆ cppyy_datamember_type()

char * cppyy_datamember_type ( cppyy_scope_t  scope,
int  datamember_index 
)

Definition at line 2745 of file clingwrapper.cxx.

◆ cppyy_deallocate()

void cppyy_deallocate ( cppyy_type_t  type,
cppyy_object_t  self 
)

Definition at line 2346 of file clingwrapper.cxx.

◆ cppyy_deallocate_function_args()

void cppyy_deallocate_function_args ( void *  args)

Definition at line 2496 of file clingwrapper.cxx.

◆ cppyy_destruct()

void cppyy_destruct ( cppyy_type_t  type,
cppyy_object_t  self 
)

Definition at line 2354 of file clingwrapper.cxx.

◆ cppyy_destructor()

void cppyy_destructor ( cppyy_type_t  klass,
cppyy_object_t  self 
)

Definition at line 2473 of file clingwrapper.cxx.

◆ cppyy_double2longdouble()

void cppyy_double2longdouble ( double  d,
void *  p 
)

Definition at line 2835 of file clingwrapper.cxx.

◆ cppyy_exists_method_template()

int cppyy_exists_method_template ( cppyy_scope_t  scope,
const char *  name 
)

Definition at line 2697 of file clingwrapper.cxx.

◆ cppyy_final_name()

char * cppyy_final_name ( cppyy_type_t  type)

Definition at line 2559 of file clingwrapper.cxx.

◆ cppyy_free()

void cppyy_free ( void *  ptr)

Definition at line 2814 of file clingwrapper.cxx.

◆ cppyy_function_address()

cppyy_funcaddr_t cppyy_function_address ( cppyy_method_t  method)

Definition at line 2485 of file clingwrapper.cxx.

◆ cppyy_function_arg_sizeof()

size_t cppyy_function_arg_sizeof ( )

Definition at line 2500 of file clingwrapper.cxx.

◆ cppyy_function_arg_typeoffset()

size_t cppyy_function_arg_typeoffset ( )

Definition at line 2504 of file clingwrapper.cxx.

◆ cppyy_get_all_cpp_names()

const char ** cppyy_get_all_cpp_names ( cppyy_scope_t  scope,
size_t *  count 
)

Definition at line 2530 of file clingwrapper.cxx.

◆ cppyy_get_dimension_size()

int cppyy_get_dimension_size ( cppyy_scope_t  scope,
cppyy_index_t  idata,
int  dimension 
)

Definition at line 2780 of file clingwrapper.cxx.

◆ cppyy_get_global_operator()

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 2709 of file clingwrapper.cxx.

◆ cppyy_get_method()

cppyy_method_t cppyy_get_method ( cppyy_scope_t  scope,
cppyy_index_t  idx 
)

Definition at line 2628 of file clingwrapper.cxx.

◆ cppyy_get_method_template()

cppyy_method_t cppyy_get_method_template ( cppyy_scope_t  scope,
const char *  name,
const char *  proto 
)

Definition at line 2705 of file clingwrapper.cxx.

◆ cppyy_get_num_templated_methods()

int cppyy_get_num_templated_methods ( cppyy_scope_t  scope)

Definition at line 2685 of file clingwrapper.cxx.

◆ cppyy_get_scope()

cppyy_scope_t cppyy_get_scope ( const char *  scope_name)

Definition at line 2324 of file clingwrapper.cxx.

◆ cppyy_get_templated_method_name()

char * cppyy_get_templated_method_name ( cppyy_scope_t  scope,
cppyy_index_t  imeth 
)

Definition at line 2689 of file clingwrapper.cxx.

◆ cppyy_get_using_namespaces()

cppyy_scope_t * cppyy_get_using_namespaces ( cppyy_scope_t  scope)

Definition at line 2545 of file clingwrapper.cxx.

◆ cppyy_has_complex_hierarchy()

int cppyy_has_complex_hierarchy ( cppyy_type_t  type)

Definition at line 2571 of file clingwrapper.cxx.

◆ cppyy_has_virtual_destructor()

int cppyy_has_virtual_destructor ( cppyy_type_t  type)

Definition at line 2567 of file clingwrapper.cxx.

◆ cppyy_is_abstract()

int cppyy_is_abstract ( cppyy_type_t  type)

Definition at line 2518 of file clingwrapper.cxx.

◆ cppyy_is_aggregate()

int cppyy_is_aggregate ( cppyy_type_t  type)

Definition at line 2526 of file clingwrapper.cxx.

◆ cppyy_is_const_data()

int cppyy_is_const_data ( cppyy_scope_t  scope,
cppyy_index_t  idata 
)

Definition at line 2772 of file clingwrapper.cxx.

◆ cppyy_is_const_method()

int cppyy_is_const_method ( cppyy_method_t  method)

Definition at line 2681 of file clingwrapper.cxx.

◆ cppyy_is_constructor()

int cppyy_is_constructor ( cppyy_method_t  method)

Definition at line 2723 of file clingwrapper.cxx.

◆ cppyy_is_destructor()

int cppyy_is_destructor ( cppyy_method_t  method)

Definition at line 2727 of file clingwrapper.cxx.

◆ cppyy_is_enum()

int cppyy_is_enum ( const char *  type_name)

Definition at line 2522 of file clingwrapper.cxx.

◆ cppyy_is_enum_data()

int cppyy_is_enum_data ( cppyy_scope_t  scope,
cppyy_index_t  idata 
)

Definition at line 2776 of file clingwrapper.cxx.

◆ cppyy_is_namespace()

int cppyy_is_namespace ( cppyy_scope_t  scope)

Definition at line 2510 of file clingwrapper.cxx.

◆ cppyy_is_protecteddata()

int cppyy_is_protecteddata ( cppyy_type_t  type,
cppyy_index_t  datamember_index 
)

Definition at line 2764 of file clingwrapper.cxx.

◆ cppyy_is_protectedmethod()

int cppyy_is_protectedmethod ( cppyy_method_t  method)

Definition at line 2719 of file clingwrapper.cxx.

◆ cppyy_is_publicdata()

int cppyy_is_publicdata ( cppyy_type_t  type,
cppyy_index_t  datamember_index 
)

Definition at line 2760 of file clingwrapper.cxx.

◆ cppyy_is_publicmethod()

int cppyy_is_publicmethod ( cppyy_method_t  method)

Definition at line 2715 of file clingwrapper.cxx.

◆ cppyy_is_smartptr()

int cppyy_is_smartptr ( cppyy_type_t  type)

Definition at line 2591 of file clingwrapper.cxx.

◆ cppyy_is_staticdata()

int cppyy_is_staticdata ( cppyy_type_t  type,
cppyy_index_t  datamember_index 
)

Definition at line 2768 of file clingwrapper.cxx.

◆ cppyy_is_staticmethod()

int cppyy_is_staticmethod ( cppyy_method_t  method)

Definition at line 2731 of file clingwrapper.cxx.

◆ cppyy_is_subtype()

int cppyy_is_subtype ( cppyy_type_t  derived,
cppyy_type_t  base 
)

Definition at line 2587 of file clingwrapper.cxx.

◆ cppyy_is_template()

int cppyy_is_template ( const char *  template_name)

Definition at line 2514 of file clingwrapper.cxx.

◆ cppyy_is_templated_constructor()

int cppyy_is_templated_constructor ( cppyy_scope_t  scope,
cppyy_index_t  imeth 
)

Definition at line 2693 of file clingwrapper.cxx.

◆ cppyy_load_dictionary()

void * cppyy_load_dictionary ( const char *  lib_name)

Definition at line 2787 of file clingwrapper.cxx.

◆ cppyy_longdouble2double()

double cppyy_longdouble2double ( void *  p)

Definition at line 2831 of file clingwrapper.cxx.

◆ cppyy_method_arg_default()

char * cppyy_method_arg_default ( cppyy_method_t  method,
int  arg_index 
)

Definition at line 2664 of file clingwrapper.cxx.

◆ cppyy_method_arg_name()

char * cppyy_method_arg_name ( cppyy_method_t  method,
int  arg_index 
)

Definition at line 2656 of file clingwrapper.cxx.

◆ cppyy_method_arg_type()

char * cppyy_method_arg_type ( cppyy_method_t  method,
int  arg_index 
)

Definition at line 2660 of file clingwrapper.cxx.

◆ cppyy_method_full_name()

char * cppyy_method_full_name ( cppyy_method_t  method)

Definition at line 2636 of file clingwrapper.cxx.

◆ cppyy_method_indices_from_name()

cppyy_index_t * cppyy_method_indices_from_name ( cppyy_scope_t  scope,
const char *  name 
)

Definition at line 2615 of file clingwrapper.cxx.

◆ cppyy_method_is_template()

int cppyy_method_is_template ( cppyy_scope_t  scope,
cppyy_index_t  idx 
)

Definition at line 2701 of file clingwrapper.cxx.

◆ cppyy_method_mangled_name()

char * cppyy_method_mangled_name ( cppyy_method_t  method)

Definition at line 2640 of file clingwrapper.cxx.

◆ cppyy_method_name()

char * cppyy_method_name ( cppyy_method_t  method)

Definition at line 2632 of file clingwrapper.cxx.

◆ cppyy_method_num_args()

int cppyy_method_num_args ( cppyy_method_t  method)

Definition at line 2648 of file clingwrapper.cxx.

◆ cppyy_method_prototype()

char * cppyy_method_prototype ( cppyy_scope_t  scope,
cppyy_method_t  method,
int  show_formalargs 
)

Definition at line 2676 of file clingwrapper.cxx.

◆ cppyy_method_req_args()

int cppyy_method_req_args ( cppyy_method_t  method)

Definition at line 2652 of file clingwrapper.cxx.

◆ cppyy_method_result_type()

char * cppyy_method_result_type ( cppyy_method_t  method)

Definition at line 2644 of file clingwrapper.cxx.

◆ cppyy_method_signature()

char * cppyy_method_signature ( cppyy_method_t  method,
int  show_formalargs 
)

Definition at line 2668 of file clingwrapper.cxx.

◆ cppyy_method_signature_max()

char * cppyy_method_signature_max ( cppyy_method_t  method,
int  show_formalargs,
int  maxargs 
)

Definition at line 2672 of file clingwrapper.cxx.

◆ cppyy_num_bases()

int cppyy_num_bases ( cppyy_type_t  type)

Definition at line 2575 of file clingwrapper.cxx.

◆ cppyy_num_bases_longest_branch()

int cppyy_num_bases_longest_branch ( cppyy_type_t  type)

Definition at line 2579 of file clingwrapper.cxx.

◆ cppyy_num_datamembers()

int cppyy_num_datamembers ( cppyy_scope_t  scope)

Definition at line 2737 of file clingwrapper.cxx.

◆ cppyy_num_methods()

int cppyy_num_methods ( cppyy_scope_t  scope)

Definition at line 2611 of file clingwrapper.cxx.

◆ cppyy_resolve_enum()

char * cppyy_resolve_enum ( const char *  enum_type)

Definition at line 2320 of file clingwrapper.cxx.

◆ cppyy_resolve_name()

char * cppyy_resolve_name ( const char *  cppitem_name)

Definition at line 2316 of file clingwrapper.cxx.

◆ cppyy_scoped_final_name()

char * cppyy_scoped_final_name ( cppyy_type_t  type)

Definition at line 2563 of file clingwrapper.cxx.

◆ cppyy_size_of_klass()

size_t cppyy_size_of_klass ( cppyy_type_t  klass)

Definition at line 2332 of file clingwrapper.cxx.

◆ cppyy_size_of_type()

size_t cppyy_size_of_type ( const char *  type_name)

Definition at line 2336 of file clingwrapper.cxx.

◆ cppyy_smartptr_info()

int cppyy_smartptr_info ( const char *  name,
cppyy_type_t raw,
cppyy_method_t deref 
)

Definition at line 2595 of file clingwrapper.cxx.

◆ cppyy_stdstring2charp()

const char * cppyy_stdstring2charp ( cppyy_object_t  ptr,
size_t *  lsz 
)

Definition at line 2822 of file clingwrapper.cxx.

◆ cppyy_stdstring2stdstring()

cppyy_object_t cppyy_stdstring2stdstring ( cppyy_object_t  ptr)

Definition at line 2827 of file clingwrapper.cxx.

◆ cppyy_strtoll()

long long cppyy_strtoll ( const char *  str)

Definition at line 2803 of file clingwrapper.cxx.

◆ cppyy_strtoull()

unsigned long long cppyy_strtoull ( const char *  str)

Definition at line 2808 of file clingwrapper.cxx.

◆ cppyy_vectorbool_getitem()

int cppyy_vectorbool_getitem ( cppyy_object_t  ptr,
int  idx 
)

Definition at line 2839 of file clingwrapper.cxx.

◆ cppyy_vectorbool_setitem()

void cppyy_vectorbool_setitem ( cppyy_object_t  ptr,
int  idx,
int  value 
)

Definition at line 2843 of file clingwrapper.cxx.

◆ g_classrefs()

static ClassRefs_t g_classrefs ( )
static

◆ GetCallFunc()

static TInterpreter::CallFuncIFacePtr_t GetCallFunc ( Cppyy::TCppMethod_t  method)
static

Definition at line 723 of file clingwrapper.cxx.

◆ GetDataMemberByIndex()

static TDataMember * GetDataMemberByIndex ( TClassRef  cr,
int  idata 
)
static

Definition at line 2021 of file clingwrapper.cxx.

◆ GetLongestInheritancePath()

Cppyy::TCppIndex_t GetLongestInheritancePath ( TClass klass)

Retrieve number of base classes in the longest branch of the inheritance tree of the input class.

Parameters
[in]klassThe 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:

class A {}; class B: public A {};
class X {}; class Y: public X {}; class Z: public Y {};
class C: public B, Z {};
#define X(type, name)
constexpr Double_t C()
Velocity of light in .
Definition TMath.h:114

calling this function on an instance of C will return 3, the steps required to go from C to X.

Definition at line 1322 of file clingwrapper.cxx.

◆ is_missclassified_stl()

static bool is_missclassified_stl ( const std::string &  name)
inlinestatic

Definition at line 377 of file clingwrapper.cxx.

◆ m2d()

static CallWrapper::DeclId_t m2d ( Cppyy::TCppMethod_t  method)
inlinestatic

Definition at line 347 of file clingwrapper.cxx.

◆ m2f()

static TFunction * m2f ( Cppyy::TCppMethod_t  method)
inlinestatic

Definition at line 337 of file clingwrapper.cxx.

◆ match_name()

static bool match_name ( const std::string &  tname,
const std::string  fname 
)
inlinestatic

Definition at line 365 of file clingwrapper.cxx.

◆ new_CallWrapper() [1/2]

static CallWrapper * new_CallWrapper ( CallWrapper::DeclId_t  fid,
const std::string &  n 
)
inlinestatic

Definition at line 110 of file clingwrapper.cxx.

◆ new_CallWrapper() [2/2]

static CallWrapper * new_CallWrapper ( TFunction f)
inlinestatic

Definition at line 103 of file clingwrapper.cxx.

◆ outer_no_template()

static std::string outer_no_template ( const std::string &  name)
static

Definition at line 1059 of file clingwrapper.cxx.

◆ outer_with_template()

static std::string outer_with_template ( const std::string &  name)
static

Definition at line 1033 of file clingwrapper.cxx.

◆ release_args()

static void release_args ( Parameter args,
size_t  nargs 
)
inlinestatic

Definition at line 779 of file clingwrapper.cxx.

◆ type_from_handle()

static TClassRef & type_from_handle ( Cppyy::TCppScope_t  scope)
inlinestatic

Definition at line 330 of file clingwrapper.cxx.

◆ type_remap()

static std::string type_remap ( const std::string &  n1,
const std::string &  n2 
)
inlinestatic

Definition at line 1913 of file clingwrapper.cxx.

◆ WrapperCall()

static bool WrapperCall ( Cppyy::TCppMethod_t  method,
size_t  nargs,
void *  args_,
void *  self,
void *  result 
)
inlinestatic

Definition at line 786 of file clingwrapper.cxx.

Variable Documentation

◆ g_builtins

std::set<std::string> g_builtins
static
Initial value:
=
{"bool", "char", "signed char", "unsigned char", "wchar_t", "short", "unsigned short",
"int", "unsigned int", "long", "unsigned long", "long long", "unsigned long long",
"float", "double", "long double", "void",
"allocator", "array", "basic_string", "complex", "initializer_list", "less", "list",
"map", "pair", "set", "vector"}

Definition at line 128 of file clingwrapper.cxx.

◆ g_globalvars

GlobalVars_t g_globalvars
static

Definition at line 118 of file clingwrapper.cxx.

◆ g_name2classrefidx

Name2ClassRefIndex_t g_name2classrefidx
static

Definition at line 69 of file clingwrapper.cxx.

◆ gEnableFastPath

bool gEnableFastPath = true
static

Definition at line 145 of file clingwrapper.cxx.

◆ gInitialNames

std::set<std::string> gInitialNames
static

Definition at line 141 of file clingwrapper.cxx.

◆ GLOBAL_HANDLE

const ClassRefs_t::size_type GLOBAL_HANDLE = 1
static

Definition at line 65 of file clingwrapper.cxx.

◆ gMethodTemplates

std::map<TDictionary::DeclId_t, CallWrapper*> gMethodTemplates
static

Definition at line 1828 of file clingwrapper.cxx.

◆ gRootSOs

std::set<std::string> gRootSOs
static

Definition at line 142 of file clingwrapper.cxx.

◆ gSmartPtrTypes

std::set<std::string> gSmartPtrTypes
static
Initial value:
=
{"auto_ptr", "std::auto_ptr", "shared_ptr", "std::shared_ptr",
"unique_ptr", "std::unique_ptr", "weak_ptr", "std::weak_ptr"}

Definition at line 136 of file clingwrapper.cxx.

◆ gSTLNames

std::set<std::string> gSTLNames
static

Definition at line 120 of file clingwrapper.cxx.

◆ gWrapperHolder

std::vector<CallWrapper*> gWrapperHolder
static

Definition at line 102 of file clingwrapper.cxx.

◆ resolved_enum_types

std::map<std::string, std::string> resolved_enum_types
static

Definition at line 463 of file clingwrapper.cxx.

◆ sHasOperatorDelete

std::map<Cppyy::TCppType_t, bool> sHasOperatorDelete
static

Definition at line 701 of file clingwrapper.cxx.

◆ SMALL_ARGS_N

const int SMALL_ARGS_N = 8

Definition at line 54 of file clingwrapper.cxx.

◆ STD_HANDLE

const ClassRefs_t::size_type STD_HANDLE = GLOBAL_HANDLE + 1
static

Definition at line 66 of file clingwrapper.cxx.