15 #ifndef INTERROGATE_INTERFACE_H
16 #define INTERROGATE_INTERFACE_H
18 #include "dtoolbase.h"
59 typedef int ManifestIndex;
60 typedef int ElementIndex;
61 typedef int TypeIndex;
62 typedef int FunctionIndex;
63 typedef int FunctionWrapperIndex;
64 typedef int MakeSeqIndex;
90 EXPCL_DTOOLCONFIG
void interrogate_add_search_directory(
const char *dirname);
91 EXPCL_DTOOLCONFIG
void interrogate_add_search_path(
const char *pathstring);
92 EXPCL_DTOOLCONFIG
bool interrogate_error_flag();
110 EXPCL_DTOOLCONFIG
int interrogate_number_of_manifests();
111 EXPCL_DTOOLCONFIG ManifestIndex interrogate_get_manifest(
int n);
112 EXPCL_DTOOLCONFIG ManifestIndex interrogate_get_manifest_by_name(
const char *manifest_name);
113 EXPCL_DTOOLCONFIG
const char *interrogate_manifest_name(ManifestIndex manifest);
114 EXPCL_DTOOLCONFIG
const char *interrogate_manifest_definition(ManifestIndex manifest);
115 EXPCL_DTOOLCONFIG
bool interrogate_manifest_has_type(ManifestIndex manifest);
116 EXPCL_DTOOLCONFIG TypeIndex interrogate_manifest_get_type(ManifestIndex manifest);
117 EXPCL_DTOOLCONFIG
bool interrogate_manifest_has_getter(ManifestIndex manifest);
118 EXPCL_DTOOLCONFIG FunctionIndex interrogate_manifest_getter(ManifestIndex manifest);
125 EXPCL_DTOOLCONFIG
bool interrogate_manifest_has_int_value(ManifestIndex manifest);
126 EXPCL_DTOOLCONFIG
int interrogate_manifest_get_int_value(ManifestIndex manifest);
139 EXPCL_DTOOLCONFIG
const char *interrogate_element_name(ElementIndex element);
140 EXPCL_DTOOLCONFIG
const char *interrogate_element_scoped_name(ElementIndex element);
141 EXPCL_DTOOLCONFIG
bool interrogate_element_has_comment(ElementIndex element);
142 EXPCL_DTOOLCONFIG
const char *interrogate_element_comment(ElementIndex element);
143 EXPCL_DTOOLCONFIG ElementIndex interrogate_get_element_by_name(
const char *element_name);
144 EXPCL_DTOOLCONFIG ElementIndex interrogate_get_element_by_scoped_name(
const char *element_name);
154 EXPCL_DTOOLCONFIG TypeIndex interrogate_element_type(ElementIndex element);
156 EXPCL_DTOOLCONFIG
bool interrogate_element_has_getter(ElementIndex element);
157 EXPCL_DTOOLCONFIG FunctionIndex interrogate_element_getter(ElementIndex element);
158 EXPCL_DTOOLCONFIG
bool interrogate_element_has_setter(ElementIndex element);
159 EXPCL_DTOOLCONFIG FunctionIndex interrogate_element_setter(ElementIndex element);
169 EXPCL_DTOOLCONFIG
int interrogate_number_of_globals();
170 EXPCL_DTOOLCONFIG ElementIndex interrogate_get_global(
int n);
186 EXPCL_DTOOLCONFIG
int interrogate_number_of_global_functions();
187 EXPCL_DTOOLCONFIG FunctionIndex interrogate_get_global_function(
int n);
194 EXPCL_DTOOLCONFIG
int interrogate_number_of_functions();
195 EXPCL_DTOOLCONFIG FunctionIndex interrogate_get_function(
int n);
203 EXPCL_DTOOLCONFIG
const char *interrogate_function_name(FunctionIndex
function);
210 EXPCL_DTOOLCONFIG
const char *interrogate_function_scoped_name(FunctionIndex
function);
214 EXPCL_DTOOLCONFIG
bool interrogate_function_has_comment(FunctionIndex
function);
215 EXPCL_DTOOLCONFIG
const char *interrogate_function_comment(FunctionIndex
function);
219 EXPCL_DTOOLCONFIG
const char *interrogate_function_prototype(FunctionIndex
function);
223 EXPCL_DTOOLCONFIG
bool interrogate_function_is_method(FunctionIndex
function);
224 EXPCL_DTOOLCONFIG TypeIndex interrogate_function_class(FunctionIndex
function);
228 EXPCL_DTOOLCONFIG
bool interrogate_function_has_module_name(FunctionIndex
function);
229 EXPCL_DTOOLCONFIG
const char *interrogate_function_module_name(FunctionIndex
function);
233 EXPCL_DTOOLCONFIG
bool interrogate_function_has_library_name(FunctionIndex
function);
234 EXPCL_DTOOLCONFIG
const char *interrogate_function_library_name(FunctionIndex
function);
238 EXPCL_DTOOLCONFIG
bool interrogate_function_is_virtual(FunctionIndex
function);
249 EXPCL_DTOOLCONFIG
int interrogate_function_number_of_c_wrappers(FunctionIndex
function);
250 EXPCL_DTOOLCONFIG FunctionWrapperIndex interrogate_function_c_wrapper(FunctionIndex
function,
int n);
252 EXPCL_DTOOLCONFIG
int interrogate_function_number_of_python_wrappers(FunctionIndex
function);
253 EXPCL_DTOOLCONFIG FunctionWrapperIndex interrogate_function_python_wrapper(FunctionIndex
function,
int n);
276 EXPCL_DTOOLCONFIG
const char *interrogate_wrapper_name(FunctionWrapperIndex wrapper);
280 EXPCL_DTOOLCONFIG
bool interrogate_wrapper_is_callable_by_name(FunctionWrapperIndex wrapper);
285 EXPCL_DTOOLCONFIG
bool interrogate_wrapper_has_comment(FunctionWrapperIndex wrapper);
286 EXPCL_DTOOLCONFIG
const char *interrogate_wrapper_comment(FunctionWrapperIndex wrapper);
296 EXPCL_DTOOLCONFIG
bool interrogate_wrapper_has_return_value(FunctionWrapperIndex wrapper);
297 EXPCL_DTOOLCONFIG TypeIndex interrogate_wrapper_return_type(FunctionWrapperIndex wrapper);
312 EXPCL_DTOOLCONFIG
bool interrogate_wrapper_caller_manages_return_value(FunctionWrapperIndex wrapper);
313 EXPCL_DTOOLCONFIG FunctionIndex interrogate_wrapper_return_value_destructor(FunctionWrapperIndex wrapper);
316 EXPCL_DTOOLCONFIG
int interrogate_wrapper_number_of_parameters(FunctionWrapperIndex wrapper);
317 EXPCL_DTOOLCONFIG TypeIndex interrogate_wrapper_parameter_type(FunctionWrapperIndex wrapper,
int n);
318 EXPCL_DTOOLCONFIG
bool interrogate_wrapper_parameter_has_name(FunctionWrapperIndex wrapper,
int n);
319 EXPCL_DTOOLCONFIG
const char *interrogate_wrapper_parameter_name(FunctionWrapperIndex wrapper,
int n);
320 EXPCL_DTOOLCONFIG
bool interrogate_wrapper_parameter_is_this(FunctionWrapperIndex wrapper,
int n);
330 EXPCL_DTOOLCONFIG
bool interrogate_wrapper_has_pointer(FunctionWrapperIndex wrapper);
331 EXPCL_DTOOLCONFIG
void *interrogate_wrapper_pointer(FunctionWrapperIndex wrapper);
342 EXPCL_DTOOLCONFIG
const char *interrogate_wrapper_unique_name(FunctionWrapperIndex wrapper);
352 EXPCL_DTOOLCONFIG FunctionWrapperIndex interrogate_get_wrapper_by_unique_name(
const char *unique_name);
367 EXPCL_DTOOLCONFIG TypeIndex interrogate_make_seq_class(MakeSeqIndex make_seq);
370 EXPCL_DTOOLCONFIG
const char *interrogate_make_seq_seq_name(MakeSeqIndex make_seq);
372 EXPCL_DTOOLCONFIG
const char *interrogate_make_seq_num_name(MakeSeqIndex make_seq);
374 EXPCL_DTOOLCONFIG
const char *interrogate_make_seq_element_name(MakeSeqIndex make_seq);
396 EXPCL_DTOOLCONFIG
int interrogate_number_of_global_types();
397 EXPCL_DTOOLCONFIG TypeIndex interrogate_get_global_type(
int n);
398 EXPCL_DTOOLCONFIG
int interrogate_number_of_types();
399 EXPCL_DTOOLCONFIG TypeIndex interrogate_get_type(
int n);
400 EXPCL_DTOOLCONFIG TypeIndex interrogate_get_type_by_name(
const char *type_name);
401 EXPCL_DTOOLCONFIG TypeIndex interrogate_get_type_by_scoped_name(
const char *type_name);
402 EXPCL_DTOOLCONFIG TypeIndex interrogate_get_type_by_true_name(
const char *type_name);
403 EXPCL_DTOOLCONFIG
const char *interrogate_type_name(TypeIndex type);
404 EXPCL_DTOOLCONFIG
const char *interrogate_type_scoped_name(TypeIndex type);
405 EXPCL_DTOOLCONFIG
const char *interrogate_type_true_name(TypeIndex type);
413 EXPCL_DTOOLCONFIG
bool interrogate_type_is_nested(TypeIndex type);
414 EXPCL_DTOOLCONFIG TypeIndex interrogate_type_outer_class(TypeIndex type);
416 EXPCL_DTOOLCONFIG
bool interrogate_type_has_comment(TypeIndex type);
417 EXPCL_DTOOLCONFIG
const char *interrogate_type_comment(TypeIndex type);
420 EXPCL_DTOOLCONFIG
bool interrogate_type_has_module_name(TypeIndex type);
421 EXPCL_DTOOLCONFIG
const char *interrogate_type_module_name(TypeIndex type);
424 EXPCL_DTOOLCONFIG
bool interrogate_type_has_library_name(TypeIndex type);
425 EXPCL_DTOOLCONFIG
const char *interrogate_type_library_name(TypeIndex type);
432 EXPCL_DTOOLCONFIG
bool interrogate_type_is_atomic(TypeIndex type);
433 EXPCL_DTOOLCONFIG AtomicToken interrogate_type_atomic_token(TypeIndex type);
434 EXPCL_DTOOLCONFIG
bool interrogate_type_is_unsigned(TypeIndex type);
435 EXPCL_DTOOLCONFIG
bool interrogate_type_is_signed(TypeIndex type);
436 EXPCL_DTOOLCONFIG
bool interrogate_type_is_long(TypeIndex type);
437 EXPCL_DTOOLCONFIG
bool interrogate_type_is_longlong(TypeIndex type);
438 EXPCL_DTOOLCONFIG
bool interrogate_type_is_short(TypeIndex type);
447 EXPCL_DTOOLCONFIG
bool interrogate_type_is_wrapped(TypeIndex type);
448 EXPCL_DTOOLCONFIG
bool interrogate_type_is_pointer(TypeIndex type);
449 EXPCL_DTOOLCONFIG
bool interrogate_type_is_const(TypeIndex type);
450 EXPCL_DTOOLCONFIG
bool interrogate_type_is_typedef(TypeIndex type);
451 EXPCL_DTOOLCONFIG TypeIndex interrogate_type_wrapped_type(TypeIndex type);
456 EXPCL_DTOOLCONFIG
bool interrogate_type_is_enum(TypeIndex type);
457 EXPCL_DTOOLCONFIG
int interrogate_type_number_of_enum_values(TypeIndex type);
458 EXPCL_DTOOLCONFIG
const char *interrogate_type_enum_value_name(TypeIndex type,
int n);
459 EXPCL_DTOOLCONFIG
const char *interrogate_type_enum_value_scoped_name(TypeIndex type,
int n);
460 EXPCL_DTOOLCONFIG
const char *interrogate_type_enum_value_comment(TypeIndex type,
int n);
461 EXPCL_DTOOLCONFIG
int interrogate_type_enum_value(TypeIndex type,
int n);
469 EXPCL_DTOOLCONFIG
bool interrogate_type_is_struct(TypeIndex type);
470 EXPCL_DTOOLCONFIG
bool interrogate_type_is_class(TypeIndex type);
471 EXPCL_DTOOLCONFIG
bool interrogate_type_is_union(TypeIndex type);
476 EXPCL_DTOOLCONFIG
bool interrogate_type_is_fully_defined(TypeIndex type);
481 EXPCL_DTOOLCONFIG
bool interrogate_type_is_unpublished(TypeIndex type);
502 EXPCL_DTOOLCONFIG
int interrogate_type_number_of_constructors(TypeIndex type);
503 EXPCL_DTOOLCONFIG FunctionIndex interrogate_type_get_constructor(TypeIndex type,
int n);
504 EXPCL_DTOOLCONFIG
bool interrogate_type_has_destructor(TypeIndex type);
505 EXPCL_DTOOLCONFIG
bool interrogate_type_destructor_is_inherited(TypeIndex type);
506 EXPCL_DTOOLCONFIG FunctionIndex interrogate_type_get_destructor(TypeIndex type);
509 EXPCL_DTOOLCONFIG
int interrogate_type_number_of_elements(TypeIndex type);
510 EXPCL_DTOOLCONFIG ElementIndex interrogate_type_get_element(TypeIndex type,
int n);
513 EXPCL_DTOOLCONFIG
int interrogate_type_number_of_methods(TypeIndex type);
514 EXPCL_DTOOLCONFIG FunctionIndex interrogate_type_get_method(TypeIndex type,
int n);
517 EXPCL_DTOOLCONFIG
int interrogate_type_number_of_make_seqs(TypeIndex type);
518 EXPCL_DTOOLCONFIG MakeSeqIndex interrogate_type_get_make_seq(TypeIndex type,
int n);
525 EXPCL_DTOOLCONFIG
int interrogate_type_number_of_casts(TypeIndex type);
526 EXPCL_DTOOLCONFIG FunctionIndex interrogate_type_get_cast(TypeIndex type,
int n);
530 EXPCL_DTOOLCONFIG
int interrogate_type_number_of_derivations(TypeIndex type);
531 EXPCL_DTOOLCONFIG TypeIndex interrogate_type_get_derivation(TypeIndex type,
int n);
547 EXPCL_DTOOLCONFIG
bool interrogate_type_derivation_has_upcast(TypeIndex type,
int n);
548 EXPCL_DTOOLCONFIG FunctionIndex interrogate_type_get_upcast(TypeIndex type,
int n);
558 EXPCL_DTOOLCONFIG
bool interrogate_type_derivation_downcast_is_impossible(TypeIndex type,
int n);
559 EXPCL_DTOOLCONFIG
bool interrogate_type_derivation_has_downcast(TypeIndex type,
int n);
560 EXPCL_DTOOLCONFIG FunctionIndex interrogate_type_get_downcast(TypeIndex type,
int n);
564 EXPCL_DTOOLCONFIG
int interrogate_type_number_of_nested_types(TypeIndex type);
565 EXPCL_DTOOLCONFIG TypeIndex interrogate_type_get_nested_type(TypeIndex type,
int n);