Modular Python bindings work (many bug fixes, more modules tested)

This commit is contained in:
Gustavo J. A. M. Carneiro
2011-03-12 18:34:30 +00:00
parent aa879d1f15
commit 089fbdcb5c
33 changed files with 53708 additions and 142 deletions

View File

@@ -17,8 +17,6 @@ def register_types(module):
module.add_class('GnuplotCollection')
## gnuplot.h: ns3::GnuplotDataset [class]
module.add_class('GnuplotDataset')
## gtk-config-store.h: ns3::GtkConfigStore [class]
module.add_class('GtkConfigStore')
## file-config.h: ns3::NoneFileConfig [class]
module.add_class('NoneFileConfig', parent=root_module['ns3::FileConfig'])
## config-store.h: ns3::ConfigStore [class]
@@ -140,7 +138,6 @@ def register_methods(root_module):
register_Ns3Gnuplot_methods(root_module, root_module['ns3::Gnuplot'])
register_Ns3GnuplotCollection_methods(root_module, root_module['ns3::GnuplotCollection'])
register_Ns3GnuplotDataset_methods(root_module, root_module['ns3::GnuplotDataset'])
register_Ns3GtkConfigStore_methods(root_module, root_module['ns3::GtkConfigStore'])
register_Ns3NoneFileConfig_methods(root_module, root_module['ns3::NoneFileConfig'])
register_Ns3ConfigStore_methods(root_module, root_module['ns3::ConfigStore'])
register_Ns3FlowIdTag_methods(root_module, root_module['ns3::FlowIdTag'])
@@ -365,21 +362,6 @@ def register_Ns3GnuplotDataset_methods(root_module, cls):
visibility='protected')
return
def register_Ns3GtkConfigStore_methods(root_module, cls):
## gtk-config-store.h: ns3::GtkConfigStore::GtkConfigStore(ns3::GtkConfigStore const & arg0) [copy constructor]
cls.add_constructor([param('ns3::GtkConfigStore const &', 'arg0')])
## gtk-config-store.h: ns3::GtkConfigStore::GtkConfigStore() [constructor]
cls.add_constructor([])
## gtk-config-store.h: void ns3::GtkConfigStore::ConfigureAttributes() [member function]
cls.add_method('ConfigureAttributes',
'void',
[])
## gtk-config-store.h: void ns3::GtkConfigStore::ConfigureDefaults() [member function]
cls.add_method('ConfigureDefaults',
'void',
[])
return
def register_Ns3NoneFileConfig_methods(root_module, cls):
## file-config.h: ns3::NoneFileConfig::NoneFileConfig(ns3::NoneFileConfig const & arg0) [copy constructor]
cls.add_constructor([param('ns3::NoneFileConfig const &', 'arg0')])

View File

@@ -0,0 +1,139 @@
from pybindgen import Module, FileCodeSink, param, retval, cppclass, typehandlers
def register_types(module):
root_module = module.get_root()
## Register a nested module for the namespace Config
nested_module = module.add_cpp_namespace('Config')
register_types_ns3_Config(nested_module)
## Register a nested module for the namespace FatalImpl
nested_module = module.add_cpp_namespace('FatalImpl')
register_types_ns3_FatalImpl(nested_module)
## Register a nested module for the namespace addressUtils
nested_module = module.add_cpp_namespace('addressUtils')
register_types_ns3_addressUtils(nested_module)
## Register a nested module for the namespace aodv
nested_module = module.add_cpp_namespace('aodv')
register_types_ns3_aodv(nested_module)
## Register a nested module for the namespace dot11s
nested_module = module.add_cpp_namespace('dot11s')
register_types_ns3_dot11s(nested_module)
## Register a nested module for the namespace dsdv
nested_module = module.add_cpp_namespace('dsdv')
register_types_ns3_dsdv(nested_module)
## Register a nested module for the namespace flame
nested_module = module.add_cpp_namespace('flame')
register_types_ns3_flame(nested_module)
## Register a nested module for the namespace internal
nested_module = module.add_cpp_namespace('internal')
register_types_ns3_internal(nested_module)
## Register a nested module for the namespace olsr
nested_module = module.add_cpp_namespace('olsr')
register_types_ns3_olsr(nested_module)
def register_types_ns3_Config(module):
root_module = module.get_root()
def register_types_ns3_FatalImpl(module):
root_module = module.get_root()
def register_types_ns3_addressUtils(module):
root_module = module.get_root()
def register_types_ns3_aodv(module):
root_module = module.get_root()
def register_types_ns3_dot11s(module):
root_module = module.get_root()
def register_types_ns3_dsdv(module):
root_module = module.get_root()
def register_types_ns3_flame(module):
root_module = module.get_root()
def register_types_ns3_internal(module):
root_module = module.get_root()
def register_types_ns3_olsr(module):
root_module = module.get_root()
def register_methods(root_module):
return
def register_functions(root_module):
module = root_module
register_functions_ns3_Config(module.get_submodule('Config'), root_module)
register_functions_ns3_FatalImpl(module.get_submodule('FatalImpl'), root_module)
register_functions_ns3_addressUtils(module.get_submodule('addressUtils'), root_module)
register_functions_ns3_aodv(module.get_submodule('aodv'), root_module)
register_functions_ns3_dot11s(module.get_submodule('dot11s'), root_module)
register_functions_ns3_dsdv(module.get_submodule('dsdv'), root_module)
register_functions_ns3_flame(module.get_submodule('flame'), root_module)
register_functions_ns3_internal(module.get_submodule('internal'), root_module)
register_functions_ns3_olsr(module.get_submodule('olsr'), root_module)
return
def register_functions_ns3_Config(module, root_module):
return
def register_functions_ns3_FatalImpl(module, root_module):
return
def register_functions_ns3_addressUtils(module, root_module):
return
def register_functions_ns3_aodv(module, root_module):
return
def register_functions_ns3_dot11s(module, root_module):
return
def register_functions_ns3_dsdv(module, root_module):
return
def register_functions_ns3_flame(module, root_module):
return
def register_functions_ns3_internal(module, root_module):
return
def register_functions_ns3_olsr(module, root_module):
return

