Python: require new pybindgen and re-scan API to make the list of free functions and namespaces sorted.
This commit will change a lot the scanned API definitions, once, but should allow much more stable scanning in the future, as right now only types were being sorted, but free functions can jump up or down when different people on different machines scan the API. Well, no more will that happen in the future, I hope.
1 from pybindgen import Module, FileCodeSink, param, retval, cppclass
4 import pybindgen.settings
7 class ErrorHandler(pybindgen.settings.ErrorHandler):
8 def handle_error(self, wrapper, exception, traceback_):
9 warnings.warn("exception %r in wrapper %s" % (exception, wrapper))
11 pybindgen.settings.error_handler = ErrorHandler()
15 import ns3_module_core
16 import ns3_module_simulator
17 import ns3_module_mobility
18 import ns3_module_common
19 import ns3_module_contrib
20 import ns3_module_node
21 import ns3_module_point_to_point
22 import ns3_module_stats
23 import ns3_module_internet_stack
24 import ns3_module_wifi
25 import ns3_module_csma
27 import ns3_module_bridge
28 import ns3_module_packet_sink
29 import ns3_module_v4ping
30 import ns3_module_global_routing
31 import ns3_module_onoff
32 import ns3_module_olsr
33 import ns3_module_udp_echo
34 import ns3_module_helper
37 root_module = Module('ns3', cpp_namespace='::ns3')
40 def register_types(module):
41 root_module = module.get_root()
43 root_module.begin_section('ns3_module_core')
44 ns3_module_core.register_types(module)
47 import ns3_module_core__local
51 ns3_module_core__local.register_types(module)
53 root_module.end_section('ns3_module_core')
54 root_module.begin_section('ns3_module_simulator')
55 ns3_module_simulator.register_types(module)
58 import ns3_module_simulator__local
62 ns3_module_simulator__local.register_types(module)
64 root_module.end_section('ns3_module_simulator')
65 root_module.begin_section('ns3_module_mobility')
66 ns3_module_mobility.register_types(module)
69 import ns3_module_mobility__local
73 ns3_module_mobility__local.register_types(module)
75 root_module.end_section('ns3_module_mobility')
76 root_module.begin_section('ns3_module_common')
77 ns3_module_common.register_types(module)
80 import ns3_module_common__local
84 ns3_module_common__local.register_types(module)
86 root_module.end_section('ns3_module_common')
87 root_module.begin_section('ns3_module_contrib')
88 ns3_module_contrib.register_types(module)
91 import ns3_module_contrib__local
95 ns3_module_contrib__local.register_types(module)
97 root_module.end_section('ns3_module_contrib')
98 root_module.begin_section('ns3_module_node')
99 ns3_module_node.register_types(module)
102 import ns3_module_node__local
106 ns3_module_node__local.register_types(module)
108 root_module.end_section('ns3_module_node')
109 root_module.begin_section('ns3_module_point_to_point')
110 ns3_module_point_to_point.register_types(module)
113 import ns3_module_point_to_point__local
117 ns3_module_point_to_point__local.register_types(module)
119 root_module.end_section('ns3_module_point_to_point')
120 root_module.begin_section('ns3_module_stats')
121 ns3_module_stats.register_types(module)
124 import ns3_module_stats__local
128 ns3_module_stats__local.register_types(module)
130 root_module.end_section('ns3_module_stats')
131 root_module.begin_section('ns3_module_internet_stack')
132 ns3_module_internet_stack.register_types(module)
135 import ns3_module_internet_stack__local
139 ns3_module_internet_stack__local.register_types(module)
141 root_module.end_section('ns3_module_internet_stack')
142 root_module.begin_section('ns3_module_wifi')
143 ns3_module_wifi.register_types(module)
146 import ns3_module_wifi__local
150 ns3_module_wifi__local.register_types(module)
152 root_module.end_section('ns3_module_wifi')
153 root_module.begin_section('ns3_module_csma')
154 ns3_module_csma.register_types(module)
157 import ns3_module_csma__local
161 ns3_module_csma__local.register_types(module)
163 root_module.end_section('ns3_module_csma')
164 root_module.begin_section('ns3_module_emu')
165 ns3_module_emu.register_types(module)
168 import ns3_module_emu__local
172 ns3_module_emu__local.register_types(module)
174 root_module.end_section('ns3_module_emu')
175 root_module.begin_section('ns3_module_bridge')
176 ns3_module_bridge.register_types(module)
179 import ns3_module_bridge__local
183 ns3_module_bridge__local.register_types(module)
185 root_module.end_section('ns3_module_bridge')
186 root_module.begin_section('ns3_module_packet_sink')
187 ns3_module_packet_sink.register_types(module)
190 import ns3_module_packet_sink__local
194 ns3_module_packet_sink__local.register_types(module)
196 root_module.end_section('ns3_module_packet_sink')
197 root_module.begin_section('ns3_module_v4ping')
198 ns3_module_v4ping.register_types(module)
201 import ns3_module_v4ping__local
205 ns3_module_v4ping__local.register_types(module)
207 root_module.end_section('ns3_module_v4ping')
208 root_module.begin_section('ns3_module_global_routing')
209 ns3_module_global_routing.register_types(module)
212 import ns3_module_global_routing__local
216 ns3_module_global_routing__local.register_types(module)
218 root_module.end_section('ns3_module_global_routing')
219 root_module.begin_section('ns3_module_onoff')
220 ns3_module_onoff.register_types(module)
223 import ns3_module_onoff__local
227 ns3_module_onoff__local.register_types(module)
229 root_module.end_section('ns3_module_onoff')
230 root_module.begin_section('ns3_module_olsr')
231 ns3_module_olsr.register_types(module)
234 import ns3_module_olsr__local
238 ns3_module_olsr__local.register_types(module)
240 root_module.end_section('ns3_module_olsr')
241 root_module.begin_section('ns3_module_udp_echo')
242 ns3_module_udp_echo.register_types(module)
245 import ns3_module_udp_echo__local
249 ns3_module_udp_echo__local.register_types(module)
251 root_module.end_section('ns3_module_udp_echo')
252 root_module.begin_section('ns3_module_helper')
253 ns3_module_helper.register_types(module)
256 import ns3_module_helper__local
260 ns3_module_helper__local.register_types(module)
262 root_module.end_section('ns3_module_helper')
263 module.add_container('std::vector< unsigned int >', 'unsigned int', container_type='vector')
264 module.add_container('std::list< unsigned int >', 'unsigned int', container_type='list')
266 ## Register a nested module for the namespace Config
268 nested_module = module.add_cpp_namespace('Config')
269 register_types_ns3_Config(nested_module)
272 ## Register a nested module for the namespace TimeStepPrecision
274 nested_module = module.add_cpp_namespace('TimeStepPrecision')
275 register_types_ns3_TimeStepPrecision(nested_module)
278 ## Register a nested module for the namespace internal
280 nested_module = module.add_cpp_namespace('internal')
281 register_types_ns3_internal(nested_module)
284 ## Register a nested module for the namespace olsr
286 nested_module = module.add_cpp_namespace('olsr')
287 register_types_ns3_olsr(nested_module)
290 def register_types_ns3_Config(module):
291 root_module = module.get_root()
293 module.add_container('std::vector< std::string >', 'std::string', container_type='vector')
295 def register_types_ns3_TimeStepPrecision(module):
296 root_module = module.get_root()
299 def register_types_ns3_internal(module):
300 root_module = module.get_root()
303 def register_types_ns3_olsr(module):
304 root_module = module.get_root()
307 def register_methods(root_module):
308 root_module.begin_section('ns3_module_core')
309 ns3_module_core.register_methods(root_module)
312 import ns3_module_core__local
316 ns3_module_core__local.register_methods(root_module)
318 root_module.end_section('ns3_module_core')
319 root_module.begin_section('ns3_module_simulator')
320 ns3_module_simulator.register_methods(root_module)
323 import ns3_module_simulator__local
327 ns3_module_simulator__local.register_methods(root_module)
329 root_module.end_section('ns3_module_simulator')
330 root_module.begin_section('ns3_module_mobility')
331 ns3_module_mobility.register_methods(root_module)
334 import ns3_module_mobility__local
338 ns3_module_mobility__local.register_methods(root_module)
340 root_module.end_section('ns3_module_mobility')
341 root_module.begin_section('ns3_module_common')
342 ns3_module_common.register_methods(root_module)
345 import ns3_module_common__local
349 ns3_module_common__local.register_methods(root_module)
351 root_module.end_section('ns3_module_common')
352 root_module.begin_section('ns3_module_contrib')
353 ns3_module_contrib.register_methods(root_module)
356 import ns3_module_contrib__local
360 ns3_module_contrib__local.register_methods(root_module)
362 root_module.end_section('ns3_module_contrib')
363 root_module.begin_section('ns3_module_node')
364 ns3_module_node.register_methods(root_module)
367 import ns3_module_node__local
371 ns3_module_node__local.register_methods(root_module)
373 root_module.end_section('ns3_module_node')
374 root_module.begin_section('ns3_module_point_to_point')
375 ns3_module_point_to_point.register_methods(root_module)
378 import ns3_module_point_to_point__local
382 ns3_module_point_to_point__local.register_methods(root_module)
384 root_module.end_section('ns3_module_point_to_point')
385 root_module.begin_section('ns3_module_stats')
386 ns3_module_stats.register_methods(root_module)
389 import ns3_module_stats__local
393 ns3_module_stats__local.register_methods(root_module)
395 root_module.end_section('ns3_module_stats')
396 root_module.begin_section('ns3_module_internet_stack')
397 ns3_module_internet_stack.register_methods(root_module)
400 import ns3_module_internet_stack__local
404 ns3_module_internet_stack__local.register_methods(root_module)
406 root_module.end_section('ns3_module_internet_stack')
407 root_module.begin_section('ns3_module_wifi')
408 ns3_module_wifi.register_methods(root_module)
411 import ns3_module_wifi__local
415 ns3_module_wifi__local.register_methods(root_module)
417 root_module.end_section('ns3_module_wifi')
418 root_module.begin_section('ns3_module_csma')
419 ns3_module_csma.register_methods(root_module)
422 import ns3_module_csma__local
426 ns3_module_csma__local.register_methods(root_module)
428 root_module.end_section('ns3_module_csma')
429 root_module.begin_section('ns3_module_emu')
430 ns3_module_emu.register_methods(root_module)
433 import ns3_module_emu__local
437 ns3_module_emu__local.register_methods(root_module)
439 root_module.end_section('ns3_module_emu')
440 root_module.begin_section('ns3_module_bridge')
441 ns3_module_bridge.register_methods(root_module)
444 import ns3_module_bridge__local
448 ns3_module_bridge__local.register_methods(root_module)
450 root_module.end_section('ns3_module_bridge')
451 root_module.begin_section('ns3_module_packet_sink')
452 ns3_module_packet_sink.register_methods(root_module)
455 import ns3_module_packet_sink__local
459 ns3_module_packet_sink__local.register_methods(root_module)
461 root_module.end_section('ns3_module_packet_sink')
462 root_module.begin_section('ns3_module_v4ping')
463 ns3_module_v4ping.register_methods(root_module)
466 import ns3_module_v4ping__local
470 ns3_module_v4ping__local.register_methods(root_module)
472 root_module.end_section('ns3_module_v4ping')
473 root_module.begin_section('ns3_module_global_routing')
474 ns3_module_global_routing.register_methods(root_module)
477 import ns3_module_global_routing__local
481 ns3_module_global_routing__local.register_methods(root_module)
483 root_module.end_section('ns3_module_global_routing')
484 root_module.begin_section('ns3_module_onoff')
485 ns3_module_onoff.register_methods(root_module)
488 import ns3_module_onoff__local
492 ns3_module_onoff__local.register_methods(root_module)
494 root_module.end_section('ns3_module_onoff')
495 root_module.begin_section('ns3_module_olsr')
496 ns3_module_olsr.register_methods(root_module)
499 import ns3_module_olsr__local
503 ns3_module_olsr__local.register_methods(root_module)
505 root_module.end_section('ns3_module_olsr')
506 root_module.begin_section('ns3_module_udp_echo')
507 ns3_module_udp_echo.register_methods(root_module)
510 import ns3_module_udp_echo__local
514 ns3_module_udp_echo__local.register_methods(root_module)
516 root_module.end_section('ns3_module_udp_echo')
517 root_module.begin_section('ns3_module_helper')
518 ns3_module_helper.register_methods(root_module)
521 import ns3_module_helper__local
525 ns3_module_helper__local.register_methods(root_module)
527 root_module.end_section('ns3_module_helper')
530 def register_functions(root_module):
532 root_module.begin_section('ns3_module_core')
533 ns3_module_core.register_functions(root_module)
536 import ns3_module_core__local
540 ns3_module_core__local.register_functions(root_module)
542 root_module.end_section('ns3_module_core')
543 root_module.begin_section('ns3_module_simulator')
544 ns3_module_simulator.register_functions(root_module)
547 import ns3_module_simulator__local
551 ns3_module_simulator__local.register_functions(root_module)
553 root_module.end_section('ns3_module_simulator')
554 root_module.begin_section('ns3_module_mobility')
555 ns3_module_mobility.register_functions(root_module)
558 import ns3_module_mobility__local
562 ns3_module_mobility__local.register_functions(root_module)
564 root_module.end_section('ns3_module_mobility')
565 root_module.begin_section('ns3_module_common')
566 ns3_module_common.register_functions(root_module)
569 import ns3_module_common__local
573 ns3_module_common__local.register_functions(root_module)
575 root_module.end_section('ns3_module_common')
576 root_module.begin_section('ns3_module_contrib')
577 ns3_module_contrib.register_functions(root_module)
580 import ns3_module_contrib__local
584 ns3_module_contrib__local.register_functions(root_module)
586 root_module.end_section('ns3_module_contrib')
587 root_module.begin_section('ns3_module_node')
588 ns3_module_node.register_functions(root_module)
591 import ns3_module_node__local
595 ns3_module_node__local.register_functions(root_module)
597 root_module.end_section('ns3_module_node')
598 root_module.begin_section('ns3_module_point_to_point')
599 ns3_module_point_to_point.register_functions(root_module)
602 import ns3_module_point_to_point__local
606 ns3_module_point_to_point__local.register_functions(root_module)
608 root_module.end_section('ns3_module_point_to_point')
609 root_module.begin_section('ns3_module_stats')
610 ns3_module_stats.register_functions(root_module)
613 import ns3_module_stats__local
617 ns3_module_stats__local.register_functions(root_module)
619 root_module.end_section('ns3_module_stats')
620 root_module.begin_section('ns3_module_internet_stack')
621 ns3_module_internet_stack.register_functions(root_module)
624 import ns3_module_internet_stack__local
628 ns3_module_internet_stack__local.register_functions(root_module)
630 root_module.end_section('ns3_module_internet_stack')
631 root_module.begin_section('ns3_module_wifi')
632 ns3_module_wifi.register_functions(root_module)
635 import ns3_module_wifi__local
639 ns3_module_wifi__local.register_functions(root_module)
641 root_module.end_section('ns3_module_wifi')
642 root_module.begin_section('ns3_module_csma')
643 ns3_module_csma.register_functions(root_module)
646 import ns3_module_csma__local
650 ns3_module_csma__local.register_functions(root_module)
652 root_module.end_section('ns3_module_csma')
653 root_module.begin_section('ns3_module_emu')
654 ns3_module_emu.register_functions(root_module)
657 import ns3_module_emu__local
661 ns3_module_emu__local.register_functions(root_module)
663 root_module.end_section('ns3_module_emu')
664 root_module.begin_section('ns3_module_bridge')
665 ns3_module_bridge.register_functions(root_module)
668 import ns3_module_bridge__local
672 ns3_module_bridge__local.register_functions(root_module)
674 root_module.end_section('ns3_module_bridge')
675 root_module.begin_section('ns3_module_packet_sink')
676 ns3_module_packet_sink.register_functions(root_module)
679 import ns3_module_packet_sink__local
683 ns3_module_packet_sink__local.register_functions(root_module)
685 root_module.end_section('ns3_module_packet_sink')
686 root_module.begin_section('ns3_module_v4ping')
687 ns3_module_v4ping.register_functions(root_module)
690 import ns3_module_v4ping__local
694 ns3_module_v4ping__local.register_functions(root_module)
696 root_module.end_section('ns3_module_v4ping')
697 root_module.begin_section('ns3_module_global_routing')
698 ns3_module_global_routing.register_functions(root_module)
701 import ns3_module_global_routing__local
705 ns3_module_global_routing__local.register_functions(root_module)
707 root_module.end_section('ns3_module_global_routing')
708 root_module.begin_section('ns3_module_onoff')
709 ns3_module_onoff.register_functions(root_module)
712 import ns3_module_onoff__local
716 ns3_module_onoff__local.register_functions(root_module)
718 root_module.end_section('ns3_module_onoff')
719 root_module.begin_section('ns3_module_olsr')
720 ns3_module_olsr.register_functions(root_module)
723 import ns3_module_olsr__local
727 ns3_module_olsr__local.register_functions(root_module)
729 root_module.end_section('ns3_module_olsr')
730 root_module.begin_section('ns3_module_udp_echo')
731 ns3_module_udp_echo.register_functions(root_module)
734 import ns3_module_udp_echo__local
738 ns3_module_udp_echo__local.register_functions(root_module)
740 root_module.end_section('ns3_module_udp_echo')
741 root_module.begin_section('ns3_module_helper')
742 ns3_module_helper.register_functions(root_module)
745 import ns3_module_helper__local
749 ns3_module_helper__local.register_functions(root_module)
751 root_module.end_section('ns3_module_helper')
752 register_functions_ns3_Config(module.get_submodule('Config'), root_module)
753 register_functions_ns3_TimeStepPrecision(module.get_submodule('TimeStepPrecision'), root_module)
754 register_functions_ns3_internal(module.get_submodule('internal'), root_module)
755 register_functions_ns3_olsr(module.get_submodule('olsr'), root_module)
758 def register_functions_ns3_Config(module, root_module):
761 def register_functions_ns3_TimeStepPrecision(module, root_module):
764 def register_functions_ns3_internal(module, root_module):
767 def register_functions_ns3_olsr(module, root_module):
771 out = FileCodeSink(sys.stdout)
772 root_module = module_init()
773 register_types(root_module)
774 register_methods(root_module)
775 register_functions(root_module)
776 root_module.generate(out)
778 if __name__ == '__main__':