New pybindgen and new API scanning, brings support for comparison operators and + - * / numeric operators.
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
26 import ns3_module_bridge
27 import ns3_module_packet_sink
28 import ns3_module_global_routing
29 import ns3_module_onoff
30 import ns3_module_olsr
31 import ns3_module_udp_echo
32 import ns3_module_helper
35 root_module = Module('ns3', cpp_namespace='::ns3')
38 def register_types(module):
39 root_module = module.get_root()
41 root_module.begin_section('ns3_module_core')
42 ns3_module_core.register_types(module)
45 import ns3_module_core__local
49 ns3_module_core__local.register_types(module)
51 root_module.end_section('ns3_module_core')
52 root_module.begin_section('ns3_module_simulator')
53 ns3_module_simulator.register_types(module)
56 import ns3_module_simulator__local
60 ns3_module_simulator__local.register_types(module)
62 root_module.end_section('ns3_module_simulator')
63 root_module.begin_section('ns3_module_mobility')
64 ns3_module_mobility.register_types(module)
67 import ns3_module_mobility__local
71 ns3_module_mobility__local.register_types(module)
73 root_module.end_section('ns3_module_mobility')
74 root_module.begin_section('ns3_module_common')
75 ns3_module_common.register_types(module)
78 import ns3_module_common__local
82 ns3_module_common__local.register_types(module)
84 root_module.end_section('ns3_module_common')
85 root_module.begin_section('ns3_module_contrib')
86 ns3_module_contrib.register_types(module)
89 import ns3_module_contrib__local
93 ns3_module_contrib__local.register_types(module)
95 root_module.end_section('ns3_module_contrib')
96 root_module.begin_section('ns3_module_node')
97 ns3_module_node.register_types(module)
100 import ns3_module_node__local
104 ns3_module_node__local.register_types(module)
106 root_module.end_section('ns3_module_node')
107 root_module.begin_section('ns3_module_point_to_point')
108 ns3_module_point_to_point.register_types(module)
111 import ns3_module_point_to_point__local
115 ns3_module_point_to_point__local.register_types(module)
117 root_module.end_section('ns3_module_point_to_point')
118 root_module.begin_section('ns3_module_stats')
119 ns3_module_stats.register_types(module)
122 import ns3_module_stats__local
126 ns3_module_stats__local.register_types(module)
128 root_module.end_section('ns3_module_stats')
129 root_module.begin_section('ns3_module_internet_stack')
130 ns3_module_internet_stack.register_types(module)
133 import ns3_module_internet_stack__local
137 ns3_module_internet_stack__local.register_types(module)
139 root_module.end_section('ns3_module_internet_stack')
140 root_module.begin_section('ns3_module_wifi')
141 ns3_module_wifi.register_types(module)
144 import ns3_module_wifi__local
148 ns3_module_wifi__local.register_types(module)
150 root_module.end_section('ns3_module_wifi')
151 root_module.begin_section('ns3_module_csma')
152 ns3_module_csma.register_types(module)
155 import ns3_module_csma__local
159 ns3_module_csma__local.register_types(module)
161 root_module.end_section('ns3_module_csma')
162 root_module.begin_section('ns3_module_bridge')
163 ns3_module_bridge.register_types(module)
166 import ns3_module_bridge__local
170 ns3_module_bridge__local.register_types(module)
172 root_module.end_section('ns3_module_bridge')
173 root_module.begin_section('ns3_module_packet_sink')
174 ns3_module_packet_sink.register_types(module)
177 import ns3_module_packet_sink__local
181 ns3_module_packet_sink__local.register_types(module)
183 root_module.end_section('ns3_module_packet_sink')
184 root_module.begin_section('ns3_module_global_routing')
185 ns3_module_global_routing.register_types(module)
188 import ns3_module_global_routing__local
192 ns3_module_global_routing__local.register_types(module)
194 root_module.end_section('ns3_module_global_routing')
195 root_module.begin_section('ns3_module_onoff')
196 ns3_module_onoff.register_types(module)
199 import ns3_module_onoff__local
203 ns3_module_onoff__local.register_types(module)
205 root_module.end_section('ns3_module_onoff')
206 root_module.begin_section('ns3_module_olsr')
207 ns3_module_olsr.register_types(module)
210 import ns3_module_olsr__local
214 ns3_module_olsr__local.register_types(module)
216 root_module.end_section('ns3_module_olsr')
217 root_module.begin_section('ns3_module_udp_echo')
218 ns3_module_udp_echo.register_types(module)
221 import ns3_module_udp_echo__local
225 ns3_module_udp_echo__local.register_types(module)
227 root_module.end_section('ns3_module_udp_echo')
228 root_module.begin_section('ns3_module_helper')
229 ns3_module_helper.register_types(module)
232 import ns3_module_helper__local
236 ns3_module_helper__local.register_types(module)
238 root_module.end_section('ns3_module_helper')
239 module.add_container('std::vector< unsigned int >', 'unsigned int', container_type='vector')
240 module.add_container('std::list< unsigned int >', 'unsigned int', container_type='list')
242 ## Register a nested module for the namespace internal
244 nested_module = module.add_cpp_namespace('internal')
245 register_types_ns3_internal(nested_module)
248 ## Register a nested module for the namespace TimeStepPrecision
250 nested_module = module.add_cpp_namespace('TimeStepPrecision')
251 register_types_ns3_TimeStepPrecision(nested_module)
254 ## Register a nested module for the namespace Config
256 nested_module = module.add_cpp_namespace('Config')
257 register_types_ns3_Config(nested_module)
260 ## Register a nested module for the namespace olsr
262 nested_module = module.add_cpp_namespace('olsr')
263 register_types_ns3_olsr(nested_module)
266 def register_types_ns3_internal(module):
267 root_module = module.get_root()
270 def register_types_ns3_TimeStepPrecision(module):
271 root_module = module.get_root()
274 def register_types_ns3_Config(module):
275 root_module = module.get_root()
278 def register_types_ns3_olsr(module):
279 root_module = module.get_root()
282 def register_methods(root_module):
283 root_module.begin_section('ns3_module_core')
284 ns3_module_core.register_methods(root_module)
287 import ns3_module_core__local
291 ns3_module_core__local.register_methods(root_module)
293 root_module.end_section('ns3_module_core')
294 root_module.begin_section('ns3_module_simulator')
295 ns3_module_simulator.register_methods(root_module)
298 import ns3_module_simulator__local
302 ns3_module_simulator__local.register_methods(root_module)
304 root_module.end_section('ns3_module_simulator')
305 root_module.begin_section('ns3_module_mobility')
306 ns3_module_mobility.register_methods(root_module)
309 import ns3_module_mobility__local
313 ns3_module_mobility__local.register_methods(root_module)
315 root_module.end_section('ns3_module_mobility')
316 root_module.begin_section('ns3_module_common')
317 ns3_module_common.register_methods(root_module)
320 import ns3_module_common__local
324 ns3_module_common__local.register_methods(root_module)
326 root_module.end_section('ns3_module_common')
327 root_module.begin_section('ns3_module_contrib')
328 ns3_module_contrib.register_methods(root_module)
331 import ns3_module_contrib__local
335 ns3_module_contrib__local.register_methods(root_module)
337 root_module.end_section('ns3_module_contrib')
338 root_module.begin_section('ns3_module_node')
339 ns3_module_node.register_methods(root_module)
342 import ns3_module_node__local
346 ns3_module_node__local.register_methods(root_module)
348 root_module.end_section('ns3_module_node')
349 root_module.begin_section('ns3_module_point_to_point')
350 ns3_module_point_to_point.register_methods(root_module)
353 import ns3_module_point_to_point__local
357 ns3_module_point_to_point__local.register_methods(root_module)
359 root_module.end_section('ns3_module_point_to_point')
360 root_module.begin_section('ns3_module_stats')
361 ns3_module_stats.register_methods(root_module)
364 import ns3_module_stats__local
368 ns3_module_stats__local.register_methods(root_module)
370 root_module.end_section('ns3_module_stats')
371 root_module.begin_section('ns3_module_internet_stack')
372 ns3_module_internet_stack.register_methods(root_module)
375 import ns3_module_internet_stack__local
379 ns3_module_internet_stack__local.register_methods(root_module)
381 root_module.end_section('ns3_module_internet_stack')
382 root_module.begin_section('ns3_module_wifi')
383 ns3_module_wifi.register_methods(root_module)
386 import ns3_module_wifi__local
390 ns3_module_wifi__local.register_methods(root_module)
392 root_module.end_section('ns3_module_wifi')
393 root_module.begin_section('ns3_module_csma')
394 ns3_module_csma.register_methods(root_module)
397 import ns3_module_csma__local
401 ns3_module_csma__local.register_methods(root_module)
403 root_module.end_section('ns3_module_csma')
404 root_module.begin_section('ns3_module_bridge')
405 ns3_module_bridge.register_methods(root_module)
408 import ns3_module_bridge__local
412 ns3_module_bridge__local.register_methods(root_module)
414 root_module.end_section('ns3_module_bridge')
415 root_module.begin_section('ns3_module_packet_sink')
416 ns3_module_packet_sink.register_methods(root_module)
419 import ns3_module_packet_sink__local
423 ns3_module_packet_sink__local.register_methods(root_module)
425 root_module.end_section('ns3_module_packet_sink')
426 root_module.begin_section('ns3_module_global_routing')
427 ns3_module_global_routing.register_methods(root_module)
430 import ns3_module_global_routing__local
434 ns3_module_global_routing__local.register_methods(root_module)
436 root_module.end_section('ns3_module_global_routing')
437 root_module.begin_section('ns3_module_onoff')
438 ns3_module_onoff.register_methods(root_module)
441 import ns3_module_onoff__local
445 ns3_module_onoff__local.register_methods(root_module)
447 root_module.end_section('ns3_module_onoff')
448 root_module.begin_section('ns3_module_olsr')
449 ns3_module_olsr.register_methods(root_module)
452 import ns3_module_olsr__local
456 ns3_module_olsr__local.register_methods(root_module)
458 root_module.end_section('ns3_module_olsr')
459 root_module.begin_section('ns3_module_udp_echo')
460 ns3_module_udp_echo.register_methods(root_module)
463 import ns3_module_udp_echo__local
467 ns3_module_udp_echo__local.register_methods(root_module)
469 root_module.end_section('ns3_module_udp_echo')
470 root_module.begin_section('ns3_module_helper')
471 ns3_module_helper.register_methods(root_module)
474 import ns3_module_helper__local
478 ns3_module_helper__local.register_methods(root_module)
480 root_module.end_section('ns3_module_helper')
483 def register_functions(root_module):
485 root_module.begin_section('ns3_module_core')
486 ns3_module_core.register_functions(root_module)
489 import ns3_module_core__local
493 ns3_module_core__local.register_functions(root_module)
495 root_module.end_section('ns3_module_core')
496 root_module.begin_section('ns3_module_simulator')
497 ns3_module_simulator.register_functions(root_module)
500 import ns3_module_simulator__local
504 ns3_module_simulator__local.register_functions(root_module)
506 root_module.end_section('ns3_module_simulator')
507 root_module.begin_section('ns3_module_mobility')
508 ns3_module_mobility.register_functions(root_module)
511 import ns3_module_mobility__local
515 ns3_module_mobility__local.register_functions(root_module)
517 root_module.end_section('ns3_module_mobility')
518 root_module.begin_section('ns3_module_common')
519 ns3_module_common.register_functions(root_module)
522 import ns3_module_common__local
526 ns3_module_common__local.register_functions(root_module)
528 root_module.end_section('ns3_module_common')
529 root_module.begin_section('ns3_module_contrib')
530 ns3_module_contrib.register_functions(root_module)
533 import ns3_module_contrib__local
537 ns3_module_contrib__local.register_functions(root_module)
539 root_module.end_section('ns3_module_contrib')
540 root_module.begin_section('ns3_module_node')
541 ns3_module_node.register_functions(root_module)
544 import ns3_module_node__local
548 ns3_module_node__local.register_functions(root_module)
550 root_module.end_section('ns3_module_node')
551 root_module.begin_section('ns3_module_point_to_point')
552 ns3_module_point_to_point.register_functions(root_module)
555 import ns3_module_point_to_point__local
559 ns3_module_point_to_point__local.register_functions(root_module)
561 root_module.end_section('ns3_module_point_to_point')
562 root_module.begin_section('ns3_module_stats')
563 ns3_module_stats.register_functions(root_module)
566 import ns3_module_stats__local
570 ns3_module_stats__local.register_functions(root_module)
572 root_module.end_section('ns3_module_stats')
573 root_module.begin_section('ns3_module_internet_stack')
574 ns3_module_internet_stack.register_functions(root_module)
577 import ns3_module_internet_stack__local
581 ns3_module_internet_stack__local.register_functions(root_module)
583 root_module.end_section('ns3_module_internet_stack')
584 root_module.begin_section('ns3_module_wifi')
585 ns3_module_wifi.register_functions(root_module)
588 import ns3_module_wifi__local
592 ns3_module_wifi__local.register_functions(root_module)
594 root_module.end_section('ns3_module_wifi')
595 root_module.begin_section('ns3_module_csma')
596 ns3_module_csma.register_functions(root_module)
599 import ns3_module_csma__local
603 ns3_module_csma__local.register_functions(root_module)
605 root_module.end_section('ns3_module_csma')
606 root_module.begin_section('ns3_module_bridge')
607 ns3_module_bridge.register_functions(root_module)
610 import ns3_module_bridge__local
614 ns3_module_bridge__local.register_functions(root_module)
616 root_module.end_section('ns3_module_bridge')
617 root_module.begin_section('ns3_module_packet_sink')
618 ns3_module_packet_sink.register_functions(root_module)
621 import ns3_module_packet_sink__local
625 ns3_module_packet_sink__local.register_functions(root_module)
627 root_module.end_section('ns3_module_packet_sink')
628 root_module.begin_section('ns3_module_global_routing')
629 ns3_module_global_routing.register_functions(root_module)
632 import ns3_module_global_routing__local
636 ns3_module_global_routing__local.register_functions(root_module)
638 root_module.end_section('ns3_module_global_routing')
639 root_module.begin_section('ns3_module_onoff')
640 ns3_module_onoff.register_functions(root_module)
643 import ns3_module_onoff__local
647 ns3_module_onoff__local.register_functions(root_module)
649 root_module.end_section('ns3_module_onoff')
650 root_module.begin_section('ns3_module_olsr')
651 ns3_module_olsr.register_functions(root_module)
654 import ns3_module_olsr__local
658 ns3_module_olsr__local.register_functions(root_module)
660 root_module.end_section('ns3_module_olsr')
661 root_module.begin_section('ns3_module_udp_echo')
662 ns3_module_udp_echo.register_functions(root_module)
665 import ns3_module_udp_echo__local
669 ns3_module_udp_echo__local.register_functions(root_module)
671 root_module.end_section('ns3_module_udp_echo')
672 root_module.begin_section('ns3_module_helper')
673 ns3_module_helper.register_functions(root_module)
676 import ns3_module_helper__local
680 ns3_module_helper__local.register_functions(root_module)
682 root_module.end_section('ns3_module_helper')
683 register_functions_ns3_internal(module.get_submodule('internal'), root_module)
684 register_functions_ns3_TimeStepPrecision(module.get_submodule('TimeStepPrecision'), root_module)
685 register_functions_ns3_Config(module.get_submodule('Config'), root_module)
686 register_functions_ns3_olsr(module.get_submodule('olsr'), root_module)
689 def register_functions_ns3_internal(module, root_module):
692 def register_functions_ns3_TimeStepPrecision(module, root_module):
695 def register_functions_ns3_Config(module, root_module):
698 def register_functions_ns3_olsr(module, root_module):
702 out = FileCodeSink(sys.stdout)
703 root_module = module_init()
704 register_types(root_module)
705 register_methods(root_module)
706 register_functions(root_module)
707 root_module.generate(out)
709 if __name__ == '__main__':