View File

@@ -0,0 +1,139 @@
from pybindgen import Module, FileCodeSink, param, retval, cppclass, typehandlers
def register_types(module):
root_module = module.get_root()
## Register a nested module for the namespace Config
nested_module = module.add_cpp_namespace('Config')
register_types_ns3_Config(nested_module)
## Register a nested module for the namespace FatalImpl
nested_module = module.add_cpp_namespace('FatalImpl')
register_types_ns3_FatalImpl(nested_module)
## Register a nested module for the namespace addressUtils
nested_module = module.add_cpp_namespace('addressUtils')
register_types_ns3_addressUtils(nested_module)
## Register a nested module for the namespace aodv
nested_module = module.add_cpp_namespace('aodv')
register_types_ns3_aodv(nested_module)
## Register a nested module for the namespace dot11s
nested_module = module.add_cpp_namespace('dot11s')
register_types_ns3_dot11s(nested_module)
## Register a nested module for the namespace dsdv
nested_module = module.add_cpp_namespace('dsdv')
register_types_ns3_dsdv(nested_module)
## Register a nested module for the namespace flame
nested_module = module.add_cpp_namespace('flame')
register_types_ns3_flame(nested_module)
## Register a nested module for the namespace internal
nested_module = module.add_cpp_namespace('internal')
register_types_ns3_internal(nested_module)
## Register a nested module for the namespace olsr
nested_module = module.add_cpp_namespace('olsr')
register_types_ns3_olsr(nested_module)
def register_types_ns3_Config(module):
root_module = module.get_root()
def register_types_ns3_FatalImpl(module):
root_module = module.get_root()
def register_types_ns3_addressUtils(module):
root_module = module.get_root()
def register_types_ns3_aodv(module):
root_module = module.get_root()
def register_types_ns3_dot11s(module):
root_module = module.get_root()
def register_types_ns3_dsdv(module):
root_module = module.get_root()
def register_types_ns3_flame(module):
root_module = module.get_root()
def register_types_ns3_internal(module):
root_module = module.get_root()
def register_types_ns3_olsr(module):
root_module = module.get_root()
def register_methods(root_module):
return
def register_functions(root_module):
module = root_module
register_functions_ns3_Config(module.get_submodule('Config'), root_module)
register_functions_ns3_FatalImpl(module.get_submodule('FatalImpl'), root_module)
register_functions_ns3_addressUtils(module.get_submodule('addressUtils'), root_module)
register_functions_ns3_aodv(module.get_submodule('aodv'), root_module)
register_functions_ns3_dot11s(module.get_submodule('dot11s'), root_module)
register_functions_ns3_dsdv(module.get_submodule('dsdv'), root_module)
register_functions_ns3_flame(module.get_submodule('flame'), root_module)
register_functions_ns3_internal(module.get_submodule('internal'), root_module)
register_functions_ns3_olsr(module.get_submodule('olsr'), root_module)
return
def register_functions_ns3_Config(module, root_module):
return
def register_functions_ns3_FatalImpl(module, root_module):
return
def register_functions_ns3_addressUtils(module, root_module):
return
def register_functions_ns3_aodv(module, root_module):
return
def register_functions_ns3_dot11s(module, root_module):
return
def register_functions_ns3_dsdv(module, root_module):
return
def register_functions_ns3_flame(module, root_module):
return
def register_functions_ns3_internal(module, root_module):
return
def register_functions_ns3_olsr(module, root_module):
return

