14#ifndef INTERROGATE_INTERFACE_H
15#define INTERROGATE_INTERFACE_H
58typedef int ManifestIndex;
59typedef int ElementIndex;
61typedef int FunctionIndex;
62typedef int FunctionWrapperIndex;
63typedef int MakeSeqIndex;
92EXPCL_INTERROGATEDB
void interrogate_add_search_directory(
const char *dirname);
93EXPCL_INTERROGATEDB
void interrogate_add_search_path(
const char *pathstring);
94EXPCL_INTERROGATEDB
bool interrogate_error_flag();
109EXPCL_INTERROGATEDB
int interrogate_number_of_manifests();
110EXPCL_INTERROGATEDB ManifestIndex interrogate_get_manifest(
int n);
111EXPCL_INTERROGATEDB ManifestIndex interrogate_get_manifest_by_name(
const char *manifest_name);
112EXPCL_INTERROGATEDB
const char *interrogate_manifest_name(ManifestIndex manifest);
113EXPCL_INTERROGATEDB
const char *interrogate_manifest_definition(ManifestIndex manifest);
114EXPCL_INTERROGATEDB
bool interrogate_manifest_has_type(ManifestIndex manifest);
115EXPCL_INTERROGATEDB TypeIndex interrogate_manifest_get_type(ManifestIndex manifest);
116EXPCL_INTERROGATEDB
bool interrogate_manifest_has_getter(ManifestIndex manifest);
117EXPCL_INTERROGATEDB FunctionIndex interrogate_manifest_getter(ManifestIndex manifest);
124EXPCL_INTERROGATEDB
bool interrogate_manifest_has_int_value(ManifestIndex manifest);
125EXPCL_INTERROGATEDB
int interrogate_manifest_get_int_value(ManifestIndex manifest);
134EXPCL_INTERROGATEDB
const char *interrogate_element_name(ElementIndex element);
135EXPCL_INTERROGATEDB
const char *interrogate_element_scoped_name(ElementIndex element);
136EXPCL_INTERROGATEDB
bool interrogate_element_has_comment(ElementIndex element);
137EXPCL_INTERROGATEDB
const char *interrogate_element_comment(ElementIndex element);
138EXPCL_INTERROGATEDB ElementIndex interrogate_get_element_by_name(
const char *element_name);
139EXPCL_INTERROGATEDB ElementIndex interrogate_get_element_by_scoped_name(
const char *element_name);
149EXPCL_INTERROGATEDB TypeIndex interrogate_element_type(ElementIndex element);
151EXPCL_INTERROGATEDB
bool interrogate_element_has_getter(ElementIndex element);
152EXPCL_INTERROGATEDB FunctionIndex interrogate_element_getter(ElementIndex element);
153EXPCL_INTERROGATEDB
bool interrogate_element_has_setter(ElementIndex element);
154EXPCL_INTERROGATEDB FunctionIndex interrogate_element_setter(ElementIndex element);
155EXPCL_INTERROGATEDB
bool interrogate_element_has_has_function(ElementIndex element);
156EXPCL_INTERROGATEDB FunctionIndex interrogate_element_has_function(ElementIndex element);
157EXPCL_INTERROGATEDB
bool interrogate_element_has_clear_function(ElementIndex element);
158EXPCL_INTERROGATEDB FunctionIndex interrogate_element_clear_function(ElementIndex element);
159EXPCL_INTERROGATEDB
bool interrogate_element_has_del_function(ElementIndex element);
160EXPCL_INTERROGATEDB FunctionIndex interrogate_element_del_function(ElementIndex element);
161EXPCL_INTERROGATEDB
bool interrogate_element_has_insert_function(ElementIndex element);
162EXPCL_INTERROGATEDB FunctionIndex interrogate_element_insert_function(ElementIndex element);
163EXPCL_INTERROGATEDB
bool interrogate_element_has_getkey_function(ElementIndex element);
164EXPCL_INTERROGATEDB FunctionIndex interrogate_element_getkey_function(ElementIndex element);
165EXPCL_INTERROGATEDB FunctionIndex interrogate_element_length_function(ElementIndex element);
167EXPCL_INTERROGATEDB
bool interrogate_element_is_sequence(ElementIndex element);
168EXPCL_INTERROGATEDB
bool interrogate_element_is_mapping(ElementIndex element);
174EXPCL_INTERROGATEDB
int interrogate_number_of_globals();
175EXPCL_INTERROGATEDB ElementIndex interrogate_get_global(
int n);
186EXPCL_INTERROGATEDB
int interrogate_number_of_global_functions();
187EXPCL_INTERROGATEDB FunctionIndex interrogate_get_global_function(
int n);
194EXPCL_INTERROGATEDB
int interrogate_number_of_functions();
195EXPCL_INTERROGATEDB FunctionIndex interrogate_get_function(
int n);
202EXPCL_INTERROGATEDB
const char *interrogate_function_name(FunctionIndex function);
209EXPCL_INTERROGATEDB
const char *interrogate_function_scoped_name(FunctionIndex function);
213EXPCL_INTERROGATEDB
bool interrogate_function_has_comment(FunctionIndex function);
214EXPCL_INTERROGATEDB
const char *interrogate_function_comment(FunctionIndex function);
218EXPCL_INTERROGATEDB
const char *interrogate_function_prototype(FunctionIndex function);
222EXPCL_INTERROGATEDB
bool interrogate_function_is_method(FunctionIndex function);
223EXPCL_INTERROGATEDB TypeIndex interrogate_function_class(FunctionIndex function);
224EXPCL_INTERROGATEDB
bool interrogate_function_is_unary_op(FunctionIndex function);
225EXPCL_INTERROGATEDB
bool interrogate_function_is_operator_typecast(FunctionIndex function);
226EXPCL_INTERROGATEDB
bool interrogate_function_is_constructor(FunctionIndex function);
227EXPCL_INTERROGATEDB
bool interrogate_function_is_destructor(FunctionIndex function);
230EXPCL_INTERROGATEDB
bool interrogate_function_has_module_name(FunctionIndex function);
231EXPCL_INTERROGATEDB
const char *interrogate_function_module_name(FunctionIndex function);
234EXPCL_INTERROGATEDB
bool interrogate_function_has_library_name(FunctionIndex function);
235EXPCL_INTERROGATEDB
const char *interrogate_function_library_name(FunctionIndex function);
239EXPCL_INTERROGATEDB
bool interrogate_function_is_virtual(FunctionIndex function);
250EXPCL_INTERROGATEDB
int interrogate_function_number_of_c_wrappers(FunctionIndex function);
251EXPCL_INTERROGATEDB FunctionWrapperIndex interrogate_function_c_wrapper(FunctionIndex function,
int n);
253EXPCL_INTERROGATEDB
int interrogate_function_number_of_python_wrappers(FunctionIndex function);
254EXPCL_INTERROGATEDB FunctionWrapperIndex interrogate_function_python_wrapper(FunctionIndex function,
int n);
273EXPCL_INTERROGATEDB
const char *interrogate_wrapper_name(FunctionWrapperIndex wrapper);
276EXPCL_INTERROGATEDB FunctionIndex interrogate_wrapper_function(FunctionWrapperIndex wrapper);
280EXPCL_INTERROGATEDB
bool interrogate_wrapper_is_callable_by_name(FunctionWrapperIndex wrapper);
283EXPCL_INTERROGATEDB
bool interrogate_wrapper_is_copy_constructor(FunctionWrapperIndex wrapper);
286EXPCL_INTERROGATEDB
bool interrogate_wrapper_is_coerce_constructor(FunctionWrapperIndex wrapper);
290EXPCL_INTERROGATEDB
bool interrogate_wrapper_is_extension(FunctionWrapperIndex wrapper);
295EXPCL_INTERROGATEDB
bool interrogate_wrapper_has_comment(FunctionWrapperIndex wrapper);
296EXPCL_INTERROGATEDB
const char *interrogate_wrapper_comment(FunctionWrapperIndex wrapper);
305EXPCL_INTERROGATEDB
bool interrogate_wrapper_has_return_value(FunctionWrapperIndex wrapper);
306EXPCL_INTERROGATEDB TypeIndex interrogate_wrapper_return_type(FunctionWrapperIndex wrapper);
321EXPCL_INTERROGATEDB
bool interrogate_wrapper_caller_manages_return_value(FunctionWrapperIndex wrapper);
322EXPCL_INTERROGATEDB FunctionIndex interrogate_wrapper_return_value_destructor(FunctionWrapperIndex wrapper);
325EXPCL_INTERROGATEDB
int interrogate_wrapper_number_of_parameters(FunctionWrapperIndex wrapper);
326EXPCL_INTERROGATEDB TypeIndex interrogate_wrapper_parameter_type(FunctionWrapperIndex wrapper,
int n);
327EXPCL_INTERROGATEDB
bool interrogate_wrapper_parameter_has_name(FunctionWrapperIndex wrapper,
int n);
328EXPCL_INTERROGATEDB
const char *interrogate_wrapper_parameter_name(FunctionWrapperIndex wrapper,
int n);
329EXPCL_INTERROGATEDB
bool interrogate_wrapper_parameter_is_this(FunctionWrapperIndex wrapper,
int n);
330EXPCL_INTERROGATEDB
bool interrogate_wrapper_parameter_is_optional(FunctionWrapperIndex wrapper,
int n);
339EXPCL_INTERROGATEDB
bool interrogate_wrapper_has_pointer(FunctionWrapperIndex wrapper);
340EXPCL_INTERROGATEDB
void *interrogate_wrapper_pointer(FunctionWrapperIndex wrapper);
351EXPCL_INTERROGATEDB
const char *interrogate_wrapper_unique_name(FunctionWrapperIndex wrapper);
360EXPCL_INTERROGATEDB FunctionWrapperIndex interrogate_get_wrapper_by_unique_name(
const char *unique_name);
369EXPCL_INTERROGATEDB
const char *interrogate_make_seq_seq_name(MakeSeqIndex make_seq);
370EXPCL_INTERROGATEDB
const char *interrogate_make_seq_scoped_name(MakeSeqIndex make_seq);
371EXPCL_INTERROGATEDB
bool interrogate_make_seq_has_comment(ElementIndex element);
372EXPCL_INTERROGATEDB
const char *interrogate_make_seq_comment(ElementIndex element);
374EXPCL_INTERROGATEDB
const char *interrogate_make_seq_num_name(MakeSeqIndex make_seq);
376EXPCL_INTERROGATEDB
const char *interrogate_make_seq_element_name(MakeSeqIndex make_seq);
377EXPCL_INTERROGATEDB FunctionIndex interrogate_make_seq_num_getter(MakeSeqIndex make_seq);
378EXPCL_INTERROGATEDB FunctionIndex interrogate_make_seq_element_getter(MakeSeqIndex make_seq);
396EXPCL_INTERROGATEDB
int interrogate_number_of_global_types();
397EXPCL_INTERROGATEDB TypeIndex interrogate_get_global_type(
int n);
398EXPCL_INTERROGATEDB
int interrogate_number_of_types();
399EXPCL_INTERROGATEDB TypeIndex interrogate_get_type(
int n);
400EXPCL_INTERROGATEDB TypeIndex interrogate_get_type_by_name(
const char *type_name);
401EXPCL_INTERROGATEDB TypeIndex interrogate_get_type_by_scoped_name(
const char *type_name);
402EXPCL_INTERROGATEDB TypeIndex interrogate_get_type_by_true_name(
const char *type_name);
403EXPCL_INTERROGATEDB
bool interrogate_type_is_global(TypeIndex type);
404EXPCL_INTERROGATEDB
const char *interrogate_type_name(TypeIndex type);
405EXPCL_INTERROGATEDB
const char *interrogate_type_scoped_name(TypeIndex type);
406EXPCL_INTERROGATEDB
const char *interrogate_type_true_name(TypeIndex type);
414EXPCL_INTERROGATEDB
bool interrogate_type_is_nested(TypeIndex type);
415EXPCL_INTERROGATEDB TypeIndex interrogate_type_outer_class(TypeIndex type);
417EXPCL_INTERROGATEDB
bool interrogate_type_has_comment(TypeIndex type);
418EXPCL_INTERROGATEDB
const char *interrogate_type_comment(TypeIndex type);
421EXPCL_INTERROGATEDB
bool interrogate_type_has_module_name(TypeIndex type);
422EXPCL_INTERROGATEDB
const char *interrogate_type_module_name(TypeIndex type);
425EXPCL_INTERROGATEDB
bool interrogate_type_has_library_name(TypeIndex type);
426EXPCL_INTERROGATEDB
const char *interrogate_type_library_name(TypeIndex type);
433EXPCL_INTERROGATEDB
bool interrogate_type_is_atomic(TypeIndex type);
434EXPCL_INTERROGATEDB AtomicToken interrogate_type_atomic_token(TypeIndex type);
435EXPCL_INTERROGATEDB
bool interrogate_type_is_unsigned(TypeIndex type);
436EXPCL_INTERROGATEDB
bool interrogate_type_is_signed(TypeIndex type);
437EXPCL_INTERROGATEDB
bool interrogate_type_is_long(TypeIndex type);
438EXPCL_INTERROGATEDB
bool interrogate_type_is_longlong(TypeIndex type);
439EXPCL_INTERROGATEDB
bool interrogate_type_is_short(TypeIndex type);
447EXPCL_INTERROGATEDB
bool interrogate_type_is_wrapped(TypeIndex type);
448EXPCL_INTERROGATEDB
bool interrogate_type_is_pointer(TypeIndex type);
449EXPCL_INTERROGATEDB
bool interrogate_type_is_const(TypeIndex type);
450EXPCL_INTERROGATEDB
bool interrogate_type_is_typedef(TypeIndex type);
451EXPCL_INTERROGATEDB TypeIndex interrogate_type_wrapped_type(TypeIndex type);
454EXPCL_INTERROGATEDB
bool interrogate_type_is_array(TypeIndex type);
455EXPCL_INTERROGATEDB
int interrogate_type_array_size(TypeIndex type);
459EXPCL_INTERROGATEDB
bool interrogate_type_is_enum(TypeIndex type);
460EXPCL_INTERROGATEDB
bool interrogate_type_is_scoped_enum(TypeIndex type);
461EXPCL_INTERROGATEDB
int interrogate_type_number_of_enum_values(TypeIndex type);
462EXPCL_INTERROGATEDB
const char *interrogate_type_enum_value_name(TypeIndex type,
int n);
463EXPCL_INTERROGATEDB
const char *interrogate_type_enum_value_scoped_name(TypeIndex type,
int n);
464EXPCL_INTERROGATEDB
const char *interrogate_type_enum_value_comment(TypeIndex type,
int n);
465EXPCL_INTERROGATEDB
int interrogate_type_enum_value(TypeIndex type,
int n);
473EXPCL_INTERROGATEDB
bool interrogate_type_is_struct(TypeIndex type);
474EXPCL_INTERROGATEDB
bool interrogate_type_is_class(TypeIndex type);
475EXPCL_INTERROGATEDB
bool interrogate_type_is_union(TypeIndex type);
480EXPCL_INTERROGATEDB
bool interrogate_type_is_fully_defined(TypeIndex type);
485EXPCL_INTERROGATEDB
bool interrogate_type_is_unpublished(TypeIndex type);
508EXPCL_INTERROGATEDB
int interrogate_type_number_of_constructors(TypeIndex type);
509EXPCL_INTERROGATEDB FunctionIndex interrogate_type_get_constructor(TypeIndex type,
int n);
510EXPCL_INTERROGATEDB
bool interrogate_type_has_destructor(TypeIndex type);
511EXPCL_INTERROGATEDB
bool interrogate_type_destructor_is_inherited(TypeIndex type);
512EXPCL_INTERROGATEDB FunctionIndex interrogate_type_get_destructor(TypeIndex type);
515EXPCL_INTERROGATEDB
int interrogate_type_number_of_elements(TypeIndex type);
516EXPCL_INTERROGATEDB ElementIndex interrogate_type_get_element(TypeIndex type,
int n);
519EXPCL_INTERROGATEDB
int interrogate_type_number_of_methods(TypeIndex type);
520EXPCL_INTERROGATEDB FunctionIndex interrogate_type_get_method(TypeIndex type,
int n);
523EXPCL_INTERROGATEDB
int interrogate_type_number_of_make_seqs(TypeIndex type);
524EXPCL_INTERROGATEDB MakeSeqIndex interrogate_type_get_make_seq(TypeIndex type,
int n);
530EXPCL_INTERROGATEDB
int interrogate_type_number_of_casts(TypeIndex type);
531EXPCL_INTERROGATEDB FunctionIndex interrogate_type_get_cast(TypeIndex type,
int n);
535EXPCL_INTERROGATEDB
int interrogate_type_number_of_derivations(TypeIndex type);
536EXPCL_INTERROGATEDB TypeIndex interrogate_type_get_derivation(TypeIndex type,
int n);
537EXPCL_INTERROGATEDB
bool interrogate_type_is_final(TypeIndex type);
552EXPCL_INTERROGATEDB
bool interrogate_type_derivation_has_upcast(TypeIndex type,
int n);
553EXPCL_INTERROGATEDB FunctionIndex interrogate_type_get_upcast(TypeIndex type,
int n);
564EXPCL_INTERROGATEDB
bool interrogate_type_derivation_downcast_is_impossible(TypeIndex type,
int n);
565EXPCL_INTERROGATEDB
bool interrogate_type_derivation_has_downcast(TypeIndex type,
int n);
566EXPCL_INTERROGATEDB FunctionIndex interrogate_type_get_downcast(TypeIndex type,
int n);
570EXPCL_INTERROGATEDB
int interrogate_type_number_of_nested_types(TypeIndex type);
571EXPCL_INTERROGATEDB TypeIndex interrogate_type_get_nested_type(TypeIndex type,
int n);