Python: new pybindgen, rescan API definitions, new API definition files are more multi-line and hopefully easier to read
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_internet_stack
23 import ns3_module_wifi
24 import ns3_module_csma
25 import ns3_module_bridge
26 import ns3_module_packet_sink
27 import ns3_module_global_routing
28 import ns3_module_onoff
29 import ns3_module_olsr
30 import ns3_module_udp_echo
31 import ns3_module_helper
34 root_module = Module('ns3', cpp_namespace='::ns3')
37 def register_types(module):
38 root_module = module.get_root()
40 root_module.begin_section('ns3_module_core')
41 ns3_module_core.register_types(module)
44 import ns3_module_core__local
48 ns3_module_core__local.register_types(module)
50 root_module.end_section('ns3_module_core')
51 root_module.begin_section('ns3_module_simulator')
52 ns3_module_simulator.register_types(module)
55 import ns3_module_simulator__local
59 ns3_module_simulator__local.register_types(module)
61 root_module.end_section('ns3_module_simulator')
62 root_module.begin_section('ns3_module_mobility')
63 ns3_module_mobility.register_types(module)
66 import ns3_module_mobility__local
70 ns3_module_mobility__local.register_types(module)
72 root_module.end_section('ns3_module_mobility')
73 root_module.begin_section('ns3_module_common')
74 ns3_module_common.register_types(module)
77 import ns3_module_common__local
81 ns3_module_common__local.register_types(module)
83 root_module.end_section('ns3_module_common')
84 root_module.begin_section('ns3_module_contrib')
85 ns3_module_contrib.register_types(module)
88 import ns3_module_contrib__local
92 ns3_module_contrib__local.register_types(module)
94 root_module.end_section('ns3_module_contrib')
95 root_module.begin_section('ns3_module_node')
96 ns3_module_node.register_types(module)
99 import ns3_module_node__local
103 ns3_module_node__local.register_types(module)
105 root_module.end_section('ns3_module_node')
106 root_module.begin_section('ns3_module_point_to_point')
107 ns3_module_point_to_point.register_types(module)
110 import ns3_module_point_to_point__local
114 ns3_module_point_to_point__local.register_types(module)
116 root_module.end_section('ns3_module_point_to_point')
117 root_module.begin_section('ns3_module_internet_stack')
118 ns3_module_internet_stack.register_types(module)
121 import ns3_module_internet_stack__local
125 ns3_module_internet_stack__local.register_types(module)
127 root_module.end_section('ns3_module_internet_stack')
128 root_module.begin_section('ns3_module_wifi')
129 ns3_module_wifi.register_types(module)
132 import ns3_module_wifi__local
136 ns3_module_wifi__local.register_types(module)
138 root_module.end_section('ns3_module_wifi')
139 root_module.begin_section('ns3_module_csma')
140 ns3_module_csma.register_types(module)
143 import ns3_module_csma__local
147 ns3_module_csma__local.register_types(module)
149 root_module.end_section('ns3_module_csma')
150 root_module.begin_section('ns3_module_bridge')
151 ns3_module_bridge.register_types(module)
154 import ns3_module_bridge__local
158 ns3_module_bridge__local.register_types(module)
160 root_module.end_section('ns3_module_bridge')
161 root_module.begin_section('ns3_module_packet_sink')
162 ns3_module_packet_sink.register_types(module)
165 import ns3_module_packet_sink__local
169 ns3_module_packet_sink__local.register_types(module)
171 root_module.end_section('ns3_module_packet_sink')
172 root_module.begin_section('ns3_module_global_routing')
173 ns3_module_global_routing.register_types(module)
176 import ns3_module_global_routing__local
180 ns3_module_global_routing__local.register_types(module)
182 root_module.end_section('ns3_module_global_routing')
183 root_module.begin_section('ns3_module_onoff')
184 ns3_module_onoff.register_types(module)
187 import ns3_module_onoff__local
191 ns3_module_onoff__local.register_types(module)
193 root_module.end_section('ns3_module_onoff')
194 root_module.begin_section('ns3_module_olsr')
195 ns3_module_olsr.register_types(module)
198 import ns3_module_olsr__local
202 ns3_module_olsr__local.register_types(module)
204 root_module.end_section('ns3_module_olsr')
205 root_module.begin_section('ns3_module_udp_echo')
206 ns3_module_udp_echo.register_types(module)
209 import ns3_module_udp_echo__local
213 ns3_module_udp_echo__local.register_types(module)
215 root_module.end_section('ns3_module_udp_echo')
216 root_module.begin_section('ns3_module_helper')
217 ns3_module_helper.register_types(module)
220 import ns3_module_helper__local
224 ns3_module_helper__local.register_types(module)
226 root_module.end_section('ns3_module_helper')
228 ## Register a nested module for the namespace internal
230 nested_module = module.add_cpp_namespace('internal')
231 register_types_ns3_internal(nested_module)
234 ## Register a nested module for the namespace TimeStepPrecision
236 nested_module = module.add_cpp_namespace('TimeStepPrecision')
237 register_types_ns3_TimeStepPrecision(nested_module)
240 ## Register a nested module for the namespace Config
242 nested_module = module.add_cpp_namespace('Config')
243 register_types_ns3_Config(nested_module)
246 ## Register a nested module for the namespace olsr
248 nested_module = module.add_cpp_namespace('olsr')
249 register_types_ns3_olsr(nested_module)
252 def register_types_ns3_internal(module):
253 root_module = module.get_root()
256 def register_types_ns3_TimeStepPrecision(module):
257 root_module = module.get_root()
260 def register_types_ns3_Config(module):
261 root_module = module.get_root()
264 def register_types_ns3_olsr(module):
265 root_module = module.get_root()
268 def register_methods(root_module):
269 root_module.begin_section('ns3_module_core')
270 ns3_module_core.register_methods(root_module)
273 import ns3_module_core__local
277 ns3_module_core__local.register_methods(root_module)
279 root_module.end_section('ns3_module_core')
280 root_module.begin_section('ns3_module_simulator')
281 ns3_module_simulator.register_methods(root_module)
284 import ns3_module_simulator__local
288 ns3_module_simulator__local.register_methods(root_module)
290 root_module.end_section('ns3_module_simulator')
291 root_module.begin_section('ns3_module_mobility')
292 ns3_module_mobility.register_methods(root_module)
295 import ns3_module_mobility__local
299 ns3_module_mobility__local.register_methods(root_module)
301 root_module.end_section('ns3_module_mobility')
302 root_module.begin_section('ns3_module_common')
303 ns3_module_common.register_methods(root_module)
306 import ns3_module_common__local
310 ns3_module_common__local.register_methods(root_module)
312 root_module.end_section('ns3_module_common')
313 root_module.begin_section('ns3_module_contrib')
314 ns3_module_contrib.register_methods(root_module)
317 import ns3_module_contrib__local
321 ns3_module_contrib__local.register_methods(root_module)
323 root_module.end_section('ns3_module_contrib')
324 root_module.begin_section('ns3_module_node')
325 ns3_module_node.register_methods(root_module)
328 import ns3_module_node__local
332 ns3_module_node__local.register_methods(root_module)
334 root_module.end_section('ns3_module_node')
335 root_module.begin_section('ns3_module_point_to_point')
336 ns3_module_point_to_point.register_methods(root_module)
339 import ns3_module_point_to_point__local
343 ns3_module_point_to_point__local.register_methods(root_module)
345 root_module.end_section('ns3_module_point_to_point')
346 root_module.begin_section('ns3_module_internet_stack')
347 ns3_module_internet_stack.register_methods(root_module)
350 import ns3_module_internet_stack__local
354 ns3_module_internet_stack__local.register_methods(root_module)
356 root_module.end_section('ns3_module_internet_stack')
357 root_module.begin_section('ns3_module_wifi')
358 ns3_module_wifi.register_methods(root_module)
361 import ns3_module_wifi__local
365 ns3_module_wifi__local.register_methods(root_module)
367 root_module.end_section('ns3_module_wifi')
368 root_module.begin_section('ns3_module_csma')
369 ns3_module_csma.register_methods(root_module)
372 import ns3_module_csma__local
376 ns3_module_csma__local.register_methods(root_module)
378 root_module.end_section('ns3_module_csma')
379 root_module.begin_section('ns3_module_bridge')
380 ns3_module_bridge.register_methods(root_module)
383 import ns3_module_bridge__local
387 ns3_module_bridge__local.register_methods(root_module)
389 root_module.end_section('ns3_module_bridge')
390 root_module.begin_section('ns3_module_packet_sink')
391 ns3_module_packet_sink.register_methods(root_module)
394 import ns3_module_packet_sink__local
398 ns3_module_packet_sink__local.register_methods(root_module)
400 root_module.end_section('ns3_module_packet_sink')
401 root_module.begin_section('ns3_module_global_routing')
402 ns3_module_global_routing.register_methods(root_module)
405 import ns3_module_global_routing__local
409 ns3_module_global_routing__local.register_methods(root_module)
411 root_module.end_section('ns3_module_global_routing')
412 root_module.begin_section('ns3_module_onoff')
413 ns3_module_onoff.register_methods(root_module)
416 import ns3_module_onoff__local
420 ns3_module_onoff__local.register_methods(root_module)
422 root_module.end_section('ns3_module_onoff')
423 root_module.begin_section('ns3_module_olsr')
424 ns3_module_olsr.register_methods(root_module)
427 import ns3_module_olsr__local
431 ns3_module_olsr__local.register_methods(root_module)
433 root_module.end_section('ns3_module_olsr')
434 root_module.begin_section('ns3_module_udp_echo')
435 ns3_module_udp_echo.register_methods(root_module)
438 import ns3_module_udp_echo__local
442 ns3_module_udp_echo__local.register_methods(root_module)
444 root_module.end_section('ns3_module_udp_echo')
445 root_module.begin_section('ns3_module_helper')
446 ns3_module_helper.register_methods(root_module)
449 import ns3_module_helper__local
453 ns3_module_helper__local.register_methods(root_module)
455 root_module.end_section('ns3_module_helper')
458 def register_functions(root_module):
460 root_module.begin_section('ns3_module_core')
461 ns3_module_core.register_functions(root_module)
464 import ns3_module_core__local
468 ns3_module_core__local.register_functions(root_module)
470 root_module.end_section('ns3_module_core')
471 root_module.begin_section('ns3_module_simulator')
472 ns3_module_simulator.register_functions(root_module)
475 import ns3_module_simulator__local
479 ns3_module_simulator__local.register_functions(root_module)
481 root_module.end_section('ns3_module_simulator')
482 root_module.begin_section('ns3_module_mobility')
483 ns3_module_mobility.register_functions(root_module)
486 import ns3_module_mobility__local
490 ns3_module_mobility__local.register_functions(root_module)
492 root_module.end_section('ns3_module_mobility')
493 root_module.begin_section('ns3_module_common')
494 ns3_module_common.register_functions(root_module)
497 import ns3_module_common__local
501 ns3_module_common__local.register_functions(root_module)
503 root_module.end_section('ns3_module_common')
504 root_module.begin_section('ns3_module_contrib')
505 ns3_module_contrib.register_functions(root_module)
508 import ns3_module_contrib__local
512 ns3_module_contrib__local.register_functions(root_module)
514 root_module.end_section('ns3_module_contrib')
515 root_module.begin_section('ns3_module_node')
516 ns3_module_node.register_functions(root_module)
519 import ns3_module_node__local
523 ns3_module_node__local.register_functions(root_module)
525 root_module.end_section('ns3_module_node')
526 root_module.begin_section('ns3_module_point_to_point')
527 ns3_module_point_to_point.register_functions(root_module)
530 import ns3_module_point_to_point__local
534 ns3_module_point_to_point__local.register_functions(root_module)
536 root_module.end_section('ns3_module_point_to_point')
537 root_module.begin_section('ns3_module_internet_stack')
538 ns3_module_internet_stack.register_functions(root_module)
541 import ns3_module_internet_stack__local
545 ns3_module_internet_stack__local.register_functions(root_module)
547 root_module.end_section('ns3_module_internet_stack')
548 root_module.begin_section('ns3_module_wifi')
549 ns3_module_wifi.register_functions(root_module)
552 import ns3_module_wifi__local
556 ns3_module_wifi__local.register_functions(root_module)
558 root_module.end_section('ns3_module_wifi')
559 root_module.begin_section('ns3_module_csma')
560 ns3_module_csma.register_functions(root_module)
563 import ns3_module_csma__local
567 ns3_module_csma__local.register_functions(root_module)
569 root_module.end_section('ns3_module_csma')
570 root_module.begin_section('ns3_module_bridge')
571 ns3_module_bridge.register_functions(root_module)
574 import ns3_module_bridge__local
578 ns3_module_bridge__local.register_functions(root_module)
580 root_module.end_section('ns3_module_bridge')
581 root_module.begin_section('ns3_module_packet_sink')
582 ns3_module_packet_sink.register_functions(root_module)
585 import ns3_module_packet_sink__local
589 ns3_module_packet_sink__local.register_functions(root_module)
591 root_module.end_section('ns3_module_packet_sink')
592 root_module.begin_section('ns3_module_global_routing')
593 ns3_module_global_routing.register_functions(root_module)
596 import ns3_module_global_routing__local
600 ns3_module_global_routing__local.register_functions(root_module)
602 root_module.end_section('ns3_module_global_routing')
603 root_module.begin_section('ns3_module_onoff')
604 ns3_module_onoff.register_functions(root_module)
607 import ns3_module_onoff__local
611 ns3_module_onoff__local.register_functions(root_module)
613 root_module.end_section('ns3_module_onoff')
614 root_module.begin_section('ns3_module_olsr')
615 ns3_module_olsr.register_functions(root_module)
618 import ns3_module_olsr__local
622 ns3_module_olsr__local.register_functions(root_module)
624 root_module.end_section('ns3_module_olsr')
625 root_module.begin_section('ns3_module_udp_echo')
626 ns3_module_udp_echo.register_functions(root_module)
629 import ns3_module_udp_echo__local
633 ns3_module_udp_echo__local.register_functions(root_module)
635 root_module.end_section('ns3_module_udp_echo')
636 root_module.begin_section('ns3_module_helper')
637 ns3_module_helper.register_functions(root_module)
640 import ns3_module_helper__local
644 ns3_module_helper__local.register_functions(root_module)
646 root_module.end_section('ns3_module_helper')
647 register_functions_ns3_internal(module.get_submodule('internal'), root_module)
648 register_functions_ns3_TimeStepPrecision(module.get_submodule('TimeStepPrecision'), root_module)
649 register_functions_ns3_Config(module.get_submodule('Config'), root_module)
650 register_functions_ns3_olsr(module.get_submodule('olsr'), root_module)
653 def register_functions_ns3_internal(module, root_module):
656 def register_functions_ns3_TimeStepPrecision(module, root_module):
659 def register_functions_ns3_Config(module, root_module):
662 def register_functions_ns3_olsr(module, root_module):
666 out = FileCodeSink(sys.stdout)
667 root_module = module_init()
668 register_types(root_module)
669 register_methods(root_module)
670 register_functions(root_module)
671 root_module.generate(out)
673 if __name__ == '__main__':