View File

@@ -36,14 +36,16 @@ import ns3_module_virtual_net_device
import ns3_module_netanim
import ns3_module_energy
import ns3_module_mesh
import ns3_module_ns3wifi
import ns3_module_spectrum
import ns3_module_csma
import ns3_module_uan
import ns3_module_aodv
import ns3_module_dsdv
import ns3_module_lte
import ns3_module_wimax
import ns3_module_ns3tcp
import ns3_module_olsr
import ns3_module_lte
def module_init():
root_module = Module('ns3', cpp_namespace='::ns3')
@@ -316,6 +318,17 @@ def register_types(module):
ns3_module_mesh__local.register_types(module)
root_module.end_section('ns3_module_mesh')
root_module.begin_section('ns3_module_ns3wifi')
ns3_module_ns3wifi.register_types(module)
try:
import ns3_module_ns3wifi__local
except ImportError:
pass
else:
ns3_module_ns3wifi__local.register_types(module)
root_module.end_section('ns3_module_ns3wifi')
root_module.begin_section('ns3_module_spectrum')
ns3_module_spectrum.register_types(module)
@@ -371,17 +384,6 @@ def register_types(module):
ns3_module_dsdv__local.register_types(module)
root_module.end_section('ns3_module_dsdv')
root_module.begin_section('ns3_module_lte')
ns3_module_lte.register_types(module)
try:
import ns3_module_lte__local
except ImportError:
pass
else:
ns3_module_lte__local.register_types(module)
root_module.end_section('ns3_module_lte')
root_module.begin_section('ns3_module_wimax')
ns3_module_wimax.register_types(module)
@@ -393,6 +395,17 @@ def register_types(module):
ns3_module_wimax__local.register_types(module)
root_module.end_section('ns3_module_wimax')
root_module.begin_section('ns3_module_ns3tcp')
ns3_module_ns3tcp.register_types(module)
try:
import ns3_module_ns3tcp__local
except ImportError:
pass
else:
ns3_module_ns3tcp__local.register_types(module)
root_module.end_section('ns3_module_ns3tcp')
root_module.begin_section('ns3_module_olsr')
ns3_module_olsr.register_types(module)
@@ -404,6 +417,17 @@ def register_types(module):
ns3_module_olsr__local.register_types(module)
root_module.end_section('ns3_module_olsr')
root_module.begin_section('ns3_module_lte')
ns3_module_lte.register_types(module)
try:
import ns3_module_lte__local
except ImportError:
pass
else:
ns3_module_lte__local.register_types(module)
root_module.end_section('ns3_module_lte')
module.add_container('std::vector< unsigned int >', 'unsigned int', container_type='vector')
module.add_container('std::vector< bool >', 'bool', container_type='vector')
module.add_container('std::vector< int >', 'int', container_type='vector')
@@ -781,6 +805,17 @@ def register_methods(root_module):
ns3_module_mesh__local.register_methods(root_module)
root_module.end_section('ns3_module_mesh')
root_module.begin_section('ns3_module_ns3wifi')
ns3_module_ns3wifi.register_methods(root_module)
try:
import ns3_module_ns3wifi__local
except ImportError:
pass
else:
ns3_module_ns3wifi__local.register_methods(root_module)
root_module.end_section('ns3_module_ns3wifi')
root_module.begin_section('ns3_module_spectrum')
ns3_module_spectrum.register_methods(root_module)
@@ -836,17 +871,6 @@ def register_methods(root_module):
ns3_module_dsdv__local.register_methods(root_module)
root_module.end_section('ns3_module_dsdv')
root_module.begin_section('ns3_module_lte')
ns3_module_lte.register_methods(root_module)
try:
import ns3_module_lte__local
except ImportError:
pass
else:
ns3_module_lte__local.register_methods(root_module)
root_module.end_section('ns3_module_lte')
root_module.begin_section('ns3_module_wimax')
ns3_module_wimax.register_methods(root_module)
@@ -858,6 +882,17 @@ def register_methods(root_module):
ns3_module_wimax__local.register_methods(root_module)
root_module.end_section('ns3_module_wimax')
root_module.begin_section('ns3_module_ns3tcp')
ns3_module_ns3tcp.register_methods(root_module)
try:
import ns3_module_ns3tcp__local
except ImportError:
pass
else:
ns3_module_ns3tcp__local.register_methods(root_module)
root_module.end_section('ns3_module_ns3tcp')
root_module.begin_section('ns3_module_olsr')
ns3_module_olsr.register_methods(root_module)
@@ -869,6 +904,17 @@ def register_methods(root_module):
ns3_module_olsr__local.register_methods(root_module)
root_module.end_section('ns3_module_olsr')
root_module.begin_section('ns3_module_lte')
ns3_module_lte.register_methods(root_module)
try:
import ns3_module_lte__local
except ImportError:
pass
else:
ns3_module_lte__local.register_methods(root_module)
root_module.end_section('ns3_module_lte')
return
def register_functions(root_module):
@@ -1137,6 +1183,17 @@ def register_functions(root_module):
ns3_module_mesh__local.register_functions(root_module)
root_module.end_section('ns3_module_mesh')
root_module.begin_section('ns3_module_ns3wifi')
ns3_module_ns3wifi.register_functions(root_module)
try:
import ns3_module_ns3wifi__local
except ImportError:
pass
else:
ns3_module_ns3wifi__local.register_functions(root_module)
root_module.end_section('ns3_module_ns3wifi')
root_module.begin_section('ns3_module_spectrum')
ns3_module_spectrum.register_functions(root_module)
@@ -1192,17 +1249,6 @@ def register_functions(root_module):
ns3_module_dsdv__local.register_functions(root_module)
root_module.end_section('ns3_module_dsdv')
root_module.begin_section('ns3_module_lte')
ns3_module_lte.register_functions(root_module)
try:
import ns3_module_lte__local
except ImportError:
pass
else:
ns3_module_lte__local.register_functions(root_module)
root_module.end_section('ns3_module_lte')
root_module.begin_section('ns3_module_wimax')
ns3_module_wimax.register_functions(root_module)
@@ -1214,6 +1260,17 @@ def register_functions(root_module):
ns3_module_wimax__local.register_functions(root_module)
root_module.end_section('ns3_module_wimax')
root_module.begin_section('ns3_module_ns3tcp')
ns3_module_ns3tcp.register_functions(root_module)
try:
import ns3_module_ns3tcp__local
except ImportError:
pass
else:
ns3_module_ns3tcp__local.register_functions(root_module)
root_module.end_section('ns3_module_ns3tcp')
root_module.begin_section('ns3_module_olsr')
ns3_module_olsr.register_functions(root_module)
@@ -1225,6 +1282,17 @@ def register_functions(root_module):
ns3_module_olsr__local.register_functions(root_module)
root_module.end_section('ns3_module_olsr')
root_module.begin_section('ns3_module_lte')
ns3_module_lte.register_functions(root_module)
try:
import ns3_module_lte__local
except ImportError:
pass
else:
ns3_module_lte__local.register_functions(root_module)
root_module.end_section('ns3_module_lte')
register_functions_ns3_Config(module.get_submodule('Config'), root_module)
register_functions_ns3_FatalImpl(module.get_submodule('FatalImpl'), root_module)
register_functions_ns3_addressUtils(module.get_submodule('addressUtils'), root_module)

