Panda3D
Loading...
Searching...
No Matches
interrogate_interface.cxx
Go to the documentation of this file.
1/**
2 * PANDA 3D SOFTWARE
3 * Copyright (c) Carnegie Mellon University. All rights reserved.
4 *
5 * All use of this software is subject to the terms of the revised BSD
6 * license. You should have received a copy of this license along
7 * with this source code in a file named "LICENSE."
8 *
9 * @file interrogate_interface.cxx
10 * @author drose
11 * @date 2000-07-31
12 */
13
15#include "interrogateDatabase.h"
16#include "interrogateType.h"
17#include "interrogateFunction.h"
19
20using std::string;
21
22// This function adds one more directory to the list of directories search for
23// interrogate (*.in) files. In the past, this list has been defined the
24// environment variable ETC_PATH, but now it is passed in by the code
25// generator.
26void
27interrogate_add_search_directory(const char *dirname) {
28 // cerr << "interrogate_add_search_directory(" << dirname << ")\n";
29 interrogatedb_path.append_directory(Filename::from_os_specific(dirname));
30}
31
32// This function works similar to the above, but adds a complete path string--
33// a list of multiple directories, separated by the standard delimiter--to the
34// search path.
35void
36interrogate_add_search_path(const char *pathstring) {
37 // cerr << "interrogate_add_search_path(" << pathstring << ")\n";
38 interrogatedb_path.append_path(pathstring);
39}
40
41bool interrogate_error_flag() {
42 // cerr << "interrogate_error_flag\n";
44}
45
46int
47interrogate_number_of_manifests() {
48 // cerr << "interrogate_number_of_manifests\n";
50}
51
52ManifestIndex
53interrogate_get_manifest(int n) {
54 // cerr << "interrogate_get_manifest(" << n << ")\n";
56}
57
58ManifestIndex
59interrogate_get_manifest_by_name(const char *manifest_name) {
60 // cerr << "interrogate_get_manifest_by_name(" << manifest_name << ")\n";
62}
63
64const char *
65interrogate_manifest_name(ManifestIndex manifest) {
66 // cerr << "interrogate_manifest_name(" << manifest << ")\n";
67 return InterrogateDatabase::get_ptr()->get_manifest(manifest).get_name().c_str();
68}
69
70const char *
71interrogate_manifest_definition(ManifestIndex manifest) {
72 // cerr << "interrogate_manifest_definition(" << manifest << ")\n";
73 return InterrogateDatabase::get_ptr()->get_manifest(manifest).get_definition().c_str();
74}
75
76bool
77interrogate_manifest_has_type(ManifestIndex manifest) {
78 // cerr << "interrogate_manifest_has_type(" << manifest << ")\n";
79 return InterrogateDatabase::get_ptr()->get_manifest(manifest).has_type();
80}
81
82TypeIndex
83interrogate_manifest_get_type(ManifestIndex manifest) {
84 // cerr << "interrogate_manifest_get_type(" << manifest << ")\n";
85 return InterrogateDatabase::get_ptr()->get_manifest(manifest).get_type();
86}
87
88bool
89interrogate_manifest_has_getter(ManifestIndex manifest) {
90 // cerr << "interrogate_manifest_has_getter(" << manifest << ")\n";
91 return InterrogateDatabase::get_ptr()->get_manifest(manifest).has_getter();
92}
93
94FunctionIndex
95interrogate_manifest_getter(ManifestIndex manifest) {
96 // cerr << "interrogate_manifest_getter(" << manifest << ")\n";
97 return InterrogateDatabase::get_ptr()->get_manifest(manifest).get_getter();
98}
99
100bool
101interrogate_manifest_has_int_value(ManifestIndex manifest) {
102 // cerr << "interrogate_manifest_has_int_value(" << manifest << ")\n";
103 return InterrogateDatabase::get_ptr()->get_manifest(manifest).has_int_value();
104}
105
106int
107interrogate_manifest_get_int_value(ManifestIndex manifest) {
108 // cerr << "interrogate_manifest_get_int_value(" << manifest << ")\n";
109 return InterrogateDatabase::get_ptr()->get_manifest(manifest).get_int_value();
110}
111
112const char *
113interrogate_element_name(ElementIndex element) {
114 // cerr << "interrogate_element_name(" << element << ")\n";
115 return InterrogateDatabase::get_ptr()->get_element(element).get_name().c_str();
116}
117
118const char *
119interrogate_element_scoped_name(ElementIndex element) {
120 // cerr << "interrogate_element_scoped_name(" << element << ")\n";
121 return InterrogateDatabase::get_ptr()->get_element(element).get_scoped_name().c_str();
122}
123
124bool
125interrogate_element_has_comment(ElementIndex element) {
126 // cerr << "interrogate_element_has_comment(" << element << ")\n";
127 return InterrogateDatabase::get_ptr()->get_element(element).has_comment();
128}
129
130const char *
131interrogate_element_comment(ElementIndex element) {
132 // cerr << "interrogate_element_comment(" << element << ")\n";
133 return InterrogateDatabase::get_ptr()->get_element(element).get_comment().c_str();
134}
135
136ElementIndex
137interrogate_get_element_by_name(const char *element_name) {
138 // cerr << "interrogate_get_element_by_name(" << element_name << ")\n";
140}
141
142ElementIndex
143interrogate_get_element_by_scoped_name(const char *element_name) {
144 // cerr << "interrogate_get_element_by_scoped_name(" << element_name <<
145 // ")\n";
147}
148
149TypeIndex
150interrogate_element_type(ElementIndex element) {
151 // cerr << "interrogate_element_type(" << element << ")\n";
152 return InterrogateDatabase::get_ptr()->get_element(element).get_type();
153}
154
155bool
156interrogate_element_has_getter(ElementIndex element) {
157 // cerr << "interrogate_element_has_getter(" << element << ")\n";
158 return InterrogateDatabase::get_ptr()->get_element(element).has_getter();
159}
160
161FunctionIndex
162interrogate_element_getter(ElementIndex element) {
163 // cerr << "interrogate_element_getter(" << element << ")\n";
164 return InterrogateDatabase::get_ptr()->get_element(element).get_getter();
165}
166
167bool
168interrogate_element_has_setter(ElementIndex element) {
169 // cerr << "interrogate_element_has_setter(" << element << ")\n";
170 return InterrogateDatabase::get_ptr()->get_element(element).has_setter();
171}
172
173FunctionIndex
174interrogate_element_setter(ElementIndex element) {
175 // cerr << "interrogate_element_setter(" << element << ")\n";
176 return InterrogateDatabase::get_ptr()->get_element(element).get_setter();
177}
178
179bool
180interrogate_element_has_has_function(ElementIndex element) {
181 // cerr << "interrogate_element_has_has_function(" << element << ")\n";
182 return InterrogateDatabase::get_ptr()->get_element(element).has_has_function();
183}
184
185FunctionIndex
186interrogate_element_has_function(ElementIndex element) {
187 // cerr << "interrogate_element_has_function(" << element << ")\n";
188 return InterrogateDatabase::get_ptr()->get_element(element).get_has_function();
189}
190
191bool
192interrogate_element_has_clear_function(ElementIndex element) {
193 // cerr << "interrogate_element_has_clear_function(" << element << ")\n";
194 return InterrogateDatabase::get_ptr()->get_element(element).has_clear_function();
195}
196
197FunctionIndex
198interrogate_element_clear_function(ElementIndex element) {
199 // cerr << "interrogate_element_clear_function(" << element << ")\n";
200 return InterrogateDatabase::get_ptr()->get_element(element).get_clear_function();
201}
202
203bool
204interrogate_element_has_del_function(ElementIndex element) {
205 // cerr << "interrogate_element_has_del_function(" << element << ")\n";
206 return InterrogateDatabase::get_ptr()->get_element(element).has_del_function();
207}
208
209FunctionIndex
210interrogate_element_del_function(ElementIndex element) {
211 // cerr << "interrogate_element_del_function(" << element << ")\n";
212 return InterrogateDatabase::get_ptr()->get_element(element).get_del_function();
213}
214
215bool
216interrogate_element_has_insert_function(ElementIndex element) {
217 // cerr << "interrogate_element_has_insert_function(" << element << ")\n";
218 return InterrogateDatabase::get_ptr()->get_element(element).has_insert_function();
219}
220
221FunctionIndex
222interrogate_element_insert_function(ElementIndex element) {
223 // cerr << "interrogate_element_insert_function(" << element << ")\n";
224 return InterrogateDatabase::get_ptr()->get_element(element).get_insert_function();
225}
226
227bool
228interrogate_element_has_getkey_function(ElementIndex element) {
229 // cerr << "interrogate_element_has_getkey_function(" << element << ")\n";
230 return InterrogateDatabase::get_ptr()->get_element(element).has_getkey_function();
231}
232
233FunctionIndex
234interrogate_element_getkey_function(ElementIndex element) {
235 // cerr << "interrogate_element_getkey_function(" << element << ")\n";
236 return InterrogateDatabase::get_ptr()->get_element(element).get_getkey_function();
237}
238
239FunctionIndex
240interrogate_element_length_function(ElementIndex element) {
241 // cerr << "interrogate_element_length_function(" << element << ")\n";
242 return InterrogateDatabase::get_ptr()->get_element(element).get_length_function();
243}
244
245bool
246interrogate_element_is_sequence(ElementIndex element) {
247 // cerr << "interrogate_element_is_sequence(" << element << ")\n";
248 return InterrogateDatabase::get_ptr()->get_element(element).is_sequence();
249}
250
251bool
252interrogate_element_is_mapping(ElementIndex element) {
253 // cerr << "interrogate_element_is_mapping(" << element << ")\n";
254 return InterrogateDatabase::get_ptr()->get_element(element).is_mapping();
255}
256
257int
258interrogate_number_of_globals() {
259 // cerr << "interrogate_number_of_globals()\n";
261}
262
263ElementIndex
264interrogate_get_global(int n) {
265 // cerr << "interrogate_get_global(" << n << ")\n";
267}
268
269int
270interrogate_number_of_global_functions() {
271 // cerr << "interrogate_number_of_global_functions()\n";
273}
274
275FunctionIndex
276interrogate_get_global_function(int n) {
277 // cerr << "interrogate_get_global_function(" << n << ")\n";
279}
280
281int
282interrogate_number_of_functions() {
283 // cerr << "interrogate_number_of_functions()\n";
285}
286
287FunctionIndex
288interrogate_get_function(int n) {
289 // cerr << "interrogate_get_function(" << n << ")\n";
291}
292
293const char *
294interrogate_function_name(FunctionIndex function) {
295 // cerr << "interrogate_function_name(" << function << ")\n";
296 return InterrogateDatabase::get_ptr()->get_function(function).get_name().c_str();
297}
298
299const char *
300interrogate_function_scoped_name(FunctionIndex function) {
301 // cerr << "interrogate_function_scoped_name(" << function << ")\n";
302 return InterrogateDatabase::get_ptr()->get_function(function).get_scoped_name().c_str();
303}
304
305bool
306interrogate_function_has_comment(FunctionIndex function) {
307 // cerr << "interrogate_function_has_comment(" << function << ")\n";
308 return InterrogateDatabase::get_ptr()->get_function(function).has_comment();
309}
310
311const char *
312interrogate_function_comment(FunctionIndex function) {
313 // cerr << "interrogate_function_comment(" << function << ")\n";
314 return InterrogateDatabase::get_ptr()->get_function(function).get_comment().c_str();
315}
316
317const char *
318interrogate_function_prototype(FunctionIndex function) {
319 // cerr << "interrogate_function_prototype(" << function << ")\n";
320 return InterrogateDatabase::get_ptr()->get_function(function).get_prototype().c_str();
321}
322
323bool
324interrogate_function_is_method(FunctionIndex function) {
325 // cerr << "interrogate_function_is_method(" << function << ")\n";
327}
328
329TypeIndex
330interrogate_function_class(FunctionIndex function) {
331 // cerr << "interrogate_function_class(" << function << ")\n";
333}
334
335bool
336interrogate_function_is_unary_op(FunctionIndex function) {
337 // cerr << "interrogate_function_is_unary_op(" << function << ")\n";
339}
340
341bool
342interrogate_function_is_operator_typecast(FunctionIndex function) {
343 // cerr << "interrogate_function_is_operator_typecast(" << function <<
344 // ")\n";
346}
347
348bool
349interrogate_function_is_constructor(FunctionIndex function) {
350 // cerr << "interrogate_function_is_constructor(" << function << ")\n";
352}
353
354bool
355interrogate_function_is_destructor(FunctionIndex function) {
356 // cerr << "interrogate_function_is_destructor(" << function << ")\n";
358}
359
360bool
361interrogate_function_has_module_name(FunctionIndex function) {
362 // cerr << "interrogate_function_has_module_name(" << function << ")\n";
364}
365
366const char *
367interrogate_function_module_name(FunctionIndex function) {
368 // cerr << "interrogate_function_module_name(" << function << ")\n";
370}
371
372bool
373interrogate_function_has_library_name(FunctionIndex function) {
374 // cerr << "interrogate_function_has_library_name(" << function << ")\n";
376}
377
378const char *
379interrogate_function_library_name(FunctionIndex function) {
380 // cerr << "interrogate_function_library_name(" << function << ")\n";
382}
383
384
385
386bool
387interrogate_function_is_virtual(FunctionIndex function) {
388 // cerr << "interrogate_function_is_virtual(" << function << ")\n";
390}
391
392int
393interrogate_function_number_of_c_wrappers(FunctionIndex function) {
394 // cerr << "interrogate_function_number_of_c_wrappers(" << function <<
395 // ")\n";
396 return InterrogateDatabase::get_ptr()->get_function(function).number_of_c_wrappers();
397}
398
399FunctionWrapperIndex
400interrogate_function_c_wrapper(FunctionIndex function, int n) {
401 // cerr << "interrogate_function_c_wrapper(" << function << ", " << n <<
402 // ")\n";
403 return InterrogateDatabase::get_ptr()->get_function(function).get_c_wrapper(n);
404}
405
406int
407interrogate_function_number_of_python_wrappers(FunctionIndex function) {
408 // cerr << "interrogate_function_number_of_python_wrappers(" << function <<
409 // ")\n";
410 return InterrogateDatabase::get_ptr()->get_function(function).number_of_python_wrappers();
411}
412
413FunctionWrapperIndex
414interrogate_function_python_wrapper(FunctionIndex function, int n) {
415 // cerr << "interrogate_function_python_wrapper(" << function << ", " << n
416 // << ")\n";
417 return InterrogateDatabase::get_ptr()->get_function(function).get_python_wrapper(n);
418}
419
420const char *
421interrogate_wrapper_name(FunctionWrapperIndex wrapper) {
422 // cerr << "interrogate_wrapper_name(" << wrapper << ")\n";
423 static string result;
424 result = InterrogateDatabase::get_ptr()->get_wrapper(wrapper).get_name();
425 return result.c_str();
426}
427
428FunctionIndex
429interrogate_wrapper_function(FunctionWrapperIndex wrapper) {
430 // cerr << "interrogate_wrapper_function(" << wrapper << ")\n";
432}
433
434bool
435interrogate_wrapper_is_callable_by_name(FunctionWrapperIndex wrapper) {
436 // cerr << "interrogate_wrapper_is_callable_by_name(" << wrapper << ")\n";
437 return InterrogateDatabase::get_ptr()->get_wrapper(wrapper).is_callable_by_name();
438}
439
440bool
441interrogate_wrapper_is_copy_constructor(FunctionWrapperIndex wrapper) {
442 // cerr << "interrogate_wrapper_is_copy_constructor(" << wrapper << ")\n";
444}
445
446bool
447interrogate_wrapper_is_coerce_constructor(FunctionWrapperIndex wrapper) {
448 // cerr << "interrogate_wrapper_is_coerce_constructor(" << wrapper << ")\n";
450}
451
452bool
453interrogate_wrapper_is_extension(FunctionWrapperIndex wrapper) {
454 // cerr << "interrogate_wrapper_is_extension(" << wrapper << ")\n";
456}
457
458bool
459interrogate_wrapper_has_comment(FunctionWrapperIndex wrapper) {
460 // cerr << "interrogate_wrapper_has_comment(" << wrapper << ")\n";
461 return InterrogateDatabase::get_ptr()->get_wrapper(wrapper).has_comment();
462}
463
464const char *
465interrogate_wrapper_comment(FunctionWrapperIndex wrapper) {
466 // cerr << "interrogate_wrapper_comment(" << wrapper << ")\n";
467 return InterrogateDatabase::get_ptr()->get_wrapper(wrapper).get_comment().c_str();
468}
469
470bool
471interrogate_wrapper_has_return_value(FunctionWrapperIndex wrapper) {
472 // cerr << "interrogate_wrapper_has_return_value(" << wrapper << ")\n";
473 return InterrogateDatabase::get_ptr()->get_wrapper(wrapper).has_return_value();
474}
475
476TypeIndex
477interrogate_wrapper_return_type(FunctionWrapperIndex wrapper) {
478 // cerr << "interrogate_wrapper_return_type(" << wrapper << ")\n";
479 return InterrogateDatabase::get_ptr()->get_wrapper(wrapper).get_return_type();
480}
481
482bool
483interrogate_wrapper_caller_manages_return_value(FunctionWrapperIndex wrapper) {
484 // cerr << "interrogate_wrapper_caller_manages_return_value(" << wrapper <<
485 // ")\n";
486 return InterrogateDatabase::get_ptr()->get_wrapper(wrapper).caller_manages_return_value();
487}
488
489FunctionIndex
490interrogate_wrapper_return_value_destructor(FunctionWrapperIndex wrapper) {
491 // cerr << "interrogate_wrapper_return_value_destructor(" << wrapper <<
492 // ")\n";
493 return InterrogateDatabase::get_ptr()->get_wrapper(wrapper).get_return_value_destructor();
494}
495
496int
497interrogate_wrapper_number_of_parameters(FunctionWrapperIndex wrapper) {
498 // cerr << "interrogate_wrapper_number_of_parameters(" << wrapper << ")\n";
499 return InterrogateDatabase::get_ptr()->get_wrapper(wrapper).number_of_parameters();
500}
501
502TypeIndex
503interrogate_wrapper_parameter_type(FunctionWrapperIndex wrapper, int n) {
504 // cerr << "interrogate_wrapper_parameter_type(" << wrapper << ", " << n <<
505 // ")\n";
506 return InterrogateDatabase::get_ptr()->get_wrapper(wrapper).parameter_get_type(n);
507}
508
509bool
510interrogate_wrapper_parameter_has_name(FunctionWrapperIndex wrapper, int n) {
511 // cerr << "interrogate_wrapper_parameter_has_name(" << wrapper << ", " << n
512 // << ")\n";
513 return InterrogateDatabase::get_ptr()->get_wrapper(wrapper).parameter_has_name(n);
514}
515
516const char *
517interrogate_wrapper_parameter_name(FunctionWrapperIndex wrapper, int n) {
518 // cerr << "interrogate_wrapper_parameter_name(" << wrapper << ", " << n <<
519 // ")\n";
520 return InterrogateDatabase::get_ptr()->get_wrapper(wrapper).parameter_get_name(n).c_str();
521}
522
523bool
524interrogate_wrapper_parameter_is_this(FunctionWrapperIndex wrapper, int n) {
525 // cerr << "interrogate_wrapper_is_this(" << wrapper << ", " << n << ")\n";
526 return InterrogateDatabase::get_ptr()->get_wrapper(wrapper).parameter_is_this(n);
527}
528
529bool
530interrogate_wrapper_parameter_is_optional(FunctionWrapperIndex wrapper, int n) {
531 // cerr << "interrogate_wrapper_is_optional(" << wrapper << ", " << n << ")\n";
532 return InterrogateDatabase::get_ptr()->get_wrapper(wrapper).parameter_is_optional(n);
533}
534
535bool
536interrogate_wrapper_has_pointer(FunctionWrapperIndex wrapper) {
537 // cerr << "interrogate_wrapper_has_pointer(" << wrapper << ")\n";
538 return (InterrogateDatabase::get_ptr()->get_fptr(wrapper) != nullptr);
539}
540
541void *
542interrogate_wrapper_pointer(FunctionWrapperIndex wrapper) {
543 // cerr << "interrogate_wrapper_pointer(" << wrapper << ")\n";
544 return InterrogateDatabase::get_ptr()->get_fptr(wrapper);
545}
546
547const char *
548interrogate_wrapper_unique_name(FunctionWrapperIndex wrapper) {
549 // cerr << "interrogate_wrapper_unique_name(" << wrapper << ")\n";
550 static string result;
551 result = InterrogateDatabase::get_ptr()->get_wrapper(wrapper).get_unique_name();
552 return result.c_str();
553}
554
555FunctionWrapperIndex
556interrogate_get_wrapper_by_unique_name(const char *unique_name) {
557 // cerr << "interrogate_get_wrapper_by_unique_name(" << unique_name <<
558 // ")\n";
560}
561
562const char *
563interrogate_make_seq_seq_name(MakeSeqIndex make_seq) {
564 // cerr << "interrogate_make_seq_seq_name(" << make_seq << ")\n";
565 static string result;
566 result = InterrogateDatabase::get_ptr()->get_make_seq(make_seq).get_name();
567 return result.c_str();
568}
569
570const char *
571interrogate_make_seq_scoped_name(MakeSeqIndex make_seq) {
572 // cerr << "interrogate_make_seq_seq_name(" << make_seq << ")\n";
573 static string result;
574 result = InterrogateDatabase::get_ptr()->get_make_seq(make_seq).get_scoped_name();
575 return result.c_str();
576}
577
578bool
579interrogate_make_seq_has_comment(MakeSeqIndex make_seq) {
580 // cerr << "interrogate_make_seq_has_comment(" << make_seq << ")\n";
581 return InterrogateDatabase::get_ptr()->get_make_seq(make_seq).has_comment();
582}
583
584const char *
585interrogate_make_seq_comment(MakeSeqIndex make_seq) {
586 // cerr << "interrogate_make_seq_comment(" << make_seq << ")\n";
587 return InterrogateDatabase::get_ptr()->get_make_seq(make_seq).get_comment().c_str();
588}
589
590const char *
591interrogate_make_seq_num_name(MakeSeqIndex make_seq) {
592 // cerr << "interrogate_make_seq_num_name(" << make_seq << ")\n";
593 FunctionIndex function = InterrogateDatabase::get_ptr()->get_make_seq(make_seq).get_length_getter();
594 return interrogate_function_name(function);
595}
596
597const char *
598interrogate_make_seq_element_name(MakeSeqIndex make_seq) {
599 // cerr << "interrogate_make_seq_element_name(" << make_seq << ")\n";
600 FunctionIndex function = InterrogateDatabase::get_ptr()->get_make_seq(make_seq).get_element_getter();
601 return interrogate_function_name(function);
602}
603
604FunctionIndex
605interrogate_make_seq_num_getter(MakeSeqIndex make_seq) {
606 // cerr << "interrogate_make_seq_num_getter(" << make_seq << ")\n";
607 return InterrogateDatabase::get_ptr()->get_make_seq(make_seq).get_length_getter();
608}
609
610FunctionIndex
611interrogate_make_seq_element_getter(MakeSeqIndex make_seq) {
612 // cerr << "interrogate_make_seq_element_getter(" << make_seq << ")\n";
613 return InterrogateDatabase::get_ptr()->get_make_seq(make_seq).get_element_getter();
614}
615
616int
617interrogate_number_of_global_types() {
618 // cerr << "interrogate_number_of_global_types()\n";
620}
621
622TypeIndex
623interrogate_get_global_type(int n) {
624 // cerr << "interrogate_get_global_type(" << n << ")\n";
626}
627
628int
629interrogate_number_of_types() {
630 // cerr << "interrogate_number_of_types()\n";
632}
633
634TypeIndex
635interrogate_get_type(int n) {
636 // cerr << "interrogate_get_type(" << n << ")\n";
638}
639
640TypeIndex
641interrogate_get_type_by_name(const char *type_name) {
642 // cerr << "interrogate_get_type_by_name(" << type_name << ")\n";
644}
645
646TypeIndex
647interrogate_get_type_by_scoped_name(const char *type_name) {
648 // cerr << "interrogate_get_type_by_scoped_name(" << type_name << ")\n";
650}
651
652TypeIndex
653interrogate_get_type_by_true_name(const char *type_name) {
654 // cerr << "interrogate_get_type_by_true_name(" << type_name << ")\n";
656}
657
658bool
659interrogate_type_is_global(TypeIndex type) {
660 // cerr << "interrogate_type_is_global(" << type << ")\n";
662}
663
664const char *
665interrogate_type_name(TypeIndex type) {
666 // cerr << "interrogate_type_name(" << type << ")\n";
667 return InterrogateDatabase::get_ptr()->get_type(type).get_name().c_str();
668}
669
670const char *
671interrogate_type_scoped_name(TypeIndex type) {
672 // cerr << "interrogate_type_scoped_name(" << type << ")\n";
673 return InterrogateDatabase::get_ptr()->get_type(type).get_scoped_name().c_str();
674}
675
676const char *
677interrogate_type_true_name(TypeIndex type) {
678 // cerr << "interrogate_type_true_name(" << type << ")\n";
679 return InterrogateDatabase::get_ptr()->get_type(type).get_true_name().c_str();
680}
681
682bool
683interrogate_type_is_nested(TypeIndex type) {
684 // cerr << "interrogate_type_is_nested(" << type << ")\n";
686}
687
688TypeIndex
689interrogate_type_outer_class(TypeIndex type) {
690 // cerr << "interrogate_type_outer_class(" << type << ")\n";
692}
693
694bool
695interrogate_type_has_comment(TypeIndex type) {
696 // cerr << "interrogate_type_has_comment(" << type << ")\n";
697 return InterrogateDatabase::get_ptr()->get_type(type).has_comment();
698}
699
700const char *
701interrogate_type_comment(TypeIndex type) {
702 // cerr << "interrogate_type_comment(" << type << ")\n";
703 return InterrogateDatabase::get_ptr()->get_type(type).get_comment().c_str();
704}
705
706bool
707interrogate_type_has_module_name(TypeIndex type) {
708 // cerr << "interrogate_type_has_module_name(" << type << ")\n";
710}
711
712const char *
713interrogate_type_module_name(TypeIndex type) {
714 // cerr << "interrogate_type_module_name(" << type << ")\n";
716}
717
718bool
719interrogate_type_has_library_name(TypeIndex type) {
720 // cerr << "interrogate_type_has_library_name(" << type << ")\n";
722}
723
724const char *
725interrogate_type_library_name(TypeIndex type) {
726 // cerr << "interrogate_type_library_name(" << type << ")\n";
728}
729
730
731bool
732interrogate_type_is_atomic(TypeIndex type) {
733 // cerr << "interrogate_type_is_atomic(" << type << ")\n";
734 return InterrogateDatabase::get_ptr()->get_type(type).is_atomic();
735}
736
737AtomicToken
738interrogate_type_atomic_token(TypeIndex type) {
739 // cerr << "interrogate_type_atomic_token(" << type << ")\n";
740 return InterrogateDatabase::get_ptr()->get_type(type).get_atomic_token();
741}
742
743bool
744interrogate_type_is_unsigned(TypeIndex type) {
745 // cerr << "interrogate_type_is_unsigned(" << type << ")\n";
746 return InterrogateDatabase::get_ptr()->get_type(type).is_unsigned();
747}
748
749bool
750interrogate_type_is_signed(TypeIndex type) {
751 // cerr << "interrogate_type_is_signed(" << type << ")\n";
752 return InterrogateDatabase::get_ptr()->get_type(type).is_signed();
753}
754
755bool
756interrogate_type_is_long(TypeIndex type) {
757 // cerr << "interrogate_type_is_long(" << type << ")\n";
758 return InterrogateDatabase::get_ptr()->get_type(type).is_long();
759}
760
761bool
762interrogate_type_is_longlong(TypeIndex type) {
763 // cerr << "interrogate_type_is_longlong(" << type << ")\n";
764 return InterrogateDatabase::get_ptr()->get_type(type).is_longlong();
765}
766
767bool
768interrogate_type_is_short(TypeIndex type) {
769 // cerr << "interrogate_type_is_short(" << type << ")\n";
770 return InterrogateDatabase::get_ptr()->get_type(type).is_short();
771}
772
773bool
774interrogate_type_is_wrapped(TypeIndex type) {
775 // cerr << "interrogate_type_is_wrapped(" << type << ")\n";
776 return InterrogateDatabase::get_ptr()->get_type(type).is_wrapped();
777}
778
779bool
780interrogate_type_is_pointer(TypeIndex type) {
781 // cerr << "interrogate_type_is_pointer(" << type << ")\n";
782 return InterrogateDatabase::get_ptr()->get_type(type).is_pointer();
783}
784
785bool
786interrogate_type_is_const(TypeIndex type) {
787 // cerr << "interrogate_type_is_const(" << type << ")\n";
788 return InterrogateDatabase::get_ptr()->get_type(type).is_const();
789}
790
791bool
792interrogate_type_is_typedef(TypeIndex type) {
793 // cerr << "interrogate_type_is_typedef(" << type << ")\n";
794 return InterrogateDatabase::get_ptr()->get_type(type).is_typedef();
795}
796
797TypeIndex
798interrogate_type_wrapped_type(TypeIndex type) {
799 // cerr << "interrogate_type_wrapped_type(" << type << ")\n";
800 return InterrogateDatabase::get_ptr()->get_type(type).get_wrapped_type();
801}
802
803bool
804interrogate_type_is_array(TypeIndex type) {
805 // cerr << "interrogate_type_is_array(" << type << ")\n";
806 return InterrogateDatabase::get_ptr()->get_type(type).is_array();
807}
808
809int
810interrogate_type_array_size(TypeIndex type) {
811 // cerr << "interrogate_type_array_size(" << type << ")\n";
812 return InterrogateDatabase::get_ptr()->get_type(type).get_array_size();
813}
814
815bool
816interrogate_type_is_enum(TypeIndex type) {
817 // cerr << "interrogate_type_is_enum(" << type << ")\n";
818 return InterrogateDatabase::get_ptr()->get_type(type).is_enum();
819}
820
821bool
822interrogate_type_is_scoped_enum(TypeIndex type) {
823 // cerr << "interrogate_type_is_scoped_enum(" << type << ")\n";
825}
826
827int
828interrogate_type_number_of_enum_values(TypeIndex type) {
829 // cerr << "interrogate_type_number_of_enum_values(" << type << ")\n";
830 return InterrogateDatabase::get_ptr()->get_type(type).number_of_enum_values();
831}
832
833const char *
834interrogate_type_enum_value_name(TypeIndex type, int n) {
835 // cerr << "interrogate_type_enum_value_name(" << type << ", " << n <<
836 // ")\n";
837 return InterrogateDatabase::get_ptr()->get_type(type).get_enum_value_name(n).c_str();
838}
839
840const char *
841interrogate_type_enum_value_scoped_name(TypeIndex type, int n) {
842 // cerr << "interrogate_type_enum_value_scoped_name(" << type << ", " << n
843 // << ")\n";
844 return InterrogateDatabase::get_ptr()->get_type(type).get_enum_value_scoped_name(n).c_str();
845}
846
847const char *
848interrogate_type_enum_value_comment(TypeIndex type, int n) {
849 // cerr << "interrogate_type_enum_value_comment(" << type << ", " << n <<
850 // ")\n";
851 return InterrogateDatabase::get_ptr()->get_type(type).get_enum_value_comment(n).c_str();
852}
853
854int
855interrogate_type_enum_value(TypeIndex type, int n) {
856 // cerr << "interrogate_type_enum_value(" << type << ", " << n << ")\n";
857 return InterrogateDatabase::get_ptr()->get_type(type).get_enum_value(n);
858}
859
860bool
861interrogate_type_is_struct(TypeIndex type) {
862 // cerr << "interrogate_type_is_struct(" << type << ")\n";
863 return InterrogateDatabase::get_ptr()->get_type(type).is_struct();
864}
865
866bool
867interrogate_type_is_class(TypeIndex type) {
868 // cerr << "interrogate_type_is_class(" << type << ")\n";
869 return InterrogateDatabase::get_ptr()->get_type(type).is_class();
870}
871
872bool
873interrogate_type_is_union(TypeIndex type) {
874 // cerr << "interrogate_type_is_union(" << type << ")\n";
875 return InterrogateDatabase::get_ptr()->get_type(type).is_union();
876}
877
878bool
879interrogate_type_is_fully_defined(TypeIndex type) {
880 // cerr << "interrogate_type_is_fully_defined(" << type << ")\n";
881 return InterrogateDatabase::get_ptr()->get_type(type).is_fully_defined();
882}
883
884bool
885interrogate_type_is_unpublished(TypeIndex type) {
886 // cerr << "interrogate_type_is_unpublished(" << type << ")\n";
888}
889
890int
891interrogate_type_number_of_constructors(TypeIndex type) {
892 // cerr << "interrogate_type_number_of_constructors(" << type << ")\n";
893 return InterrogateDatabase::get_ptr()->get_type(type).number_of_constructors();
894}
895
896FunctionIndex
897interrogate_type_get_constructor(TypeIndex type, int n) {
898 // cerr << "interrogate_type_get_constructor(" << type << ", " << n <<
899 // ")\n";
900 return InterrogateDatabase::get_ptr()->get_type(type).get_constructor(n);
901}
902
903bool
904interrogate_type_has_destructor(TypeIndex type) {
905 // cerr << "interrogate_type_has_destructor(" << type << ")\n";
906 return InterrogateDatabase::get_ptr()->get_type(type).has_destructor();
907}
908
909bool
910interrogate_type_destructor_is_inherited(TypeIndex type) {
911 // cerr << "interrogate_type_destructor_is_inherited(" << type << ")\n";
912 return InterrogateDatabase::get_ptr()->get_type(type).destructor_is_inherited();
913}
914
915FunctionIndex
916interrogate_type_get_destructor(TypeIndex type) {
917 // cerr << "interrogate_type_get_destructor(" << type << ")\n";
918 return InterrogateDatabase::get_ptr()->get_type(type).get_destructor();
919}
920
921int
922interrogate_type_number_of_elements(TypeIndex type) {
923 // cerr << "interrogate_type_number_of_elements(" << type << ")\n";
924 return InterrogateDatabase::get_ptr()->get_type(type).number_of_elements();
925}
926
927ElementIndex
928interrogate_type_get_element(TypeIndex type, int n) {
929 // cerr << "interrogate_type_get_element(" << type << ", " << n << ")\n";
930 return InterrogateDatabase::get_ptr()->get_type(type).get_element(n);
931}
932
933int
934interrogate_type_number_of_methods(TypeIndex type) {
935 // cerr << "interrogate_type_number_of_methods(" << type << ")\n";
936 return InterrogateDatabase::get_ptr()->get_type(type).number_of_methods();
937}
938
939FunctionIndex
940interrogate_type_get_method(TypeIndex type, int n) {
941 // cerr << "interrogate_type_get_method(" << type << ", " << n << ")\n";
942 return InterrogateDatabase::get_ptr()->get_type(type).get_method(n);
943}
944
945int
946interrogate_type_number_of_make_seqs(TypeIndex type) {
947 // cerr << "interrogate_type_number_of_make_seqs(" << type << ")\n";
948 return InterrogateDatabase::get_ptr()->get_type(type).number_of_make_seqs();
949}
950
951MakeSeqIndex
952interrogate_type_get_make_seq(TypeIndex type, int n) {
953 // cerr << "interrogate_type_get_make_seq(" << type << ", " << n << ")\n";
954 return InterrogateDatabase::get_ptr()->get_type(type).get_make_seq(n);
955}
956
957int
958interrogate_type_number_of_casts(TypeIndex type) {
959 // cerr << "interrogate_type_number_of_casts(" << type << ")\n";
960 return InterrogateDatabase::get_ptr()->get_type(type).number_of_casts();
961}
962
963FunctionIndex
964interrogate_type_get_cast(TypeIndex type, int n) {
965 // cerr << "interrogate_type_get_cast(" << type << ", " << n << ")\n";
966 return InterrogateDatabase::get_ptr()->get_type(type).get_cast(n);
967}
968
969int
970interrogate_type_number_of_derivations(TypeIndex type) {
971 // cerr << "interrogate_type_number_of_derivations(" << type << ")\n";
972 return InterrogateDatabase::get_ptr()->get_type(type).number_of_derivations();
973}
974
975TypeIndex
976interrogate_type_get_derivation(TypeIndex type, int n) {
977 // cerr << "interrogate_type_get_derivation(" << type << ", " << n << ")\n";
978 return InterrogateDatabase::get_ptr()->get_type(type).get_derivation(n);
979}
980
981bool
982interrogate_type_is_final(TypeIndex type) {
983 // cerr << "interrogate_type_is_final(" << type << ")\n";
984 return InterrogateDatabase::get_ptr()->get_type(type).is_final();
985}
986
987bool
988interrogate_type_derivation_has_upcast(TypeIndex type, int n) {
989 // cerr << "interrogate_type_derivation_has_upcast(" << type << ", " << n <<
990 // ")\n";
991 return InterrogateDatabase::get_ptr()->get_type(type).derivation_has_upcast(n);
992}
993
994FunctionIndex
995interrogate_type_get_upcast(TypeIndex type, int n) {
996 // cerr << "interrogate_type_get_upcast(" << type << ", " << n << ")\n";
997 return InterrogateDatabase::get_ptr()->get_type(type).derivation_get_upcast(n);
998}
999
1000bool
1001interrogate_type_derivation_downcast_is_impossible(TypeIndex type, int n) {
1002 // cerr << "interrogate_type_derivation_downcast_is_impossible(" << type <<
1003 // ", " << n << ")\n";
1004 return InterrogateDatabase::get_ptr()->get_type(type).derivation_downcast_is_impossible(n);
1005}
1006
1007bool
1008interrogate_type_derivation_has_downcast(TypeIndex type, int n) {
1009 // cerr << "interrogate_type_derivation_has_downcast(" << type << ", " << n
1010 // << ")\n";
1011 return InterrogateDatabase::get_ptr()->get_type(type).derivation_has_downcast(n);
1012}
1013
1014FunctionIndex
1015interrogate_type_get_downcast(TypeIndex type, int n) {
1016 // cerr << "interrogate_type_get_downcast(" << type << ", " << n << ")\n";
1017 return InterrogateDatabase::get_ptr()->get_type(type).derivation_get_downcast(n);
1018}
1019
1020int
1021interrogate_type_number_of_nested_types(TypeIndex type) {
1022 // cerr << "interrogate_type_number_of_nested_types(" << type << ")\n";
1023 return InterrogateDatabase::get_ptr()->get_type(type).number_of_nested_types();
1024}
1025
1026TypeIndex
1027interrogate_type_get_nested_type(TypeIndex type, int n) {
1028 // cerr << "interrogate_type_get_nested_type(" << type << ", " << n <<
1029 // ")\n";
1030 return InterrogateDatabase::get_ptr()->get_type(type).get_nested_type(n);
1031}
void append_directory(const Filename &directory)
Adds a new directory to the end of the search list.
void append_path(const std::string &path, const std::string &separator=std::string())
Adds all of the directories listed in the search path to the end of the search list.
const char * get_module_name() const
Returns the module name, if it is known, or NULL if it is not.
bool has_module_name() const
Returns true if we have a known module name, false if we do not.
const char * get_library_name() const
Returns the library name, if it is known, or NULL if it is not.
bool has_library_name() const
Returns true if we have a known library name, false if we do not.
int get_num_global_types()
Returns the total number of "global" types known to the interrogate database.
TypeIndex lookup_type_by_scoped_name(const std::string &name)
Returns the TypeIndex associated with the first type found with the given scoped name,...
ManifestIndex get_global_manifest(int n)
Returns the index of the nth global manifest constant known to the interrogate database.
const InterrogateFunction & get_function(FunctionIndex function)
Returns the function associated with the given FunctionIndex, if there is one.
ManifestIndex lookup_manifest_by_name(const std::string &name)
Returns the ManifestIndex associated with the first manifest found with the given name,...
int get_num_all_functions()
Returns the total number of functions known to the interrogate database.
int get_num_all_types()
Returns the total number of types known to the interrogate database.
TypeIndex lookup_type_by_true_name(const std::string &name)
Returns the TypeIndex associated with the first type found with the given true name,...
const InterrogateMakeSeq & get_make_seq(MakeSeqIndex element)
Returns the make_seq associated with the given MakeSeqIndex, if there is one.
bool get_error_flag()
Returns the global error flag.
int get_num_global_elements()
Returns the total number of global data elements known to the interrogate database.
const InterrogateManifest & get_manifest(ManifestIndex manifest)
Returns the manifest constant associated with the given ManifestIndex, if there is one.
const InterrogateType & get_type(TypeIndex type)
Returns the type associated with the given TypeIndex, if there is one.
const InterrogateElement & get_element(ElementIndex element)
Returns the data element associated with the given ElementIndex, if there is one.
int get_num_global_manifests()
Returns the total number of global manifest constants known to the interrogate database.
int get_num_global_functions()
Returns the total number of global functions known to the interrogate database.
const InterrogateFunctionWrapper & get_wrapper(FunctionWrapperIndex wrapper)
Returns the function wrapper associated with the given FunctionWrapperIndex, if there is one.
static InterrogateDatabase * get_ptr()
Returns the global pointer to the one InterrogateDatabase.
void * get_fptr(FunctionWrapperIndex wrapper)
Returns the function pointer associated with the given function wrapper, if it has a pointer availabl...
ElementIndex lookup_element_by_name(const std::string &name)
Returns the ElementIndex associated with the first element found with the given name,...
FunctionIndex get_all_function(int n)
Returns the index of the nth function known to the interrogate database.
TypeIndex get_all_type(int n)
Returns the index of the nth type known to the interrogate database.
ElementIndex lookup_element_by_scoped_name(const std::string &name)
Returns the ElementIndex associated with the first element found with the given scoped name,...
FunctionWrapperIndex get_wrapper_by_unique_name(const std::string &unique_name)
Looks up the function wrapper corresponding to the given unique name, if available.
TypeIndex lookup_type_by_name(const std::string &name)
Returns the TypeIndex associated with the first type found with the given name, or 0 if no type has t...
ElementIndex get_global_element(int n)
Returns the index of the nth global data element known to the interrogate database.
TypeIndex get_global_type(int n)
Returns the index of the nth global type known to the interrogate database.
FunctionIndex get_global_function(int n)
Returns the index of the nth global function known to the interrogate database.
FunctionIndex get_function() const
Returns the FunctionIndex of the function that this wrapper corresponds to.
bool is_method() const
Returns true if the function is a class method.
bool is_destructor() const
Returns true if the function is a destructor.
TypeIndex get_class() const
Return the class that owns the method, if is_method() returns true.
bool is_constructor() const
Returns true if the function is a constructor.
bool is_unary_op() const
Returns true if the function is flagged as a special unary operator, like operator -() with no parame...
bool is_virtual() const
Returns true if the function is virtual, for whatever that's worth.
bool is_operator_typecast() const
Returns true if the function is a special typecast operator, like operator bool().
bool is_global() const
Returns true if the type is marked as 'global'.
bool is_unpublished() const
Returns true if the type is an unpublished type.
bool is_nested() const
Returns true if this type is nested within some class definition.
TypeIndex get_outer_class() const
If is_nested() returns true, this is the class within which this type is defined.
bool is_scoped_enum() const
Returns true if enum values are only available under a scope.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.