1 from pybindgen import Module, FileCodeSink, write_preamble, param, retval
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_packet_sink
26 import ns3_module_global_routing
27 import ns3_module_onoff
28 import ns3_module_olsr
29 import ns3_module_udp_echo
30 import ns3_module_helper
33 root_module = Module('ns3', cpp_namespace='::ns3')
36 def register_types(module):
37 root_module = module.get_root()
39 root_module.begin_section('ns3_module_core')
40 ns3_module_core.register_types(module)
43 import ns3_module_core__local
47 ns3_module_core__local.register_types(module)
49 root_module.end_section('ns3_module_core')
50 root_module.begin_section('ns3_module_simulator')
51 ns3_module_simulator.register_types(module)
54 import ns3_module_simulator__local
58 ns3_module_simulator__local.register_types(module)
60 root_module.end_section('ns3_module_simulator')
61 root_module.begin_section('ns3_module_mobility')
62 ns3_module_mobility.register_types(module)
65 import ns3_module_mobility__local
69 ns3_module_mobility__local.register_types(module)
71 root_module.end_section('ns3_module_mobility')
72 root_module.begin_section('ns3_module_common')
73 ns3_module_common.register_types(module)
76 import ns3_module_common__local
80 ns3_module_common__local.register_types(module)
82 root_module.end_section('ns3_module_common')
83 root_module.begin_section('ns3_module_contrib')
84 ns3_module_contrib.register_types(module)
87 import ns3_module_contrib__local
91 ns3_module_contrib__local.register_types(module)
93 root_module.end_section('ns3_module_contrib')
94 root_module.begin_section('ns3_module_node')
95 ns3_module_node.register_types(module)
98 import ns3_module_node__local
102 ns3_module_node__local.register_types(module)
104 root_module.end_section('ns3_module_node')
105 root_module.begin_section('ns3_module_point_to_point')
106 ns3_module_point_to_point.register_types(module)
109 import ns3_module_point_to_point__local
113 ns3_module_point_to_point__local.register_types(module)
115 root_module.end_section('ns3_module_point_to_point')
116 root_module.begin_section('ns3_module_internet_stack')
117 ns3_module_internet_stack.register_types(module)
120 import ns3_module_internet_stack__local
124 ns3_module_internet_stack__local.register_types(module)
126 root_module.end_section('ns3_module_internet_stack')
127 root_module.begin_section('ns3_module_wifi')
128 ns3_module_wifi.register_types(module)
131 import ns3_module_wifi__local
135 ns3_module_wifi__local.register_types(module)
137 root_module.end_section('ns3_module_wifi')
138 root_module.begin_section('ns3_module_csma')
139 ns3_module_csma.register_types(module)
142 import ns3_module_csma__local
146 ns3_module_csma__local.register_types(module)
148 root_module.end_section('ns3_module_csma')
149 root_module.begin_section('ns3_module_packet_sink')
150 ns3_module_packet_sink.register_types(module)
153 import ns3_module_packet_sink__local
157 ns3_module_packet_sink__local.register_types(module)
159 root_module.end_section('ns3_module_packet_sink')
160 root_module.begin_section('ns3_module_global_routing')
161 ns3_module_global_routing.register_types(module)
164 import ns3_module_global_routing__local
168 ns3_module_global_routing__local.register_types(module)
170 root_module.end_section('ns3_module_global_routing')
171 root_module.begin_section('ns3_module_onoff')
172 ns3_module_onoff.register_types(module)
175 import ns3_module_onoff__local
179 ns3_module_onoff__local.register_types(module)
181 root_module.end_section('ns3_module_onoff')
182 root_module.begin_section('ns3_module_olsr')
183 ns3_module_olsr.register_types(module)
186 import ns3_module_olsr__local
190 ns3_module_olsr__local.register_types(module)
192 root_module.end_section('ns3_module_olsr')
193 root_module.begin_section('ns3_module_udp_echo')
194 ns3_module_udp_echo.register_types(module)
197 import ns3_module_udp_echo__local
201 ns3_module_udp_echo__local.register_types(module)
203 root_module.end_section('ns3_module_udp_echo')
204 root_module.begin_section('ns3_module_helper')
205 ns3_module_helper.register_types(module)
208 import ns3_module_helper__local
212 ns3_module_helper__local.register_types(module)
214 root_module.end_section('ns3_module_helper')
216 ## Register a nested module for the namespace internal
218 nested_module = module.add_cpp_namespace('internal')
219 register_types_ns3_internal(nested_module)
222 ## Register a nested module for the namespace TimeStepPrecision
224 nested_module = module.add_cpp_namespace('TimeStepPrecision')
225 register_types_ns3_TimeStepPrecision(nested_module)
228 ## Register a nested module for the namespace Config
230 nested_module = module.add_cpp_namespace('Config')
231 register_types_ns3_Config(nested_module)
234 ## Register a nested module for the namespace olsr
236 nested_module = module.add_cpp_namespace('olsr')
237 register_types_ns3_olsr(nested_module)
240 def register_types_ns3_internal(module):
241 root_module = module.get_root()
244 def register_types_ns3_TimeStepPrecision(module):
245 root_module = module.get_root()
248 def register_types_ns3_Config(module):
249 root_module = module.get_root()
252 def register_types_ns3_olsr(module):
253 root_module = module.get_root()
256 def register_methods(root_module):
257 root_module.begin_section('ns3_module_core')
258 ns3_module_core.register_methods(root_module)
261 import ns3_module_core__local
265 ns3_module_core__local.register_methods(root_module)
267 root_module.end_section('ns3_module_core')
268 root_module.begin_section('ns3_module_simulator')
269 ns3_module_simulator.register_methods(root_module)
272 import ns3_module_simulator__local
276 ns3_module_simulator__local.register_methods(root_module)
278 root_module.end_section('ns3_module_simulator')
279 root_module.begin_section('ns3_module_mobility')
280 ns3_module_mobility.register_methods(root_module)
283 import ns3_module_mobility__local
287 ns3_module_mobility__local.register_methods(root_module)
289 root_module.end_section('ns3_module_mobility')
290 root_module.begin_section('ns3_module_common')
291 ns3_module_common.register_methods(root_module)
294 import ns3_module_common__local
298 ns3_module_common__local.register_methods(root_module)
300 root_module.end_section('ns3_module_common')
301 root_module.begin_section('ns3_module_contrib')
302 ns3_module_contrib.register_methods(root_module)
305 import ns3_module_contrib__local
309 ns3_module_contrib__local.register_methods(root_module)
311 root_module.end_section('ns3_module_contrib')
312 root_module.begin_section('ns3_module_node')
313 ns3_module_node.register_methods(root_module)
316 import ns3_module_node__local
320 ns3_module_node__local.register_methods(root_module)
322 root_module.end_section('ns3_module_node')
323 root_module.begin_section('ns3_module_point_to_point')
324 ns3_module_point_to_point.register_methods(root_module)
327 import ns3_module_point_to_point__local
331 ns3_module_point_to_point__local.register_methods(root_module)
333 root_module.end_section('ns3_module_point_to_point')
334 root_module.begin_section('ns3_module_internet_stack')
335 ns3_module_internet_stack.register_methods(root_module)
338 import ns3_module_internet_stack__local
342 ns3_module_internet_stack__local.register_methods(root_module)
344 root_module.end_section('ns3_module_internet_stack')
345 root_module.begin_section('ns3_module_wifi')
346 ns3_module_wifi.register_methods(root_module)
349 import ns3_module_wifi__local
353 ns3_module_wifi__local.register_methods(root_module)
355 root_module.end_section('ns3_module_wifi')
356 root_module.begin_section('ns3_module_csma')
357 ns3_module_csma.register_methods(root_module)
360 import ns3_module_csma__local
364 ns3_module_csma__local.register_methods(root_module)
366 root_module.end_section('ns3_module_csma')
367 root_module.begin_section('ns3_module_packet_sink')
368 ns3_module_packet_sink.register_methods(root_module)
371 import ns3_module_packet_sink__local
375 ns3_module_packet_sink__local.register_methods(root_module)
377 root_module.end_section('ns3_module_packet_sink')
378 root_module.begin_section('ns3_module_global_routing')
379 ns3_module_global_routing.register_methods(root_module)
382 import ns3_module_global_routing__local
386 ns3_module_global_routing__local.register_methods(root_module)
388 root_module.end_section('ns3_module_global_routing')
389 root_module.begin_section('ns3_module_onoff')
390 ns3_module_onoff.register_methods(root_module)
393 import ns3_module_onoff__local
397 ns3_module_onoff__local.register_methods(root_module)
399 root_module.end_section('ns3_module_onoff')
400 root_module.begin_section('ns3_module_olsr')
401 ns3_module_olsr.register_methods(root_module)
404 import ns3_module_olsr__local
408 ns3_module_olsr__local.register_methods(root_module)
410 root_module.end_section('ns3_module_olsr')
411 root_module.begin_section('ns3_module_udp_echo')
412 ns3_module_udp_echo.register_methods(root_module)
415 import ns3_module_udp_echo__local
419 ns3_module_udp_echo__local.register_methods(root_module)
421 root_module.end_section('ns3_module_udp_echo')
422 root_module.begin_section('ns3_module_helper')
423 ns3_module_helper.register_methods(root_module)
426 import ns3_module_helper__local
430 ns3_module_helper__local.register_methods(root_module)
432 root_module.end_section('ns3_module_helper')
435 def register_functions(root_module):
437 root_module.begin_section('ns3_module_core')
438 ns3_module_core.register_functions(root_module)
441 import ns3_module_core__local
445 ns3_module_core__local.register_functions(root_module)
447 root_module.end_section('ns3_module_core')
448 root_module.begin_section('ns3_module_simulator')
449 ns3_module_simulator.register_functions(root_module)
452 import ns3_module_simulator__local
456 ns3_module_simulator__local.register_functions(root_module)
458 root_module.end_section('ns3_module_simulator')
459 root_module.begin_section('ns3_module_mobility')
460 ns3_module_mobility.register_functions(root_module)
463 import ns3_module_mobility__local
467 ns3_module_mobility__local.register_functions(root_module)
469 root_module.end_section('ns3_module_mobility')
470 root_module.begin_section('ns3_module_common')
471 ns3_module_common.register_functions(root_module)
474 import ns3_module_common__local
478 ns3_module_common__local.register_functions(root_module)
480 root_module.end_section('ns3_module_common')
481 root_module.begin_section('ns3_module_contrib')
482 ns3_module_contrib.register_functions(root_module)
485 import ns3_module_contrib__local
489 ns3_module_contrib__local.register_functions(root_module)
491 root_module.end_section('ns3_module_contrib')
492 root_module.begin_section('ns3_module_node')
493 ns3_module_node.register_functions(root_module)
496 import ns3_module_node__local
500 ns3_module_node__local.register_functions(root_module)
502 root_module.end_section('ns3_module_node')
503 root_module.begin_section('ns3_module_point_to_point')
504 ns3_module_point_to_point.register_functions(root_module)
507 import ns3_module_point_to_point__local
511 ns3_module_point_to_point__local.register_functions(root_module)
513 root_module.end_section('ns3_module_point_to_point')
514 root_module.begin_section('ns3_module_internet_stack')
515 ns3_module_internet_stack.register_functions(root_module)
518 import ns3_module_internet_stack__local
522 ns3_module_internet_stack__local.register_functions(root_module)
524 root_module.end_section('ns3_module_internet_stack')
525 root_module.begin_section('ns3_module_wifi')
526 ns3_module_wifi.register_functions(root_module)
529 import ns3_module_wifi__local
533 ns3_module_wifi__local.register_functions(root_module)
535 root_module.end_section('ns3_module_wifi')
536 root_module.begin_section('ns3_module_csma')
537 ns3_module_csma.register_functions(root_module)
540 import ns3_module_csma__local
544 ns3_module_csma__local.register_functions(root_module)
546 root_module.end_section('ns3_module_csma')
547 root_module.begin_section('ns3_module_packet_sink')
548 ns3_module_packet_sink.register_functions(root_module)
551 import ns3_module_packet_sink__local
555 ns3_module_packet_sink__local.register_functions(root_module)
557 root_module.end_section('ns3_module_packet_sink')
558 root_module.begin_section('ns3_module_global_routing')
559 ns3_module_global_routing.register_functions(root_module)
562 import ns3_module_global_routing__local
566 ns3_module_global_routing__local.register_functions(root_module)
568 root_module.end_section('ns3_module_global_routing')
569 root_module.begin_section('ns3_module_onoff')
570 ns3_module_onoff.register_functions(root_module)
573 import ns3_module_onoff__local
577 ns3_module_onoff__local.register_functions(root_module)
579 root_module.end_section('ns3_module_onoff')
580 root_module.begin_section('ns3_module_olsr')
581 ns3_module_olsr.register_functions(root_module)
584 import ns3_module_olsr__local
588 ns3_module_olsr__local.register_functions(root_module)
590 root_module.end_section('ns3_module_olsr')
591 root_module.begin_section('ns3_module_udp_echo')
592 ns3_module_udp_echo.register_functions(root_module)
595 import ns3_module_udp_echo__local
599 ns3_module_udp_echo__local.register_functions(root_module)
601 root_module.end_section('ns3_module_udp_echo')
602 root_module.begin_section('ns3_module_helper')
603 ns3_module_helper.register_functions(root_module)
606 import ns3_module_helper__local
610 ns3_module_helper__local.register_functions(root_module)
612 root_module.end_section('ns3_module_helper')
613 register_functions_ns3_internal(module.get_submodule('internal'), root_module)
614 register_functions_ns3_TimeStepPrecision(module.get_submodule('TimeStepPrecision'), root_module)
615 register_functions_ns3_Config(module.get_submodule('Config'), root_module)
616 register_functions_ns3_olsr(module.get_submodule('olsr'), root_module)
619 def register_functions_ns3_internal(module, root_module):
622 def register_functions_ns3_TimeStepPrecision(module, root_module):
625 def register_functions_ns3_Config(module, root_module):
628 def register_functions_ns3_olsr(module, root_module):
632 out = FileCodeSink(sys.stdout)
633 root_module = module_init()
634 register_types(root_module)
635 register_methods(root_module)
636 register_functions(root_module)
638 root_module.generate(out)
640 if __name__ == '__main__':