View File

@@ -17,8 +17,6 @@ def register_types(module):
module.add_class('GnuplotCollection')
## gnuplot.h: ns3::GnuplotDataset [class]
module.add_class('GnuplotDataset')
## gtk-config-store.h: ns3::GtkConfigStore [class]
module.add_class('GtkConfigStore')
## file-config.h: ns3::NoneFileConfig [class]
module.add_class('NoneFileConfig', parent=root_module['ns3::FileConfig'])
## config-store.h: ns3::ConfigStore [class]
@@ -140,7 +138,6 @@ def register_methods(root_module):
register_Ns3Gnuplot_methods(root_module, root_module['ns3::Gnuplot'])
register_Ns3GnuplotCollection_methods(root_module, root_module['ns3::GnuplotCollection'])
register_Ns3GnuplotDataset_methods(root_module, root_module['ns3::GnuplotDataset'])
register_Ns3GtkConfigStore_methods(root_module, root_module['ns3::GtkConfigStore'])
register_Ns3NoneFileConfig_methods(root_module, root_module['ns3::NoneFileConfig'])
register_Ns3ConfigStore_methods(root_module, root_module['ns3::ConfigStore'])
register_Ns3FlowIdTag_methods(root_module, root_module['ns3::FlowIdTag'])
@@ -365,21 +362,6 @@ def register_Ns3GnuplotDataset_methods(root_module, cls):
visibility='protected')
return
def register_Ns3GtkConfigStore_methods(root_module, cls):
## gtk-config-store.h: ns3::GtkConfigStore::GtkConfigStore(ns3::GtkConfigStore const & arg0) [copy constructor]
cls.add_constructor([param('ns3::GtkConfigStore const &', 'arg0')])
## gtk-config-store.h: ns3::GtkConfigStore::GtkConfigStore() [constructor]
cls.add_constructor([])
## gtk-config-store.h: void ns3::GtkConfigStore::ConfigureAttributes() [member function]
cls.add_method('ConfigureAttributes',
'void',
[])
## gtk-config-store.h: void ns3::GtkConfigStore::ConfigureDefaults() [member function]
cls.add_method('ConfigureDefaults',
'void',
[])
return
def register_Ns3NoneFileConfig_methods(root_module, cls):
## file-config.h: ns3::NoneFileConfig::NoneFileConfig(ns3::NoneFileConfig const & arg0) [copy constructor]
cls.add_constructor([param('ns3::NoneFileConfig const &', 'arg0')])

