Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
capi.h
Go to the documentation of this file.
1#ifndef CPPYY_CAPI
2#define CPPYY_CAPI
3
4#include <stddef.h>
5#include <stdint.h>
6#include "precommondefs.h"
7
8#ifdef __cplusplus
9extern "C" {
10#endif // ifdef __cplusplus
11
12 typedef size_t cppyy_scope_t;
14 typedef void* cppyy_object_t;
15 typedef intptr_t cppyy_method_t;
16
17 typedef size_t cppyy_index_t;
18 typedef void* cppyy_funcaddr_t;
19
20 typedef unsigned long cppyy_exctype_t;
21
22 /* direct interpreter access ---------------------------------------------- */
24 int cppyy_compile(const char* code);
25
26 /* name to opaque C++ scope representation -------------------------------- */
28 char* cppyy_resolve_name(const char* cppitem_name);
30 char* cppyy_resolve_enum(const char* enum_type);
32 cppyy_scope_t cppyy_get_scope(const char* scope_name);
38 size_t cppyy_size_of_type(const char* type_name);
39
40 /* memory management ------------------------------------------------------ */
49
50 /* method/function dispatching -------------------------------------------- */
52 void cppyy_call_v(cppyy_method_t method, cppyy_object_t self, int nargs, void* args);
54 unsigned char cppyy_call_b(cppyy_method_t method, cppyy_object_t self, int nargs, void* args);
56 char cppyy_call_c(cppyy_method_t method, cppyy_object_t self, int nargs, void* args);
58 short cppyy_call_h(cppyy_method_t method, cppyy_object_t self, int nargs, void* args);
60 int cppyy_call_i(cppyy_method_t method, cppyy_object_t self, int nargs, void* args);
62 long cppyy_call_l(cppyy_method_t method, cppyy_object_t self, int nargs, void* args);
64 long long cppyy_call_ll(cppyy_method_t method, cppyy_object_t self, int nargs, void* args);
66 float cppyy_call_f(cppyy_method_t method, cppyy_object_t self, int nargs, void* args);
68 double cppyy_call_d(cppyy_method_t method, cppyy_object_t self, int nargs, void* args);
70 long double cppyy_call_ld(cppyy_method_t method, cppyy_object_t self, int nargs, void* args);
72 double cppyy_call_nld(cppyy_method_t method, cppyy_object_t self, int nargs, void* args);
73
75 void* cppyy_call_r(cppyy_method_t method, cppyy_object_t self, int nargs, void* args);
77 char* cppyy_call_s(cppyy_method_t method, cppyy_object_t self, int nargs, void* args, size_t* length);
79 cppyy_object_t cppyy_constructor(cppyy_method_t method, cppyy_type_t klass, int nargs, void* args);
83 cppyy_object_t cppyy_call_o(cppyy_method_t method, cppyy_object_t self, int nargs, void* args, cppyy_type_t result_type);
84
87
88 /* handling of function argument buffer ----------------------------------- */
90 void* cppyy_allocate_function_args(int nargs);
92 void cppyy_deallocate_function_args(void* args);
97
98 /* scope reflection information ------------------------------------------- */
102 int cppyy_is_template(const char* template_name);
106 int cppyy_is_enum(const char* type_name);
107
109 const char** cppyy_get_all_cpp_names(cppyy_scope_t scope, size_t* count);
110
111 /* namespace reflection information --------------------------------------- */
114
115 /* class reflection information ------------------------------------------- */
127 char* cppyy_base_name(cppyy_type_t type, int base_index);
129 int cppyy_is_subtype(cppyy_type_t derived, cppyy_type_t base);
133 int cppyy_smartptr_info(const char* name, cppyy_type_t* raw, cppyy_method_t* deref);
135 void cppyy_add_smartptr_type(const char* type_name);
136
137 /* calculate offsets between declared and actual type, up-cast: direction > 0; down-cast: direction < 0 */
139 ptrdiff_t cppyy_base_offset(cppyy_type_t derived, cppyy_type_t base, cppyy_object_t address, int direction);
140
141 /* method/function reflection information --------------------------------- */
146
149
163 char* cppyy_method_arg_name(cppyy_method_t,int arg_index);
165 char* cppyy_method_arg_type(cppyy_method_t, int arg_index);
167 char* cppyy_method_arg_default(cppyy_method_t, int arg_index);
169 char* cppyy_method_signature(cppyy_method_t, int show_formalargs);
171 char* cppyy_method_signature_max(cppyy_method_t, int show_formalargs, int maxargs);
173 char* cppyy_method_prototype(cppyy_scope_t scope, cppyy_method_t, int show_formalargs);
176
182 int cppyy_exists_method_template(cppyy_scope_t scope, const char* name);
186 cppyy_method_t cppyy_get_method_template(cppyy_scope_t scope, const char* name, const char* proto);
187
190 cppyy_scope_t scope, cppyy_scope_t lc, cppyy_scope_t rc, const char* op);
191
192 /* method properties ------------------------------------------------------ */
201
202 /* data member reflection information ------------------------------------- */
206 char* cppyy_datamember_name(cppyy_scope_t scope, int datamember_index);
208 char* cppyy_datamember_type(cppyy_scope_t scope, int datamember_index);
210 intptr_t cppyy_datamember_offset(cppyy_scope_t scope, int datamember_index);
212 int cppyy_datamember_index(cppyy_scope_t scope, const char* name);
213
214 /* data member properties ------------------------------------------------- */
216 int cppyy_is_publicdata(cppyy_type_t type, cppyy_index_t datamember_index);
218 int cppyy_is_staticdata(cppyy_type_t type, cppyy_index_t datamember_index);
224 int cppyy_get_dimension_size(cppyy_scope_t scope, cppyy_index_t idata, int dimension);
225
226 /* misc helpers ----------------------------------------------------------- */
228 long long cppyy_strtoll(const char* str);
230 unsigned long long cppyy_strtoull(const char* str);
232 void cppyy_free(void* ptr);
233
235 cppyy_object_t cppyy_charp2stdstring(const char* str, size_t sz);
237 const char* cppyy_stdstring2charp(cppyy_object_t ptr, size_t* lsz);
240
242 double cppyy_longdouble2double(void*);
244 void cppyy_double2longdouble(double, void*);
245
249 void cppyy_vectorbool_setitem(cppyy_object_t ptr, int idx, int value);
250
251#ifdef __cplusplus
252}
253#endif // ifdef __cplusplus
254
255#endif // ifndef CPPYY_CAPI
char name[80]
Definition TGX11.cxx:110
int type
Definition TGX11.cxx:121
RPY_EXPORTED int cppyy_is_publicmethod(cppyy_method_t)
RPY_EXPORTED int cppyy_has_complex_hierarchy(cppyy_type_t type)
RPY_EXPORTED int cppyy_call_i(cppyy_method_t method, cppyy_object_t self, int nargs, void *args)
RPY_EXPORTED void cppyy_destruct(cppyy_type_t type, cppyy_object_t self)
RPY_EXPORTED char * cppyy_method_full_name(cppyy_method_t)
RPY_EXPORTED cppyy_funcaddr_t cppyy_function_address(cppyy_method_t method)
RPY_EXPORTED cppyy_object_t cppyy_stdstring2stdstring(cppyy_object_t ptr)
RPY_EXPORTED size_t cppyy_function_arg_typeoffset()
RPY_EXPORTED ptrdiff_t cppyy_base_offset(cppyy_type_t derived, cppyy_type_t base, cppyy_object_t address, int direction)
RPY_EXPORTED char * cppyy_datamember_name(cppyy_scope_t scope, int datamember_index)
RPY_EXPORTED int cppyy_is_enum_data(cppyy_scope_t scope, cppyy_index_t idata)
RPY_EXPORTED int cppyy_is_template(const char *template_name)
RPY_EXPORTED cppyy_scope_t cppyy_get_scope(const char *scope_name)
size_t cppyy_scope_t
Definition capi.h:12
RPY_EXPORTED long long cppyy_strtoll(const char *str)
RPY_EXPORTED char * cppyy_scoped_final_name(cppyy_type_t type)
cppyy_scope_t cppyy_type_t
Definition capi.h:13
RPY_EXPORTED char * cppyy_method_signature(cppyy_method_t, int show_formalargs)
RPY_EXPORTED char * cppyy_resolve_name(const char *cppitem_name)
RPY_EXPORTED int cppyy_is_publicdata(cppyy_type_t type, cppyy_index_t datamember_index)
RPY_EXPORTED int cppyy_is_destructor(cppyy_method_t)
RPY_EXPORTED char * cppyy_base_name(cppyy_type_t type, int base_index)
RPY_EXPORTED double cppyy_call_d(cppyy_method_t method, cppyy_object_t self, int nargs, void *args)
RPY_EXPORTED cppyy_index_t cppyy_get_global_operator(cppyy_scope_t scope, cppyy_scope_t lc, cppyy_scope_t rc, const char *op)
RPY_EXPORTED int cppyy_method_req_args(cppyy_method_t)
RPY_EXPORTED int cppyy_vectorbool_getitem(cppyy_object_t ptr, int idx)
RPY_EXPORTED char * cppyy_method_result_type(cppyy_method_t)
RPY_EXPORTED char * cppyy_call_s(cppyy_method_t method, cppyy_object_t self, int nargs, void *args, size_t *length)
RPY_EXPORTED long double cppyy_call_ld(cppyy_method_t method, cppyy_object_t self, int nargs, void *args)
RPY_EXPORTED char * cppyy_method_arg_type(cppyy_method_t, int arg_index)
RPY_EXPORTED int cppyy_num_datamembers(cppyy_scope_t scope)
RPY_EXPORTED int cppyy_is_namespace(cppyy_scope_t scope)
RPY_EXPORTED char * cppyy_method_mangled_name(cppyy_method_t)
RPY_EXPORTED int cppyy_is_subtype(cppyy_type_t derived, cppyy_type_t base)
RPY_EXPORTED int cppyy_datamember_index(cppyy_scope_t scope, const char *name)
RPY_EXPORTED cppyy_object_t cppyy_charp2stdstring(const char *str, size_t sz)
RPY_EXPORTED int cppyy_exists_method_template(cppyy_scope_t scope, const char *name)
RPY_EXPORTED char * cppyy_datamember_type(cppyy_scope_t scope, int datamember_index)
RPY_EXPORTED void cppyy_vectorbool_setitem(cppyy_object_t ptr, int idx, int value)
RPY_EXPORTED void * cppyy_call_r(cppyy_method_t method, cppyy_object_t self, int nargs, void *args)
RPY_EXPORTED void cppyy_free(void *ptr)
RPY_EXPORTED cppyy_method_t cppyy_get_method(cppyy_scope_t scope, cppyy_index_t idx)
RPY_EXPORTED char * cppyy_method_arg_name(cppyy_method_t, int arg_index)
RPY_EXPORTED long long cppyy_call_ll(cppyy_method_t method, cppyy_object_t self, int nargs, void *args)
RPY_EXPORTED intptr_t cppyy_datamember_offset(cppyy_scope_t scope, int datamember_index)
RPY_EXPORTED cppyy_object_t cppyy_allocate(cppyy_type_t type)
RPY_EXPORTED int cppyy_is_staticmethod(cppyy_method_t)
RPY_EXPORTED char * cppyy_final_name(cppyy_type_t type)
RPY_EXPORTED long cppyy_call_l(cppyy_method_t method, cppyy_object_t self, int nargs, void *args)
RPY_EXPORTED void cppyy_deallocate_function_args(void *args)
RPY_EXPORTED int cppyy_is_abstract(cppyy_type_t type)
RPY_EXPORTED int cppyy_compile(const char *code)
RPY_EXPORTED void cppyy_double2longdouble(double, void *)
RPY_EXPORTED cppyy_object_t cppyy_construct(cppyy_type_t type)
intptr_t cppyy_method_t
Definition capi.h:15
RPY_EXPORTED int cppyy_is_constructor(cppyy_method_t)
size_t cppyy_index_t
Definition capi.h:17
RPY_EXPORTED void * cppyy_allocate_function_args(int nargs)
RPY_EXPORTED int cppyy_is_enum(const char *type_name)
RPY_EXPORTED int cppyy_smartptr_info(const char *name, cppyy_type_t *raw, cppyy_method_t *deref)
RPY_EXPORTED int cppyy_get_num_templated_methods(cppyy_scope_t scope)
RPY_EXPORTED cppyy_object_t cppyy_call_o(cppyy_method_t method, cppyy_object_t self, int nargs, void *args, cppyy_type_t result_type)
RPY_EXPORTED int cppyy_has_virtual_destructor(cppyy_type_t type)
void * cppyy_object_t
Definition capi.h:14
RPY_EXPORTED int cppyy_method_num_args(cppyy_method_t)
RPY_EXPORTED int cppyy_is_const_data(cppyy_scope_t scope, cppyy_index_t idata)
RPY_EXPORTED cppyy_index_t * cppyy_method_indices_from_name(cppyy_scope_t scope, const char *name)
RPY_EXPORTED size_t cppyy_size_of_klass(cppyy_type_t klass)
RPY_EXPORTED int cppyy_is_smartptr(cppyy_type_t type)
RPY_EXPORTED int cppyy_is_const_method(cppyy_method_t)
RPY_EXPORTED const char ** cppyy_get_all_cpp_names(cppyy_scope_t scope, size_t *count)
RPY_EXPORTED void cppyy_destructor(cppyy_type_t type, cppyy_object_t self)
RPY_EXPORTED cppyy_object_t cppyy_constructor(cppyy_method_t method, cppyy_type_t klass, int nargs, void *args)
RPY_EXPORTED size_t cppyy_size_of_type(const char *type_name)
RPY_EXPORTED double cppyy_longdouble2double(void *)
RPY_EXPORTED short cppyy_call_h(cppyy_method_t method, cppyy_object_t self, int nargs, void *args)
unsigned long cppyy_exctype_t
Definition capi.h:20
RPY_EXPORTED double cppyy_call_nld(cppyy_method_t method, cppyy_object_t self, int nargs, void *args)
RPY_EXPORTED cppyy_index_t * cppyy_get_using_namespaces(cppyy_scope_t scope)
RPY_EXPORTED int cppyy_is_staticdata(cppyy_type_t type, cppyy_index_t datamember_index)
RPY_EXPORTED size_t cppyy_function_arg_sizeof()
RPY_EXPORTED char * cppyy_method_name(cppyy_method_t)
RPY_EXPORTED char * cppyy_resolve_enum(const char *enum_type)
RPY_EXPORTED char * cppyy_get_templated_method_name(cppyy_scope_t scope, cppyy_index_t imeth)
RPY_EXPORTED void cppyy_deallocate(cppyy_type_t type, cppyy_object_t self)
RPY_EXPORTED void cppyy_add_smartptr_type(const char *type_name)
RPY_EXPORTED char * cppyy_method_prototype(cppyy_scope_t scope, cppyy_method_t, int show_formalargs)
RPY_EXPORTED char * cppyy_method_arg_default(cppyy_method_t, int arg_index)
RPY_EXPORTED unsigned char cppyy_call_b(cppyy_method_t method, cppyy_object_t self, int nargs, void *args)
RPY_EXPORTED int cppyy_method_is_template(cppyy_scope_t scope, cppyy_index_t idx)
RPY_EXPORTED unsigned long long cppyy_strtoull(const char *str)
RPY_EXPORTED cppyy_type_t cppyy_actual_class(cppyy_type_t klass, cppyy_object_t obj)
RPY_EXPORTED int cppyy_get_dimension_size(cppyy_scope_t scope, cppyy_index_t idata, int dimension)
void * cppyy_funcaddr_t
Definition capi.h:18
RPY_EXPORTED char * cppyy_method_signature_max(cppyy_method_t, int show_formalargs, int maxargs)
RPY_EXPORTED int cppyy_num_bases(cppyy_type_t type)
RPY_EXPORTED cppyy_method_t cppyy_get_method_template(cppyy_scope_t scope, const char *name, const char *proto)
RPY_EXPORTED char cppyy_call_c(cppyy_method_t method, cppyy_object_t self, int nargs, void *args)
RPY_EXPORTED const char * cppyy_stdstring2charp(cppyy_object_t ptr, size_t *lsz)
RPY_EXPORTED void cppyy_call_v(cppyy_method_t method, cppyy_object_t self, int nargs, void *args)
RPY_EXPORTED int cppyy_num_methods(cppyy_scope_t scope)
RPY_EXPORTED float cppyy_call_f(cppyy_method_t method, cppyy_object_t self, int nargs, void *args)
const char * proto
Definition civetweb.c:16604
#define RPY_EXPORTED