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 internal
268 nested_module = module.add_cpp_namespace('internal')
269 register_types_ns3_internal(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 Config
280 nested_module = module.add_cpp_namespace('Config')
281 register_types_ns3_Config(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_internal(module):
291 root_module = module.get_root()
294 def register_types_ns3_TimeStepPrecision(module):
295 root_module = module.get_root()
298 def register_types_ns3_Config(module):
299 root_module = module.get_root()
301 module.add_container('std::vector< std::string >', 'std::string', container_type='vector')
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_internal(module.get_submodule('internal'), root_module)
753 register_functions_ns3_TimeStepPrecision(module.get_submodule('TimeStepPrecision'), root_module)
754 register_functions_ns3_Config(module.get_submodule('Config'), root_module)
755 register_functions_ns3_olsr(module.get_submodule('olsr'), root_module)
758 def register_functions_ns3_internal(module, root_module):
761 def register_functions_ns3_TimeStepPrecision(module, root_module):
764 def register_functions_ns3_Config(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__':