View File

@@ -0,0 +1,139 @@
from pybindgen import Module, FileCodeSink, param, retval, cppclass, typehandlers
def register_types(module):
root_module = module.get_root()
## Register a nested module for the namespace Config
nested_module = module.add_cpp_namespace('Config')
register_types_ns3_Config(nested_module)
## Register a nested module for the namespace FatalImpl
nested_module = module.add_cpp_namespace('FatalImpl')
register_types_ns3_FatalImpl(nested_module)
## Register a nested module for the namespace addressUtils
nested_module = module.add_cpp_namespace('addressUtils')
register_types_ns3_addressUtils(nested_module)
## Register a nested module for the namespace aodv
nested_module = module.add_cpp_namespace('aodv')
register_types_ns3_aodv(nested_module)
## Register a nested module for the namespace dot11s
nested_module = module.add_cpp_namespace('dot11s')
register_types_ns3_dot11s(nested_module)
## Register a nested module for the namespace dsdv
nested_module = module.add_cpp_namespace('dsdv')
register_types_ns3_dsdv(nested_module)
## Register a nested module for the namespace flame
nested_module = module.add_cpp_namespace('flame')
register_types_ns3_flame(nested_module)
## Register a nested module for the namespace internal
nested_module = module.add_cpp_namespace('internal')
register_types_ns3_internal(nested_module)
## Register a nested module for the namespace olsr
nested_module = module.add_cpp_namespace('olsr')
register_types_ns3_olsr(nested_module)
def register_types_ns3_Config(module):
root_module = module.get_root()
def register_types_ns3_FatalImpl(module):
root_module = module.get_root()
def register_types_ns3_addressUtils(module):
root_module = module.get_root()
def register_types_ns3_aodv(module):
root_module = module.get_root()
def register_types_ns3_dot11s(module):
root_module = module.get_root()
def register_types_ns3_dsdv(module):
root_module = module.get_root()
def register_types_ns3_flame(module):
root_module = module.get_root()
def register_types_ns3_internal(module):
root_module = module.get_root()
def register_types_ns3_olsr(module):
root_module = module.get_root()
def register_methods(root_module):
return
def register_functions(root_module):
module = root_module
register_functions_ns3_Config(module.get_submodule('Config'), root_module)
register_functions_ns3_FatalImpl(module.get_submodule('FatalImpl'), root_module)
register_functions_ns3_addressUtils(module.get_submodule('addressUtils'), root_module)
register_functions_ns3_aodv(module.get_submodule('aodv'), root_module)
register_functions_ns3_dot11s(module.get_submodule('dot11s'), root_module)
register_functions_ns3_dsdv(module.get_submodule('dsdv'), root_module)
register_functions_ns3_flame(module.get_submodule('flame'), root_module)
register_functions_ns3_internal(module.get_submodule('internal'), root_module)
register_functions_ns3_olsr(module.get_submodule('olsr'), root_module)
return
def register_functions_ns3_Config(module, root_module):
return
def register_functions_ns3_FatalImpl(module, root_module):
return
def register_functions_ns3_addressUtils(module, root_module):
return
def register_functions_ns3_aodv(module, root_module):
return
def register_functions_ns3_dot11s(module, root_module):
return
def register_functions_ns3_dsdv(module, root_module):
return
def register_functions_ns3_flame(module, root_module):
return
def register_functions_ns3_internal(module, root_module):
return
def register_functions_ns3_olsr(module, root_module):
return

View File

@@ -0,0 +1,139 @@
from pybindgen import Module, FileCodeSink, param, retval, cppclass, typehandlers
def register_types(module):
root_module = module.get_root()
## Register a nested module for the namespace Config
nested_module = module.add_cpp_namespace('Config')
register_types_ns3_Config(nested_module)
## Register a nested module for the namespace FatalImpl
nested_module = module.add_cpp_namespace('FatalImpl')
register_types_ns3_FatalImpl(nested_module)
## Register a nested module for the namespace addressUtils
nested_module = module.add_cpp_namespace('addressUtils')
register_types_ns3_addressUtils(nested_module)
## Register a nested module for the namespace aodv
nested_module = module.add_cpp_namespace('aodv')
register_types_ns3_aodv(nested_module)
## Register a nested module for the namespace dot11s
nested_module = module.add_cpp_namespace('dot11s')
register_types_ns3_dot11s(nested_module)
## Register a nested module for the namespace dsdv
nested_module = module.add_cpp_namespace('dsdv')
register_types_ns3_dsdv(nested_module)
## Register a nested module for the namespace flame
nested_module = module.add_cpp_namespace('flame')
register_types_ns3_flame(nested_module)
## Register a nested module for the namespace internal
nested_module = module.add_cpp_namespace('internal')
register_types_ns3_internal(nested_module)
## Register a nested module for the namespace olsr
nested_module = module.add_cpp_namespace('olsr')
register_types_ns3_olsr(nested_module)
def register_types_ns3_Config(module):
root_module = module.get_root()
def register_types_ns3_FatalImpl(module):
root_module = module.get_root()
def register_types_ns3_addressUtils(module):
root_module = module.get_root()
def register_types_ns3_aodv(module):
root_module = module.get_root()
def register_types_ns3_dot11s(module):
root_module = module.get_root()
def register_types_ns3_dsdv(module):
root_module = module.get_root()
def register_types_ns3_flame(module):
root_module = module.get_root()
def register_types_ns3_internal(module):
root_module = module.get_root()
def register_types_ns3_olsr(module):
root_module = module.get_root()
def register_methods(root_module):
return
def register_functions(root_module):
module = root_module
register_functions_ns3_Config(module.get_submodule('Config'), root_module)
register_functions_ns3_FatalImpl(module.get_submodule('FatalImpl'), root_module)
register_functions_ns3_addressUtils(module.get_submodule('addressUtils'), root_module)
register_functions_ns3_aodv(module.get_submodule('aodv'), root_module)
register_functions_ns3_dot11s(module.get_submodule('dot11s'), root_module)
register_functions_ns3_dsdv(module.get_submodule('dsdv'), root_module)
register_functions_ns3_flame(module.get_submodule('flame'), root_module)
register_functions_ns3_internal(module.get_submodule('internal'), root_module)
register_functions_ns3_olsr(module.get_submodule('olsr'), root_module)
return
def register_functions_ns3_Config(module, root_module):
return
def register_functions_ns3_FatalImpl(module, root_module):
return
def register_functions_ns3_addressUtils(module, root_module):
return
def register_functions_ns3_aodv(module, root_module):
return
def register_functions_ns3_dot11s(module, root_module):
return
def register_functions_ns3_dsdv(module, root_module):
return
def register_functions_ns3_flame(module, root_module):
return
def register_functions_ns3_internal(module, root_module):
return
def register_functions_ns3_olsr(module, root_module):
return

View File

@@ -36,14 +36,16 @@ import ns3_module_virtual_net_device
import ns3_module_netanim
import ns3_module_energy
import ns3_module_mesh
import ns3_module_ns3wifi
import ns3_module_spectrum
import ns3_module_csma
import ns3_module_uan
import ns3_module_aodv
import ns3_module_dsdv
import ns3_module_lte
import ns3_module_wimax
import ns3_module_ns3tcp
import ns3_module_olsr
import ns3_module_lte
def module_init():
root_module = Module('ns3', cpp_namespace='::ns3')
@@ -316,6 +318,17 @@ def register_types(module):
ns3_module_mesh__local.register_types(module)
root_module.end_section('ns3_module_mesh')
root_module.begin_section('ns3_module_ns3wifi')
ns3_module_ns3wifi.register_types(module)
try:
import ns3_module_ns3wifi__local
except ImportError:
pass
else:
ns3_module_ns3wifi__local.register_types(module)
root_module.end_section('ns3_module_ns3wifi')
root_module.begin_section('ns3_module_spectrum')
ns3_module_spectrum.register_types(module)
@@ -371,17 +384,6 @@ def register_types(module):
ns3_module_dsdv__local.register_types(module)
root_module.end_section('ns3_module_dsdv')
root_module.begin_section('ns3_module_lte')
ns3_module_lte.register_types(module)
try:
import ns3_module_lte__local
except ImportError:
pass
else:
ns3_module_lte__local.register_types(module)
root_module.end_section('ns3_module_lte')
root_module.begin_section('ns3_module_wimax')
ns3_module_wimax.register_types(module)
@@ -393,6 +395,17 @@ def register_types(module):
ns3_module_wimax__local.register_types(module)
root_module.end_section('ns3_module_wimax')
root_module.begin_section('ns3_module_ns3tcp')
ns3_module_ns3tcp.register_types(module)
try:
import ns3_module_ns3tcp__local
except ImportError:
pass
else:
ns3_module_ns3tcp__local.register_types(module)
root_module.end_section('ns3_module_ns3tcp')
root_module.begin_section('ns3_module_olsr')
ns3_module_olsr.register_types(module)
@@ -404,6 +417,17 @@ def register_types(module):
ns3_module_olsr__local.register_types(module)
root_module.end_section('ns3_module_olsr')
root_module.begin_section('ns3_module_lte')
ns3_module_lte.register_types(module)
try:
import ns3_module_lte__local
except ImportError:
pass
else:
ns3_module_lte__local.register_types(module)
root_module.end_section('ns3_module_lte')
module.add_container('std::vector< unsigned int >', 'unsigned int', container_type='vector')
module.add_container('std::vector< bool >', 'bool', container_type='vector')
module.add_container('std::vector< int >', 'int', container_type='vector')
@@ -781,6 +805,17 @@ def register_methods(root_module):
ns3_module_mesh__local.register_methods(root_module)
root_module.end_section('ns3_module_mesh')
root_module.begin_section('ns3_module_ns3wifi')
ns3_module_ns3wifi.register_methods(root_module)
try:
import ns3_module_ns3wifi__local
except ImportError:
pass
else:
ns3_module_ns3wifi__local.register_methods(root_module)
root_module.end_section('ns3_module_ns3wifi')
root_module.begin_section('ns3_module_spectrum')
ns3_module_spectrum.register_methods(root_module)
@@ -836,17 +871,6 @@ def register_methods(root_module):
ns3_module_dsdv__local.register_methods(root_module)
root_module.end_section('ns3_module_dsdv')
root_module.begin_section('ns3_module_lte')
ns3_module_lte.register_methods(root_module)
try:
import ns3_module_lte__local
except ImportError:
pass
else:
ns3_module_lte__local.register_methods(root_module)
root_module.end_section('ns3_module_lte')
root_module.begin_section('ns3_module_wimax')
ns3_module_wimax.register_methods(root_module)
@@ -858,6 +882,17 @@ def register_methods(root_module):
ns3_module_wimax__local.register_methods(root_module)
root_module.end_section('ns3_module_wimax')
root_module.begin_section('ns3_module_ns3tcp')
ns3_module_ns3tcp.register_methods(root_module)
try:
import ns3_module_ns3tcp__local
except ImportError:
pass
else:
ns3_module_ns3tcp__local.register_methods(root_module)
root_module.end_section('ns3_module_ns3tcp')
root_module.begin_section('ns3_module_olsr')
ns3_module_olsr.register_methods(root_module)
@@ -869,6 +904,17 @@ def register_methods(root_module):
ns3_module_olsr__local.register_methods(root_module)
root_module.end_section('ns3_module_olsr')
root_module.begin_section('ns3_module_lte')
ns3_module_lte.register_methods(root_module)
try:
import ns3_module_lte__local
except ImportError:
pass
else:
ns3_module_lte__local.register_methods(root_module)
root_module.end_section('ns3_module_lte')
return
def register_functions(root_module):
@@ -1137,6 +1183,17 @@ def register_functions(root_module):
ns3_module_mesh__local.register_functions(root_module)
root_module.end_section('ns3_module_mesh')
root_module.begin_section('ns3_module_ns3wifi')
ns3_module_ns3wifi.register_functions(root_module)
try:
import ns3_module_ns3wifi__local
except ImportError:
pass
else:
ns3_module_ns3wifi__local.register_functions(root_module)
root_module.end_section('ns3_module_ns3wifi')
root_module.begin_section('ns3_module_spectrum')
ns3_module_spectrum.register_functions(root_module)
@@ -1192,17 +1249,6 @@ def register_functions(root_module):
ns3_module_dsdv__local.register_functions(root_module)
root_module.end_section('ns3_module_dsdv')
root_module.begin_section('ns3_module_lte')
ns3_module_lte.register_functions(root_module)
try:
import ns3_module_lte__local
except ImportError:
pass
else:
ns3_module_lte__local.register_functions(root_module)
root_module.end_section('ns3_module_lte')
root_module.begin_section('ns3_module_wimax')
ns3_module_wimax.register_functions(root_module)
@@ -1214,6 +1260,17 @@ def register_functions(root_module):
ns3_module_wimax__local.register_functions(root_module)
root_module.end_section('ns3_module_wimax')
root_module.begin_section('ns3_module_ns3tcp')
ns3_module_ns3tcp.register_functions(root_module)
try:
import ns3_module_ns3tcp__local
except ImportError:
pass
else:
ns3_module_ns3tcp__local.register_functions(root_module)
root_module.end_section('ns3_module_ns3tcp')
root_module.begin_section('ns3_module_olsr')
ns3_module_olsr.register_functions(root_module)
@@ -1225,6 +1282,17 @@ def register_functions(root_module):
ns3_module_olsr__local.register_functions(root_module)
root_module.end_section('ns3_module_olsr')
root_module.begin_section('ns3_module_lte')
ns3_module_lte.register_functions(root_module)
try:
import ns3_module_lte__local
except ImportError:
pass
else:
ns3_module_lte__local.register_functions(root_module)
root_module.end_section('ns3_module_lte')
register_functions_ns3_Config(module.get_submodule('Config'), root_module)
register_functions_ns3_FatalImpl(module.get_submodule('FatalImpl'), root_module)
register_functions_ns3_addressUtils(module.get_submodule('addressUtils'), root_module)

View File

@@ -3,8 +3,14 @@ import sys
import os
import pybindgen.settings
from pybindgen import Module, FileCodeSink, param, retval, cppclass, typehandlers
from pybindgen.module import MultiSectionFactory
import ns3modulegen_core_customizations
pybindgen.settings.wrapper_registry = pybindgen.settings.StdMapWrapperRegistry
class ErrorHandler(pybindgen.settings.ErrorHandler):
def handle_error(self, wrapper, exception, traceback_):
warnings.warn("exception %r in wrapper %s" % (exception, wrapper))
@@ -14,37 +20,73 @@ pybindgen.settings.error_handler = ErrorHandler()
class MyMultiSectionFactory(MultiSectionFactory):
def __init__(self, main_file_name):
super(MyMultiSectionFactory, self).__init__()
self.main_file_name = main_file_name
self.main_sink = FileCodeSink(open(main_file_name, "wt"))
self.header_name = "ns3module.h"
header_file_name = os.path.join(os.path.dirname(self.main_file_name), self.header_name)
#print >> sys.stderr, ">>>>>>>>>>>>>>>>>", header_file_name, main_file_name
self.header_sink = FileCodeSink(open(header_file_name, "wt"))
def get_section_code_sink(self, section_name):
return self.main_sink
def get_main_code_sink(self):
return self.main_sink
def get_common_header_code_sink(self):
return self.header_sink
def get_common_header_include(self):
return '"%s"' % self.header_name
def close(self):
self.header_sink.file.close()
self.main_sink.file.close()
def main(argv):
assert len(argv) == 3
module_abs_src_path, target = argv[1], argv[2]
module_abs_src_path, target, output_cc_file_name = argv[1:]
module_name = os.path.basename(module_abs_src_path)
out = MyMultiSectionFactory(output_cc_file_name)
sys.path.insert(0, os.path.join(module_abs_src_path, "bindings"))
try:
module_apidefs = __import__("modulegen__%s" % target)
del sys.modules["modulegen__%s" % target]
try:
module_customization = __import__("modulegen_local")
del sys.modules["modulegen_local"]
module_customization = __import__("modulegen_customizations")
del sys.modules["modulegen_customizations"]
except ImportError:
module_customization = None
module_customization = object()
finally:
sys.path.pop(0)
out = FileCodeSink(sys.stdout)
root_module = module_apidefs.module_init()
root_module.add_include('"ns3/%s-module.h"' % module_name)
# -----------
module_apidefs.register_types(root_module)
if hasattr(module_customization, 'post_register_types'):
module_customization.post_register_types(root_module)
# -----------
module_apidefs.register_methods(root_module)
module_apidefs.register_functions(root_module)
if hasattr(module_customization, 'post_register_methods'):
module_customization.post_register_methods(root_module)
ns3modulegen_core_customizations.Object_customizations(root_module)
ns3modulegen_core_customizations.Attribute_customizations(root_module)
if module_customization is not None:
module_customization.customize(root_module)
# -----------
module_apidefs.register_functions(root_module)
if hasattr(module_customization, 'post_register_functions'):
module_customization.post_register_functions(root_module)
# -----------
root_module.generate(out)
if __name__ == '__main__':

View File

@@ -229,7 +229,14 @@ def ns3_module_scan(top_builddir, module_name, headers_map, output_file_name, cf
pass
output_file = open(output_file_name, "wt")
output_sink = FileCodeSink(output_file)
module_parser.parse_init([os.path.join(top_builddir, "ns3", "%s-module.h" % module_name)],
# if there exists a scan-header.h file in src/<module>/bindings,
# scan it, otherwise scan ns3/xxxx-module.h.
scan_header = os.path.join(os.path.dirname(output_file_name), "scan-header.h")
if not os.path.exists(scan_header):
scan_header = os.path.join(top_builddir, "ns3", "%s-module.h" % module_name)
module_parser.parse_init([scan_header],
None, whitelist_paths=[top_builddir],
#includes=['"ns3/everything.h"'],
pygen_sink=output_sink,

View File

@@ -15,7 +15,7 @@ import Build
import Utils
## https://launchpad.net/pybindgen/
REQUIRED_PYBINDGEN_VERSION = (0, 15, 0, 775)
REQUIRED_PYBINDGEN_VERSION = (0, 15, 0, 776)
REQUIRED_PYGCCXML_VERSION = (0, 9, 5)