Rescan API
authorGustavo J. A. M. Carneiro <gjc@inescporto.pt>
Mon, 14 Jul 2008 11:42:49 +0100
changeset 34572ff6f05b9467
parent 3456 7f2d5300ad02
child 3458 f289e2045bfc
Rescan API
bindings/python/callbacks_list.py
bindings/python/ns3_module_bridge.py
bindings/python/ns3_module_common.py
bindings/python/ns3_module_contrib.py
bindings/python/ns3_module_core.py
bindings/python/ns3_module_csma.py
bindings/python/ns3_module_global_routing.py
bindings/python/ns3_module_internet_stack.py
bindings/python/ns3_module_mobility.py
bindings/python/ns3_module_node.py
bindings/python/ns3_module_olsr.py
bindings/python/ns3_module_onoff.py
bindings/python/ns3_module_packet_sink.py
bindings/python/ns3_module_point_to_point.py
bindings/python/ns3_module_simulator.py
bindings/python/ns3_module_udp_echo.py
bindings/python/ns3_module_wifi.py
bindings/python/ns3modulegen_generated.py
     1.1 --- a/bindings/python/callbacks_list.py	Mon Jul 14 11:39:41 2008 +0100
     1.2 +++ b/bindings/python/callbacks_list.py	Mon Jul 14 11:42:49 2008 +0100
     1.3 @@ -1,12 +1,12 @@
     1.4  callback_classes = [
     1.5      ['void', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     1.6 -    ['bool', 'ns3::Ptr<ns3::NetDevice>', 'ns3::Ptr<ns3::Packet>', 'unsigned short', 'ns3::Address const&', 'ns3::empty', 'ns3::empty'],
     1.7      ['void', 'ns3::Ptr<ns3::Socket>', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     1.8      ['void', 'ns3::Ptr<ns3::Socket>', 'unsigned int', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     1.9      ['void', 'ns3::Ptr<ns3::Socket>', 'ns3::Address const&', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
    1.10      ['bool', 'ns3::Ptr<ns3::Socket>', 'ns3::Address const&', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
    1.11      ['void', 'ns3::Ptr<ns3::Packet>', 'ns3::Mac48Address const&', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
    1.12 -    ['void', 'ns3::Ptr<ns3::NetDevice>', 'ns3::Ptr<ns3::Packet>', 'unsigned short', 'ns3::Address const&', 'ns3::empty', 'ns3::empty'],
    1.13 +    ['bool', 'ns3::Ptr<ns3::NetDevice>', 'ns3::Ptr<ns3::Packet>', 'unsigned short', 'ns3::Address const&', 'ns3::Address const&', 'ns3::NetDevice::PacketType'],
    1.14 +    ['void', 'ns3::Ptr<ns3::NetDevice>', 'ns3::Ptr<ns3::Packet>', 'unsigned short', 'ns3::Address const&', 'ns3::Address const&', 'ns3::NetDevice::PacketType'],
    1.15      ['void', 'ns3::Ptr<ns3::Packet>', 'double', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
    1.16      ['void', 'ns3::Ptr<ns3::Packet>', 'double', 'ns3::WifiMode', 'ns3::WifiPreamble', 'ns3::empty', 'ns3::empty'],
    1.17  ]
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/bindings/python/ns3_module_bridge.py	Mon Jul 14 11:42:49 2008 +0100
     2.3 @@ -0,0 +1,153 @@
     2.4 +from pybindgen import Module, FileCodeSink, write_preamble, param, retval
     2.5 +
     2.6 +def register_types(module):
     2.7 +    root_module = module.get_root()
     2.8 +    
     2.9 +    ## bridge-net-device.h: ns3::BridgeNetDevice [class]
    2.10 +    module.add_class('BridgeNetDevice', parent=root_module['ns3::NetDevice'])
    2.11 +    ## bridge-channel.h: ns3::BridgeChannel [class]
    2.12 +    module.add_class('BridgeChannel', parent=root_module['ns3::Channel'])
    2.13 +    
    2.14 +    ## Register a nested module for the namespace internal
    2.15 +    
    2.16 +    nested_module = module.add_cpp_namespace('internal')
    2.17 +    register_types_ns3_internal(nested_module)
    2.18 +    
    2.19 +    
    2.20 +    ## Register a nested module for the namespace TimeStepPrecision
    2.21 +    
    2.22 +    nested_module = module.add_cpp_namespace('TimeStepPrecision')
    2.23 +    register_types_ns3_TimeStepPrecision(nested_module)
    2.24 +    
    2.25 +    
    2.26 +    ## Register a nested module for the namespace Config
    2.27 +    
    2.28 +    nested_module = module.add_cpp_namespace('Config')
    2.29 +    register_types_ns3_Config(nested_module)
    2.30 +    
    2.31 +    
    2.32 +    ## Register a nested module for the namespace olsr
    2.33 +    
    2.34 +    nested_module = module.add_cpp_namespace('olsr')
    2.35 +    register_types_ns3_olsr(nested_module)
    2.36 +    
    2.37 +
    2.38 +def register_types_ns3_internal(module):
    2.39 +    root_module = module.get_root()
    2.40 +    
    2.41 +
    2.42 +def register_types_ns3_TimeStepPrecision(module):
    2.43 +    root_module = module.get_root()
    2.44 +    
    2.45 +
    2.46 +def register_types_ns3_Config(module):
    2.47 +    root_module = module.get_root()
    2.48 +    
    2.49 +
    2.50 +def register_types_ns3_olsr(module):
    2.51 +    root_module = module.get_root()
    2.52 +    
    2.53 +
    2.54 +def register_methods(root_module):
    2.55 +    register_Ns3BridgeNetDevice_methods(root_module, root_module['ns3::BridgeNetDevice'])
    2.56 +    register_Ns3BridgeChannel_methods(root_module, root_module['ns3::BridgeChannel'])
    2.57 +    return
    2.58 +
    2.59 +def register_Ns3BridgeNetDevice_methods(root_module, cls):
    2.60 +    ## bridge-net-device.h: static ns3::TypeId ns3::BridgeNetDevice::GetTypeId() [member function]
    2.61 +    cls.add_method('GetTypeId', 'ns3::TypeId', [], is_static=True)
    2.62 +    ## bridge-net-device.h: ns3::BridgeNetDevice::BridgeNetDevice() [constructor]
    2.63 +    cls.add_constructor([], visibility='public')
    2.64 +    ## bridge-net-device.h: void ns3::BridgeNetDevice::AddBridgePort(ns3::Ptr<ns3::NetDevice> bridgePort) [member function]
    2.65 +    cls.add_method('AddBridgePort', 'void', [param('ns3::Ptr< ns3::NetDevice >', 'bridgePort')])
    2.66 +    ## bridge-net-device.h: void ns3::BridgeNetDevice::SetName(std::string const name) [member function]
    2.67 +    cls.add_method('SetName', 'void', [param('std::string', 'name', is_const=True)], is_virtual=True)
    2.68 +    ## bridge-net-device.h: std::string ns3::BridgeNetDevice::GetName() const [member function]
    2.69 +    cls.add_method('GetName', 'std::string', [], is_const=True, is_virtual=True)
    2.70 +    ## bridge-net-device.h: void ns3::BridgeNetDevice::SetIfIndex(uint32_t const index) [member function]
    2.71 +    cls.add_method('SetIfIndex', 'void', [param('uint32_t', 'index', is_const=True)], is_virtual=True)
    2.72 +    ## bridge-net-device.h: uint32_t ns3::BridgeNetDevice::GetIfIndex() const [member function]
    2.73 +    cls.add_method('GetIfIndex', 'uint32_t', [], is_const=True, is_virtual=True)
    2.74 +    ## bridge-net-device.h: ns3::Ptr<ns3::Channel> ns3::BridgeNetDevice::GetChannel() const [member function]
    2.75 +    cls.add_method('GetChannel', 'ns3::Ptr< ns3::Channel >', [], is_const=True, is_virtual=True)
    2.76 +    ## bridge-net-device.h: ns3::Address ns3::BridgeNetDevice::GetAddress() const [member function]
    2.77 +    cls.add_method('GetAddress', 'ns3::Address', [], is_const=True, is_virtual=True)
    2.78 +    ## bridge-net-device.h: bool ns3::BridgeNetDevice::SetMtu(uint16_t const mtu) [member function]
    2.79 +    cls.add_method('SetMtu', 'bool', [param('uint16_t', 'mtu', is_const=True)], is_virtual=True)
    2.80 +    ## bridge-net-device.h: uint16_t ns3::BridgeNetDevice::GetMtu() const [member function]
    2.81 +    cls.add_method('GetMtu', 'uint16_t', [], is_const=True, is_virtual=True)
    2.82 +    ## bridge-net-device.h: bool ns3::BridgeNetDevice::IsLinkUp() const [member function]
    2.83 +    cls.add_method('IsLinkUp', 'bool', [], is_const=True, is_virtual=True)
    2.84 +    ## bridge-net-device.h: void ns3::BridgeNetDevice::SetLinkChangeCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
    2.85 +    cls.add_method('SetLinkChangeCallback', 'void', [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')], is_virtual=True)
    2.86 +    ## bridge-net-device.h: bool ns3::BridgeNetDevice::IsBroadcast() const [member function]
    2.87 +    cls.add_method('IsBroadcast', 'bool', [], is_const=True, is_virtual=True)
    2.88 +    ## bridge-net-device.h: ns3::Address ns3::BridgeNetDevice::GetBroadcast() const [member function]
    2.89 +    cls.add_method('GetBroadcast', 'ns3::Address', [], is_const=True, is_virtual=True)
    2.90 +    ## bridge-net-device.h: bool ns3::BridgeNetDevice::IsMulticast() const [member function]
    2.91 +    cls.add_method('IsMulticast', 'bool', [], is_const=True, is_virtual=True)
    2.92 +    ## bridge-net-device.h: ns3::Address ns3::BridgeNetDevice::GetMulticast() const [member function]
    2.93 +    cls.add_method('GetMulticast', 'ns3::Address', [], is_const=True, is_virtual=True)
    2.94 +    ## bridge-net-device.h: ns3::Address ns3::BridgeNetDevice::MakeMulticastAddress(ns3::Ipv4Address multicastGroup) const [member function]
    2.95 +    cls.add_method('MakeMulticastAddress', 'ns3::Address', [param('ns3::Ipv4Address', 'multicastGroup')], is_const=True, is_virtual=True)
    2.96 +    ## bridge-net-device.h: bool ns3::BridgeNetDevice::IsPointToPoint() const [member function]
    2.97 +    cls.add_method('IsPointToPoint', 'bool', [], is_const=True, is_virtual=True)
    2.98 +    ## bridge-net-device.h: bool ns3::BridgeNetDevice::Send(ns3::Ptr<ns3::Packet> packet, ns3::Address const & dest, uint16_t protocolNumber) [member function]
    2.99 +    cls.add_method('Send', 'bool', [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address&', 'dest', is_const=True), param('uint16_t', 'protocolNumber')], is_virtual=True)
   2.100 +    ## bridge-net-device.h: bool ns3::BridgeNetDevice::SendFrom(ns3::Ptr<ns3::Packet> packet, ns3::Address const & source, ns3::Address const & dest, uint16_t protocolNumber) [member function]
   2.101 +    cls.add_method('SendFrom', 'bool', [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address&', 'source', is_const=True), param('ns3::Address&', 'dest', is_const=True), param('uint16_t', 'protocolNumber')], is_virtual=True)
   2.102 +    ## bridge-net-device.h: ns3::Ptr<ns3::Node> ns3::BridgeNetDevice::GetNode() const [member function]
   2.103 +    cls.add_method('GetNode', 'ns3::Ptr< ns3::Node >', [], is_const=True, is_virtual=True)
   2.104 +    ## bridge-net-device.h: void ns3::BridgeNetDevice::SetNode(ns3::Ptr<ns3::Node> node) [member function]
   2.105 +    cls.add_method('SetNode', 'void', [param('ns3::Ptr< ns3::Node >', 'node')], is_virtual=True)
   2.106 +    ## bridge-net-device.h: bool ns3::BridgeNetDevice::NeedsArp() const [member function]
   2.107 +    cls.add_method('NeedsArp', 'bool', [], is_const=True, is_virtual=True)
   2.108 +    ## bridge-net-device.h: void ns3::BridgeNetDevice::SetReceiveCallback(ns3::Callback<bool, ns3::Ptr<ns3::NetDevice>, ns3::Ptr<ns3::Packet>, unsigned short, ns3::Address const&, ns3::Address const&, ns3::NetDevice::PacketType> cb) [member function]
   2.109 +    cls.add_method('SetReceiveCallback', 'void', [param('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet >, unsigned short, ns3::Address const&, ns3::Address const&, ns3::NetDevice::PacketType >', 'cb')], is_virtual=True)
   2.110 +    ## bridge-net-device.h: void ns3::BridgeNetDevice::DoDispose() [member function]
   2.111 +    cls.add_method('DoDispose', 'void', [], visibility='protected', is_virtual=True)
   2.112 +    ## bridge-net-device.h: void ns3::BridgeNetDevice::ReceiveFromDevice(ns3::Ptr<ns3::NetDevice> device, ns3::Ptr<ns3::Packet> packet, uint16_t protocol, ns3::Address const & source, ns3::Address const & destination, ns3::NetDevice::PacketType packetType) [member function]
   2.113 +    cls.add_method('ReceiveFromDevice', 'void', [param('ns3::Ptr< ns3::NetDevice >', 'device'), param('ns3::Ptr< ns3::Packet >', 'packet'), param('uint16_t', 'protocol'), param('ns3::Address&', 'source', is_const=True), param('ns3::Address&', 'destination', is_const=True), param('ns3::NetDevice::PacketType', 'packetType')], visibility='protected')
   2.114 +    ## bridge-net-device.h: void ns3::BridgeNetDevice::ForwardUnicast(ns3::Ptr<ns3::NetDevice> incomingPort, ns3::Ptr<ns3::Packet> packet, uint16_t protocol, ns3::Mac48Address src, ns3::Mac48Address dst) [member function]
   2.115 +    cls.add_method('ForwardUnicast', 'void', [param('ns3::Ptr< ns3::NetDevice >', 'incomingPort'), param('ns3::Ptr< ns3::Packet >', 'packet'), param('uint16_t', 'protocol'), param('ns3::Mac48Address', 'src'), param('ns3::Mac48Address', 'dst')], visibility='protected')
   2.116 +    ## bridge-net-device.h: void ns3::BridgeNetDevice::ForwardBroadcast(ns3::Ptr<ns3::NetDevice> incomingPort, ns3::Ptr<ns3::Packet> packet, uint16_t protocol, ns3::Mac48Address src, ns3::Mac48Address dst) [member function]
   2.117 +    cls.add_method('ForwardBroadcast', 'void', [param('ns3::Ptr< ns3::NetDevice >', 'incomingPort'), param('ns3::Ptr< ns3::Packet >', 'packet'), param('uint16_t', 'protocol'), param('ns3::Mac48Address', 'src'), param('ns3::Mac48Address', 'dst')], visibility='protected')
   2.118 +    ## bridge-net-device.h: void ns3::BridgeNetDevice::Learn(ns3::Mac48Address source, ns3::Ptr<ns3::NetDevice> port) [member function]
   2.119 +    cls.add_method('Learn', 'void', [param('ns3::Mac48Address', 'source'), param('ns3::Ptr< ns3::NetDevice >', 'port')], visibility='protected')
   2.120 +    ## bridge-net-device.h: ns3::Ptr<ns3::NetDevice> ns3::BridgeNetDevice::GetLearnedState(ns3::Mac48Address source) [member function]
   2.121 +    cls.add_method('GetLearnedState', 'ns3::Ptr< ns3::NetDevice >', [param('ns3::Mac48Address', 'source')], visibility='protected')
   2.122 +    return
   2.123 +
   2.124 +def register_Ns3BridgeChannel_methods(root_module, cls):
   2.125 +    ## bridge-channel.h: static ns3::TypeId ns3::BridgeChannel::GetTypeId() [member function]
   2.126 +    cls.add_method('GetTypeId', 'ns3::TypeId', [], is_static=True)
   2.127 +    ## bridge-channel.h: ns3::BridgeChannel::BridgeChannel() [constructor]
   2.128 +    cls.add_constructor([], visibility='public')
   2.129 +    ## bridge-channel.h: void ns3::BridgeChannel::AddChannel(ns3::Ptr<ns3::Channel> bridgedChannel) [member function]
   2.130 +    cls.add_method('AddChannel', 'void', [param('ns3::Ptr< ns3::Channel >', 'bridgedChannel')])
   2.131 +    ## bridge-channel.h: uint32_t ns3::BridgeChannel::GetNDevices() const [member function]
   2.132 +    cls.add_method('GetNDevices', 'uint32_t', [], is_const=True, is_virtual=True)
   2.133 +    ## bridge-channel.h: ns3::Ptr<ns3::NetDevice> ns3::BridgeChannel::GetDevice(uint32_t i) const [member function]
   2.134 +    cls.add_method('GetDevice', 'ns3::Ptr< ns3::NetDevice >', [param('uint32_t', 'i')], is_const=True, is_virtual=True)
   2.135 +    return
   2.136 +
   2.137 +def register_functions(root_module):
   2.138 +    module = root_module
   2.139 +    register_functions_ns3_internal(module.get_submodule('internal'), root_module)
   2.140 +    register_functions_ns3_TimeStepPrecision(module.get_submodule('TimeStepPrecision'), root_module)
   2.141 +    register_functions_ns3_Config(module.get_submodule('Config'), root_module)
   2.142 +    register_functions_ns3_olsr(module.get_submodule('olsr'), root_module)
   2.143 +    return
   2.144 +
   2.145 +def register_functions_ns3_internal(module, root_module):
   2.146 +    return
   2.147 +
   2.148 +def register_functions_ns3_TimeStepPrecision(module, root_module):
   2.149 +    return
   2.150 +
   2.151 +def register_functions_ns3_Config(module, root_module):
   2.152 +    return
   2.153 +
   2.154 +def register_functions_ns3_olsr(module, root_module):
   2.155 +    return
   2.156 +
     3.1 --- a/bindings/python/ns3_module_common.py	Mon Jul 14 11:39:41 2008 +0100
     3.2 +++ b/bindings/python/ns3_module_common.py	Mon Jul 14 11:42:49 2008 +0100
     3.3 @@ -24,27 +24,27 @@
     3.4      ## buffer.h: ns3::Buffer::Iterator [class]
     3.5      module.add_class('Iterator', outer_class=root_module['ns3::Buffer'])
     3.6      ## chunk.h: ns3::Chunk [class]
     3.7 -    module.add_class('Chunk', allow_subclassing=True, parent=root_module['ns3::ObjectBase'])
     3.8 +    module.add_class('Chunk', parent=root_module['ns3::ObjectBase'])
     3.9      ## data-rate.h: ns3::DataRate [class]
    3.10      module.add_class('DataRate')
    3.11      ## tag.h: ns3::Tag [class]
    3.12 -    module.add_class('Tag', allow_subclassing=True, parent=root_module['ns3::ObjectBase'])
    3.13 +    module.add_class('Tag', parent=root_module['ns3::ObjectBase'])
    3.14      ## pcap-writer.h: ns3::PcapWriter [class]
    3.15      module.add_class('PcapWriter', parent=root_module['ns3::RefCountBase'])
    3.16      ## data-rate.h: ns3::DataRateChecker [class]
    3.17      module.add_class('DataRateChecker', parent=root_module['ns3::AttributeChecker'])
    3.18      ## error-model.h: ns3::ErrorModel [class]
    3.19 -    module.add_class('ErrorModel', allow_subclassing=True, parent=root_module['ns3::Object'])
    3.20 +    module.add_class('ErrorModel', parent=root_module['ns3::Object'])
    3.21      ## header.h: ns3::Header [class]
    3.22 -    module.add_class('Header', allow_subclassing=True, parent=root_module['ns3::Chunk'])
    3.23 +    module.add_class('Header', parent=root_module['ns3::Chunk'])
    3.24      ## trailer.h: ns3::Trailer [class]
    3.25 -    module.add_class('Trailer', allow_subclassing=True, parent=root_module['ns3::Chunk'])
    3.26 +    module.add_class('Trailer', parent=root_module['ns3::Chunk'])
    3.27      ## error-model.h: ns3::ListErrorModel [class]
    3.28 -    module.add_class('ListErrorModel', allow_subclassing=True, parent=root_module['ns3::ErrorModel'])
    3.29 +    module.add_class('ListErrorModel', parent=root_module['ns3::ErrorModel'])
    3.30      ## data-rate.h: ns3::DataRateValue [class]
    3.31 -    module.add_class('DataRateValue', allow_subclassing=True, parent=root_module['ns3::AttributeValue'])
    3.32 +    module.add_class('DataRateValue', parent=root_module['ns3::AttributeValue'])
    3.33      ## error-model.h: ns3::RateErrorModel [class]
    3.34 -    module.add_class('RateErrorModel', allow_subclassing=True, parent=root_module['ns3::ErrorModel'])
    3.35 +    module.add_class('RateErrorModel', parent=root_module['ns3::ErrorModel'])
    3.36      
    3.37      ## Register a nested module for the namespace internal
    3.38      
     4.1 --- a/bindings/python/ns3_module_contrib.py	Mon Jul 14 11:39:41 2008 +0100
     4.2 +++ b/bindings/python/ns3_module_contrib.py	Mon Jul 14 11:42:49 2008 +0100
     4.3 @@ -16,7 +16,7 @@
     4.4      ## gtk-config-store.h: ns3::GtkConfigStore [class]
     4.5      module.add_class('GtkConfigStore')
     4.6      ## config-store.h: ns3::ConfigStore [class]
     4.7 -    module.add_class('ConfigStore', allow_subclassing=True, parent=root_module['ns3::ObjectBase'])
     4.8 +    module.add_class('ConfigStore', parent=root_module['ns3::ObjectBase'])
     4.9      ## delay-jitter-estimation.h: ns3::DelayJitterEstimation [class]
    4.10      module.add_class('DelayJitterEstimation')
    4.11      
     5.1 --- a/bindings/python/ns3_module_core.py	Mon Jul 14 11:39:41 2008 +0100
     5.2 +++ b/bindings/python/ns3_module_core.py	Mon Jul 14 11:42:49 2008 +0100
     5.3 @@ -32,7 +32,7 @@
     5.4      ## object-factory.h: ns3::ObjectFactory [class]
     5.5      module.add_class('ObjectFactory')
     5.6      ## attribute.h: ns3::AttributeAccessor [class]
     5.7 -    module.add_class('AttributeAccessor', allow_subclassing=True, parent=root_module['ns3::RefCountBase'])
     5.8 +    module.add_class('AttributeAccessor', parent=root_module['ns3::RefCountBase'])
     5.9      ## random-variable.h: ns3::ParetoVariable [class]
    5.10      module.add_class('ParetoVariable', parent=root_module['ns3::RandomVariable'])
    5.11      ## random-variable.h: ns3::ConstantVariable [class]
    5.12 @@ -40,7 +40,7 @@
    5.13      ## random-variable.h: ns3::EmpiricalVariable [class]
    5.14      module.add_class('EmpiricalVariable', parent=root_module['ns3::RandomVariable'])
    5.15      ## enum.h: ns3::EnumChecker [class]
    5.16 -    module.add_class('EnumChecker', allow_subclassing=True, parent=root_module['ns3::AttributeChecker'])
    5.17 +    module.add_class('EnumChecker', parent=root_module['ns3::AttributeChecker'])
    5.18      ## empty.h: ns3::empty [class]
    5.19      module.add_class('empty')
    5.20      ## object-base.h: ns3::ObjectBase [class]
    5.21 @@ -82,7 +82,7 @@
    5.22      ## random-variable.h: ns3::IntEmpiricalVariable [class]
    5.23      module.add_class('IntEmpiricalVariable', parent=root_module['ns3::EmpiricalVariable'])
    5.24      ## pointer.h: ns3::PointerChecker [class]
    5.25 -    module.add_class('PointerChecker', allow_subclassing=True, parent=root_module['ns3::AttributeChecker'])
    5.26 +    module.add_class('PointerChecker', parent=root_module['ns3::AttributeChecker'])
    5.27      ## random-variable.h: ns3::WeibullVariable [class]
    5.28      module.add_class('WeibullVariable', parent=root_module['ns3::RandomVariable'])
    5.29      ## callback.h: ns3::CallbackBase [class]
    5.30 @@ -118,47 +118,47 @@
    5.31      ## random-variable.h: ns3::UniformVariable [class]
    5.32      module.add_class('UniformVariable', parent=root_module['ns3::RandomVariable'])
    5.33      ## object.h: ns3::Object [class]
    5.34 -    module.add_class('Object', peekref_method='GetReferenceCount', parent=root_module['ns3::ObjectBase'], incref_method='Ref', decref_method='Unref', allow_subclassing=True, automatic_type_narrowing=True)
    5.35 +    module.add_class('Object', incref_method='Ref', automatic_type_narrowing=True, decref_method='Unref', parent=root_module['ns3::ObjectBase'], peekref_method='GetReferenceCount')
    5.36      ## object.h: ns3::Object::AggregateIterator [class]
    5.37      module.add_class('AggregateIterator', outer_class=root_module['ns3::Object'])
    5.38      ## random-variable.h: ns3::SequentialVariable [class]
    5.39      module.add_class('SequentialVariable', parent=root_module['ns3::RandomVariable'])
    5.40      ## object-vector.h: ns3::ObjectVectorChecker [class]
    5.41 -    module.add_class('ObjectVectorChecker', allow_subclassing=True, parent=root_module['ns3::AttributeChecker'])
    5.42 +    module.add_class('ObjectVectorChecker', parent=root_module['ns3::AttributeChecker'])
    5.43      ## string.h: ns3::StringChecker [class]
    5.44      module.add_class('StringChecker', parent=root_module['ns3::AttributeChecker'])
    5.45      ## object-vector.h: ns3::ObjectVectorValue [class]
    5.46 -    module.add_class('ObjectVectorValue', allow_subclassing=True, parent=root_module['ns3::AttributeValue'])
    5.47 +    module.add_class('ObjectVectorValue', parent=root_module['ns3::AttributeValue'])
    5.48      ## boolean.h: ns3::BooleanChecker [class]
    5.49      module.add_class('BooleanChecker', parent=root_module['ns3::AttributeChecker'])
    5.50      ## uinteger.h: ns3::UintegerValue [class]
    5.51 -    module.add_class('UintegerValue', allow_subclassing=True, parent=root_module['ns3::AttributeValue'])
    5.52 +    module.add_class('UintegerValue', parent=root_module['ns3::AttributeValue'])
    5.53      ## object-vector.h: ns3::ObjectVectorAccessor [class]
    5.54 -    module.add_class('ObjectVectorAccessor', allow_subclassing=True, parent=root_module['ns3::AttributeAccessor'])
    5.55 +    module.add_class('ObjectVectorAccessor', parent=root_module['ns3::AttributeAccessor'])
    5.56      ## pointer.h: ns3::PointerValue [class]
    5.57 -    module.add_class('PointerValue', allow_subclassing=True, parent=root_module['ns3::AttributeValue'])
    5.58 +    module.add_class('PointerValue', parent=root_module['ns3::AttributeValue'])
    5.59      ## object-factory.h: ns3::ObjectFactoryChecker [class]
    5.60      module.add_class('ObjectFactoryChecker', parent=root_module['ns3::AttributeChecker'])
    5.61      ## type-id.h: ns3::TypeIdChecker [class]
    5.62      module.add_class('TypeIdChecker', parent=root_module['ns3::AttributeChecker'])
    5.63      ## double.h: ns3::DoubleValue [class]
    5.64 -    module.add_class('DoubleValue', allow_subclassing=True, parent=root_module['ns3::AttributeValue'])
    5.65 +    module.add_class('DoubleValue', parent=root_module['ns3::AttributeValue'])
    5.66 +    ## type-id.h: ns3::TypeIdValue [class]
    5.67 +    module.add_class('TypeIdValue', parent=root_module['ns3::AttributeValue'])
    5.68 +    ## enum.h: ns3::EnumValue [class]
    5.69 +    module.add_class('EnumValue', parent=root_module['ns3::AttributeValue'])
    5.70 +    ## random-variable.h: ns3::RandomVariableValue [class]
    5.71 +    module.add_class('RandomVariableValue', parent=root_module['ns3::AttributeValue'])
    5.72 +    ## object-factory.h: ns3::ObjectFactoryValue [class]
    5.73 +    module.add_class('ObjectFactoryValue', parent=root_module['ns3::AttributeValue'])
    5.74 +    ## integer.h: ns3::IntegerValue [class]
    5.75 +    module.add_class('IntegerValue', parent=root_module['ns3::AttributeValue'])
    5.76 +    ## boolean.h: ns3::BooleanValue [class]
    5.77 +    module.add_class('BooleanValue', parent=root_module['ns3::AttributeValue'])
    5.78      ## string.h: ns3::StringValue [class]
    5.79 -    module.add_class('StringValue', allow_subclassing=True, parent=root_module['ns3::AttributeValue'])
    5.80 -    ## type-id.h: ns3::TypeIdValue [class]
    5.81 -    module.add_class('TypeIdValue', allow_subclassing=True, parent=root_module['ns3::AttributeValue'])
    5.82 -    ## enum.h: ns3::EnumValue [class]
    5.83 -    module.add_class('EnumValue', allow_subclassing=True, parent=root_module['ns3::AttributeValue'])
    5.84 -    ## random-variable.h: ns3::RandomVariableValue [class]
    5.85 -    module.add_class('RandomVariableValue', allow_subclassing=True, parent=root_module['ns3::AttributeValue'])
    5.86 -    ## object-factory.h: ns3::ObjectFactoryValue [class]
    5.87 -    module.add_class('ObjectFactoryValue', allow_subclassing=True, parent=root_module['ns3::AttributeValue'])
    5.88 -    ## integer.h: ns3::IntegerValue [class]
    5.89 -    module.add_class('IntegerValue', allow_subclassing=True, parent=root_module['ns3::AttributeValue'])
    5.90 +    module.add_class('StringValue', parent=root_module['ns3::AttributeValue'])
    5.91      ## attribute.h: ns3::EmptyAttributeValue [class]
    5.92 -    module.add_class('EmptyAttributeValue', allow_subclassing=True, parent=root_module['ns3::AttributeValue'])
    5.93 -    ## boolean.h: ns3::BooleanValue [class]
    5.94 -    module.add_class('BooleanValue', allow_subclassing=True, parent=root_module['ns3::AttributeValue'])
    5.95 +    module.add_class('EmptyAttributeValue', parent=root_module['ns3::AttributeValue'])
    5.96      ## traced-value.h: ns3::TracedValue<unsigned int> [class]
    5.97      module.add_class('TracedValue', template_parameters=['unsigned int'])
    5.98      ## traced-value.h: ns3::TracedValue<unsigned int> [class]
    5.99 @@ -273,14 +273,14 @@
   5.100      register_Ns3ObjectFactoryChecker_methods(root_module, root_module['ns3::ObjectFactoryChecker'])
   5.101      register_Ns3TypeIdChecker_methods(root_module, root_module['ns3::TypeIdChecker'])
   5.102      register_Ns3DoubleValue_methods(root_module, root_module['ns3::DoubleValue'])
   5.103 -    register_Ns3StringValue_methods(root_module, root_module['ns3::StringValue'])
   5.104      register_Ns3TypeIdValue_methods(root_module, root_module['ns3::TypeIdValue'])
   5.105      register_Ns3EnumValue_methods(root_module, root_module['ns3::EnumValue'])
   5.106      register_Ns3RandomVariableValue_methods(root_module, root_module['ns3::RandomVariableValue'])
   5.107      register_Ns3ObjectFactoryValue_methods(root_module, root_module['ns3::ObjectFactoryValue'])
   5.108      register_Ns3IntegerValue_methods(root_module, root_module['ns3::IntegerValue'])
   5.109 +    register_Ns3BooleanValue_methods(root_module, root_module['ns3::BooleanValue'])
   5.110 +    register_Ns3StringValue_methods(root_module, root_module['ns3::StringValue'])
   5.111      register_Ns3EmptyAttributeValue_methods(root_module, root_module['ns3::EmptyAttributeValue'])
   5.112 -    register_Ns3BooleanValue_methods(root_module, root_module['ns3::BooleanValue'])
   5.113      register_Ns3TracedValue__Unsigned_int_methods(root_module, root_module['ns3::TracedValue< unsigned int >'])
   5.114      return
   5.115  
   5.116 @@ -1061,23 +1061,6 @@
   5.117      cls.add_method('DeserializeFromString', 'bool', [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], is_virtual=True)
   5.118      return
   5.119  
   5.120 -def register_Ns3StringValue_methods(root_module, cls):
   5.121 -    ## string.h: ns3::StringValue::StringValue() [constructor]
   5.122 -    cls.add_constructor([], visibility='public')
   5.123 -    ## string.h: ns3::StringValue::StringValue(std::string const & value) [constructor]
   5.124 -    cls.add_constructor([param('std::string&', 'value', is_const=True)], visibility='public')
   5.125 -    ## string.h: void ns3::StringValue::Set(std::string const & value) [member function]
   5.126 -    cls.add_method('Set', 'void', [param('std::string&', 'value', is_const=True)])
   5.127 -    ## string.h: std::string ns3::StringValue::Get() const [member function]
   5.128 -    cls.add_method('Get', 'std::string', [], is_const=True)
   5.129 -    ## string.h: ns3::Ptr<ns3::AttributeValue> ns3::StringValue::Copy() const [member function]
   5.130 -    cls.add_method('Copy', 'ns3::Ptr< ns3::AttributeValue >', [], is_const=True, is_virtual=True)
   5.131 -    ## string.h: std::string ns3::StringValue::SerializeToString(ns3::Ptr<ns3::AttributeChecker const> checker) const [member function]
   5.132 -    cls.add_method('SerializeToString', 'std::string', [param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], is_const=True, is_virtual=True)
   5.133 -    ## string.h: bool ns3::StringValue::DeserializeFromString(std::string value, ns3::Ptr<ns3::AttributeChecker const> checker) [member function]
   5.134 -    cls.add_method('DeserializeFromString', 'bool', [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], is_virtual=True)
   5.135 -    return
   5.136 -
   5.137  def register_Ns3TypeIdValue_methods(root_module, cls):
   5.138      ## type-id.h: ns3::TypeIdValue::TypeIdValue() [constructor]
   5.139      cls.add_constructor([], visibility='public')
   5.140 @@ -1163,19 +1146,6 @@
   5.141      cls.add_method('DeserializeFromString', 'bool', [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], is_virtual=True)
   5.142      return
   5.143  
   5.144 -def register_Ns3EmptyAttributeValue_methods(root_module, cls):
   5.145 -    ## attribute.h: ns3::EmptyAttributeValue::EmptyAttributeValue(ns3::EmptyAttributeValue const & arg0) [copy constructor]
   5.146 -    cls.add_constructor([param('ns3::EmptyAttributeValue&', 'arg0', is_const=True)], visibility='public')
   5.147 -    ## attribute.h: ns3::EmptyAttributeValue::EmptyAttributeValue() [constructor]
   5.148 -    cls.add_constructor([], visibility='public')
   5.149 -    ## attribute.h: ns3::Ptr<ns3::AttributeValue> ns3::EmptyAttributeValue::Copy() const [member function]
   5.150 -    cls.add_method('Copy', 'ns3::Ptr< ns3::AttributeValue >', [], is_const=True, visibility='private', is_virtual=True)
   5.151 -    ## attribute.h: std::string ns3::EmptyAttributeValue::SerializeToString(ns3::Ptr<ns3::AttributeChecker const> checker) const [member function]
   5.152 -    cls.add_method('SerializeToString', 'std::string', [param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], is_const=True, visibility='private', is_virtual=True)
   5.153 -    ## attribute.h: bool ns3::EmptyAttributeValue::DeserializeFromString(std::string value, ns3::Ptr<ns3::AttributeChecker const> checker) [member function]
   5.154 -    cls.add_method('DeserializeFromString', 'bool', [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], visibility='private', is_virtual=True)
   5.155 -    return
   5.156 -
   5.157  def register_Ns3BooleanValue_methods(root_module, cls):
   5.158      ## boolean.h: ns3::BooleanValue::BooleanValue(ns3::BooleanValue const & arg0) [copy constructor]
   5.159      cls.add_constructor([param('ns3::BooleanValue&', 'arg0', is_const=True)], visibility='public')
   5.160 @@ -1196,6 +1166,36 @@
   5.161      cls.add_output_stream_operator()
   5.162      return
   5.163  
   5.164 +def register_Ns3StringValue_methods(root_module, cls):
   5.165 +    ## string.h: ns3::StringValue::StringValue() [constructor]
   5.166 +    cls.add_constructor([], visibility='public')
   5.167 +    ## string.h: ns3::StringValue::StringValue(std::string const & value) [constructor]
   5.168 +    cls.add_constructor([param('std::string&', 'value', is_const=True)], visibility='public')
   5.169 +    ## string.h: void ns3::StringValue::Set(std::string const & value) [member function]
   5.170 +    cls.add_method('Set', 'void', [param('std::string&', 'value', is_const=True)])
   5.171 +    ## string.h: std::string ns3::StringValue::Get() const [member function]
   5.172 +    cls.add_method('Get', 'std::string', [], is_const=True)
   5.173 +    ## string.h: ns3::Ptr<ns3::AttributeValue> ns3::StringValue::Copy() const [member function]
   5.174 +    cls.add_method('Copy', 'ns3::Ptr< ns3::AttributeValue >', [], is_const=True, is_virtual=True)
   5.175 +    ## string.h: std::string ns3::StringValue::SerializeToString(ns3::Ptr<ns3::AttributeChecker const> checker) const [member function]
   5.176 +    cls.add_method('SerializeToString', 'std::string', [param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], is_const=True, is_virtual=True)
   5.177 +    ## string.h: bool ns3::StringValue::DeserializeFromString(std::string value, ns3::Ptr<ns3::AttributeChecker const> checker) [member function]
   5.178 +    cls.add_method('DeserializeFromString', 'bool', [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], is_virtual=True)
   5.179 +    return
   5.180 +
   5.181 +def register_Ns3EmptyAttributeValue_methods(root_module, cls):
   5.182 +    ## attribute.h: ns3::EmptyAttributeValue::EmptyAttributeValue(ns3::EmptyAttributeValue const & arg0) [copy constructor]
   5.183 +    cls.add_constructor([param('ns3::EmptyAttributeValue&', 'arg0', is_const=True)], visibility='public')
   5.184 +    ## attribute.h: ns3::EmptyAttributeValue::EmptyAttributeValue() [constructor]
   5.185 +    cls.add_constructor([], visibility='public')
   5.186 +    ## attribute.h: ns3::Ptr<ns3::AttributeValue> ns3::EmptyAttributeValue::Copy() const [member function]
   5.187 +    cls.add_method('Copy', 'ns3::Ptr< ns3::AttributeValue >', [], is_const=True, visibility='private', is_virtual=True)
   5.188 +    ## attribute.h: std::string ns3::EmptyAttributeValue::SerializeToString(ns3::Ptr<ns3::AttributeChecker const> checker) const [member function]
   5.189 +    cls.add_method('SerializeToString', 'std::string', [param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], is_const=True, visibility='private', is_virtual=True)
   5.190 +    ## attribute.h: bool ns3::EmptyAttributeValue::DeserializeFromString(std::string value, ns3::Ptr<ns3::AttributeChecker const> checker) [member function]
   5.191 +    cls.add_method('DeserializeFromString', 'bool', [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], visibility='private', is_virtual=True)
   5.192 +    return
   5.193 +
   5.194  def register_Ns3TracedValue__Unsigned_int_methods(root_module, cls):
   5.195      ## traced-value.h: ns3::TracedValue<unsigned int>::TracedValue() [constructor]
   5.196      cls.add_constructor([], visibility='public')
     6.1 --- a/bindings/python/ns3_module_csma.py	Mon Jul 14 11:39:41 2008 +0100
     6.2 +++ b/bindings/python/ns3_module_csma.py	Mon Jul 14 11:42:49 2008 +0100
     6.3 @@ -10,9 +10,9 @@
     6.4      ## backoff.h: ns3::Backoff [class]
     6.5      module.add_class('Backoff')
     6.6      ## csma-channel.h: ns3::CsmaChannel [class]
     6.7 -    module.add_class('CsmaChannel', allow_subclassing=True, parent=root_module['ns3::Channel'])
     6.8 +    module.add_class('CsmaChannel', parent=root_module['ns3::Channel'])
     6.9      ## csma-net-device.h: ns3::CsmaNetDevice [class]
    6.10 -    module.add_class('CsmaNetDevice', allow_subclassing=True, parent=root_module['ns3::NetDevice'])
    6.11 +    module.add_class('CsmaNetDevice', parent=root_module['ns3::NetDevice'])
    6.12      ## csma-net-device.h: ns3::CsmaNetDevice::CsmaEncapsulationMode [enumeration]
    6.13      module.add_enum('CsmaEncapsulationMode', ['ETHERNET_V1', 'IP_ARP', 'RAW', 'LLC'], outer_class=root_module['ns3::CsmaNetDevice'])
    6.14      
    6.15 @@ -159,8 +159,8 @@
    6.16      cls.add_method('SetQueue', 'void', [param('ns3::Ptr< ns3::Queue >', 'queue')])
    6.17      ## csma-net-device.h: void ns3::CsmaNetDevice::SetReceiveErrorModel(ns3::Ptr<ns3::ErrorModel> em) [member function]
    6.18      cls.add_method('SetReceiveErrorModel', 'void', [param('ns3::Ptr< ns3::ErrorModel >', 'em')])
    6.19 -    ## csma-net-device.h: void ns3::CsmaNetDevice::Receive(ns3::Ptr<ns3::Packet> p) [member function]
    6.20 -    cls.add_method('Receive', 'void', [param('ns3::Ptr< ns3::Packet >', 'p')])
    6.21 +    ## csma-net-device.h: void ns3::CsmaNetDevice::Receive(ns3::Ptr<ns3::Packet> p, ns3::Ptr<ns3::CsmaNetDevice> sender) [member function]
    6.22 +    cls.add_method('Receive', 'void', [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Ptr< ns3::CsmaNetDevice >', 'sender')])
    6.23      ## csma-net-device.h: bool ns3::CsmaNetDevice::IsSendEnabled() [member function]
    6.24      cls.add_method('IsSendEnabled', 'bool', [])
    6.25      ## csma-net-device.h: void ns3::CsmaNetDevice::SetSendEnable(bool enable) [member function]
    6.26 @@ -205,20 +205,22 @@
    6.27      cls.add_method('IsPointToPoint', 'bool', [], is_const=True, is_virtual=True)
    6.28      ## csma-net-device.h: bool ns3::CsmaNetDevice::Send(ns3::Ptr<ns3::Packet> packet, ns3::Address const & dest, uint16_t protocolNumber) [member function]
    6.29      cls.add_method('Send', 'bool', [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address&', 'dest', is_const=True), param('uint16_t', 'protocolNumber')], is_virtual=True)
    6.30 +    ## csma-net-device.h: bool ns3::CsmaNetDevice::SendFrom(ns3::Ptr<ns3::Packet> packet, ns3::Address const & source, ns3::Address const & dest, uint16_t protocolNumber) [member function]
    6.31 +    cls.add_method('SendFrom', 'bool', [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address&', 'source', is_const=True), param('ns3::Address&', 'dest', is_const=True), param('uint16_t', 'protocolNumber')], is_virtual=True)
    6.32      ## csma-net-device.h: ns3::Ptr<ns3::Node> ns3::CsmaNetDevice::GetNode() const [member function]
    6.33      cls.add_method('GetNode', 'ns3::Ptr< ns3::Node >', [], is_const=True, is_virtual=True)
    6.34      ## csma-net-device.h: void ns3::CsmaNetDevice::SetNode(ns3::Ptr<ns3::Node> node) [member function]
    6.35      cls.add_method('SetNode', 'void', [param('ns3::Ptr< ns3::Node >', 'node')], is_virtual=True)
    6.36      ## csma-net-device.h: bool ns3::CsmaNetDevice::NeedsArp() const [member function]
    6.37      cls.add_method('NeedsArp', 'bool', [], is_const=True, is_virtual=True)
    6.38 -    ## csma-net-device.h: void ns3::CsmaNetDevice::SetReceiveCallback(ns3::Callback<bool, ns3::Ptr<ns3::NetDevice>, ns3::Ptr<ns3::Packet>, unsigned short, ns3::Address const&, ns3::empty, ns3::empty> cb) [member function]
    6.39 -    cls.add_method('SetReceiveCallback', 'void', [param('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet >, unsigned short, ns3::Address const&, ns3::empty, ns3::empty >', 'cb')], is_virtual=True)
    6.40 +    ## csma-net-device.h: void ns3::CsmaNetDevice::SetReceiveCallback(ns3::Callback<bool, ns3::Ptr<ns3::NetDevice>, ns3::Ptr<ns3::Packet>, unsigned short, ns3::Address const&, ns3::Address const&, ns3::NetDevice::PacketType> cb) [member function]
    6.41 +    cls.add_method('SetReceiveCallback', 'void', [param('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet >, unsigned short, ns3::Address const&, ns3::Address const&, ns3::NetDevice::PacketType >', 'cb')], is_virtual=True)
    6.42      ## csma-net-device.h: void ns3::CsmaNetDevice::DoDispose() [member function]
    6.43      cls.add_method('DoDispose', 'void', [], visibility='protected', is_virtual=True)
    6.44      ## csma-net-device.h: ns3::Ptr<ns3::Queue> ns3::CsmaNetDevice::GetQueue() const [member function]
    6.45      cls.add_method('GetQueue', 'ns3::Ptr< ns3::Queue >', [], is_const=True, visibility='protected')
    6.46 -    ## csma-net-device.h: void ns3::CsmaNetDevice::AddHeader(ns3::Ptr<ns3::Packet> p, ns3::Mac48Address dest, uint16_t protocolNumber) [member function]
    6.47 -    cls.add_method('AddHeader', 'void', [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Mac48Address', 'dest'), param('uint16_t', 'protocolNumber')], visibility='protected')
    6.48 +    ## csma-net-device.h: void ns3::CsmaNetDevice::AddHeader(ns3::Ptr<ns3::Packet> p, ns3::Mac48Address source, ns3::Mac48Address dest, uint16_t protocolNumber) [member function]
    6.49 +    cls.add_method('AddHeader', 'void', [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Mac48Address', 'source'), param('ns3::Mac48Address', 'dest'), param('uint16_t', 'protocolNumber')], visibility='protected')
    6.50      ## csma-net-device.h: bool ns3::CsmaNetDevice::ProcessHeader(ns3::Ptr<ns3::Packet> p, uint16_t & param) [member function]
    6.51      cls.add_method('ProcessHeader', 'bool', [param('ns3::Ptr< ns3::Packet >', 'p'), param('uint16_t&', 'param')], visibility='protected')
    6.52      return
     7.1 --- a/bindings/python/ns3_module_global_routing.py	Mon Jul 14 11:39:41 2008 +0100
     7.2 +++ b/bindings/python/ns3_module_global_routing.py	Mon Jul 14 11:42:49 2008 +0100
     7.3 @@ -16,7 +16,7 @@
     7.4      ## global-router-interface.h: ns3::GlobalRoutingLinkRecord::LinkType [enumeration]
     7.5      module.add_enum('LinkType', ['Unknown', 'PointToPoint', 'TransitNetwork', 'StubNetwork', 'VirtualLink'], outer_class=root_module['ns3::GlobalRoutingLinkRecord'])
     7.6      ## global-router-interface.h: ns3::GlobalRouter [class]
     7.7 -    module.add_class('GlobalRouter', allow_subclassing=True, is_singleton=True, parent=root_module['ns3::Object'])
     7.8 +    module.add_class('GlobalRouter', is_singleton=True, parent=root_module['ns3::Object'])
     7.9      
    7.10      ## Register a nested module for the namespace internal
    7.11      
     8.1 --- a/bindings/python/ns3_module_internet_stack.py	Mon Jul 14 11:39:41 2008 +0100
     8.2 +++ b/bindings/python/ns3_module_internet_stack.py	Mon Jul 14 11:42:49 2008 +0100
     8.3 @@ -4,17 +4,17 @@
     8.4      root_module = module.get_root()
     8.5      
     8.6      ## ipv4-interface.h: ns3::Ipv4Interface [class]
     8.7 -    module.add_class('Ipv4Interface', allow_subclassing=True, parent=root_module['ns3::Object'])
     8.8 +    module.add_class('Ipv4Interface', parent=root_module['ns3::Object'])
     8.9      ## udp-header.h: ns3::UdpHeader [class]
    8.10 -    module.add_class('UdpHeader', allow_subclassing=True, parent=root_module['ns3::Header'])
    8.11 +    module.add_class('UdpHeader', parent=root_module['ns3::Header'])
    8.12      ## tcp-header.h: ns3::TcpHeader [class]
    8.13 -    module.add_class('TcpHeader', allow_subclassing=True, parent=root_module['ns3::Header'])
    8.14 +    module.add_class('TcpHeader', parent=root_module['ns3::Header'])
    8.15      ## tcp-header.h: ns3::TcpHeader::Flags_t [enumeration]
    8.16      module.add_enum('Flags_t', ['NONE', 'FIN', 'SYN', 'RST', 'PSH', 'ACK', 'URG'], outer_class=root_module['ns3::TcpHeader'])
    8.17      ## ipv4-static-routing.h: ns3::Ipv4StaticRouting [class]
    8.18 -    module.add_class('Ipv4StaticRouting', allow_subclassing=True, parent=root_module['ns3::Ipv4RoutingProtocol'])
    8.19 +    module.add_class('Ipv4StaticRouting', parent=root_module['ns3::Ipv4RoutingProtocol'])
    8.20      ## ipv4-l3-protocol.h: ns3::Ipv4L3Protocol [class]
    8.21 -    module.add_class('Ipv4L3Protocol', allow_subclassing=True, parent=root_module['ns3::Object'])
    8.22 +    module.add_class('Ipv4L3Protocol', parent=root_module['ns3::Object'])
    8.23      
    8.24      ## Register a nested module for the namespace internal
    8.25      
    8.26 @@ -245,8 +245,8 @@
    8.27      cls.add_method('SetDefaultTtl', 'void', [param('uint8_t', 'ttl')])
    8.28      ## ipv4-l3-protocol.h: ns3::Ptr<ns3::Ipv4Interface> ns3::Ipv4L3Protocol::FindInterfaceForDevice(ns3::Ptr<const ns3::NetDevice> device) [member function]
    8.29      cls.add_method('FindInterfaceForDevice', 'ns3::Ptr< ns3::Ipv4Interface >', [param('ns3::Ptr< const ns3::NetDevice >', 'device')])
    8.30 -    ## ipv4-l3-protocol.h: void ns3::Ipv4L3Protocol::Receive(ns3::Ptr<ns3::NetDevice> device, ns3::Ptr<ns3::Packet> p, uint16_t protocol, ns3::Address const & from) [member function]
    8.31 -    cls.add_method('Receive', 'void', [param('ns3::Ptr< ns3::NetDevice >', 'device'), param('ns3::Ptr< ns3::Packet >', 'p'), param('uint16_t', 'protocol'), param('ns3::Address&', 'from', is_const=True)])
    8.32 +    ## ipv4-l3-protocol.h: void ns3::Ipv4L3Protocol::Receive(ns3::Ptr<ns3::NetDevice> device, ns3::Ptr<ns3::Packet> p, uint16_t protocol, ns3::Address const & from, ns3::Address const & to, ns3::NetDevice::PacketType packetType) [member function]
    8.33 +    cls.add_method('Receive', 'void', [param('ns3::Ptr< ns3::NetDevice >', 'device'), param('ns3::Ptr< ns3::Packet >', 'p'), param('uint16_t', 'protocol'), param('ns3::Address&', 'from', is_const=True), param('ns3::Address&', 'to', is_const=True), param('ns3::NetDevice::PacketType', 'packetType')])
    8.34      ## ipv4-l3-protocol.h: void ns3::Ipv4L3Protocol::Send(ns3::Ptr<ns3::Packet> packet, ns3::Ipv4Address source, ns3::Ipv4Address destination, uint8_t protocol) [member function]
    8.35      cls.add_method('Send', 'void', [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Ipv4Address', 'source'), param('ns3::Ipv4Address', 'destination'), param('uint8_t', 'protocol')])
    8.36      ## ipv4-l3-protocol.h: void ns3::Ipv4L3Protocol::AddHostRouteTo(ns3::Ipv4Address dest, ns3::Ipv4Address nextHop, uint32_t interface) [member function]
     9.1 --- a/bindings/python/ns3_module_mobility.py	Mon Jul 14 11:39:41 2008 +0100
     9.2 +++ b/bindings/python/ns3_module_mobility.py	Mon Jul 14 11:42:49 2008 +0100
     9.3 @@ -16,37 +16,37 @@
     9.4      ## rectangle.h: ns3::Rectangle::Side [enumeration]
     9.5      module.add_enum('Side', ['RIGHT', 'LEFT', 'TOP', 'BOTTOM'], outer_class=root_module['ns3::Rectangle'])
     9.6      ## position-allocator.h: ns3::PositionAllocator [class]
     9.7 -    module.add_class('PositionAllocator', allow_subclassing=True, parent=root_module['ns3::Object'])
     9.8 +    module.add_class('PositionAllocator', parent=root_module['ns3::Object'])
     9.9      ## position-allocator.h: ns3::ListPositionAllocator [class]
    9.10 -    module.add_class('ListPositionAllocator', allow_subclassing=True, parent=root_module['ns3::PositionAllocator'])
    9.11 +    module.add_class('ListPositionAllocator', parent=root_module['ns3::PositionAllocator'])
    9.12      ## rectangle.h: ns3::RectangleValue [class]
    9.13 -    module.add_class('RectangleValue', allow_subclassing=True, parent=root_module['ns3::AttributeValue'])
    9.14 +    module.add_class('RectangleValue', parent=root_module['ns3::AttributeValue'])
    9.15      ## position-allocator.h: ns3::RandomRectanglePositionAllocator [class]
    9.16 -    module.add_class('RandomRectanglePositionAllocator', allow_subclassing=True, parent=root_module['ns3::PositionAllocator'])
    9.17 +    module.add_class('RandomRectanglePositionAllocator', parent=root_module['ns3::PositionAllocator'])
    9.18      ## vector.h: ns3::VectorValue [class]
    9.19 -    module.add_class('VectorValue', allow_subclassing=True, parent=root_module['ns3::AttributeValue'])
    9.20 +    module.add_class('VectorValue', parent=root_module['ns3::AttributeValue'])
    9.21      ## position-allocator.h: ns3::RandomDiscPositionAllocator [class]
    9.22 -    module.add_class('RandomDiscPositionAllocator', allow_subclassing=True, parent=root_module['ns3::PositionAllocator'])
    9.23 +    module.add_class('RandomDiscPositionAllocator', parent=root_module['ns3::PositionAllocator'])
    9.24      ## mobility-model.h: ns3::MobilityModel [class]
    9.25 -    module.add_class('MobilityModel', allow_subclassing=True, parent=root_module['ns3::Object'])
    9.26 +    module.add_class('MobilityModel', parent=root_module['ns3::Object'])
    9.27      ## random-direction-2d-mobility-model.h: ns3::RandomDirection2dMobilityModel [class]
    9.28 -    module.add_class('RandomDirection2dMobilityModel', allow_subclassing=True, parent=root_module['ns3::MobilityModel'])
    9.29 +    module.add_class('RandomDirection2dMobilityModel', parent=root_module['ns3::MobilityModel'])
    9.30      ## position-allocator.h: ns3::GridPositionAllocator [class]
    9.31 -    module.add_class('GridPositionAllocator', allow_subclassing=True, parent=root_module['ns3::PositionAllocator'])
    9.32 +    module.add_class('GridPositionAllocator', parent=root_module['ns3::PositionAllocator'])
    9.33      ## position-allocator.h: ns3::GridPositionAllocator::LayoutType [enumeration]
    9.34      module.add_enum('LayoutType', ['ROW_FIRST', 'COLUMN_FIRST'], outer_class=root_module['ns3::GridPositionAllocator'])
    9.35      ## random-waypoint-mobility-model.h: ns3::RandomWaypointMobilityModel [class]
    9.36 -    module.add_class('RandomWaypointMobilityModel', allow_subclassing=True, parent=root_module['ns3::MobilityModel'])
    9.37 +    module.add_class('RandomWaypointMobilityModel', parent=root_module['ns3::MobilityModel'])
    9.38      ## random-walk-2d-mobility-model.h: ns3::RandomWalk2dMobilityModel [class]
    9.39 -    module.add_class('RandomWalk2dMobilityModel', allow_subclassing=True, parent=root_module['ns3::MobilityModel'])
    9.40 +    module.add_class('RandomWalk2dMobilityModel', parent=root_module['ns3::MobilityModel'])
    9.41      ## random-walk-2d-mobility-model.h: ns3::RandomWalk2dMobilityModel::Mode [enumeration]
    9.42      module.add_enum('Mode', ['MODE_DISTANCE', 'MODE_TIME'], outer_class=root_module['ns3::RandomWalk2dMobilityModel'])
    9.43      ## static-speed-mobility-model.h: ns3::StaticSpeedMobilityModel [class]
    9.44 -    module.add_class('StaticSpeedMobilityModel', allow_subclassing=True, parent=root_module['ns3::MobilityModel'])
    9.45 +    module.add_class('StaticSpeedMobilityModel', parent=root_module['ns3::MobilityModel'])
    9.46      ## hierarchical-mobility-model.h: ns3::HierarchicalMobilityModel [class]
    9.47 -    module.add_class('HierarchicalMobilityModel', allow_subclassing=True, parent=root_module['ns3::MobilityModel'])
    9.48 +    module.add_class('HierarchicalMobilityModel', parent=root_module['ns3::MobilityModel'])
    9.49      ## static-mobility-model.h: ns3::StaticMobilityModel [class]
    9.50 -    module.add_class('StaticMobilityModel', allow_subclassing=True, parent=root_module['ns3::MobilityModel'])
    9.51 +    module.add_class('StaticMobilityModel', parent=root_module['ns3::MobilityModel'])
    9.52      
    9.53      ## Register a nested module for the namespace internal
    9.54      
    10.1 --- a/bindings/python/ns3_module_node.py	Mon Jul 14 11:39:41 2008 +0100
    10.2 +++ b/bindings/python/ns3_module_node.py	Mon Jul 14 11:42:49 2008 +0100
    10.3 @@ -40,15 +40,15 @@
    10.4      ## ipv4-address.h: ns3::Ipv4Mask [class]
    10.5      module.add_class('Ipv4Mask')
    10.6      ## ipv4-address.h: ns3::Ipv4AddressValue [class]
    10.7 -    module.add_class('Ipv4AddressValue', allow_subclassing=True, parent=root_module['ns3::AttributeValue'])
    10.8 +    module.add_class('Ipv4AddressValue', parent=root_module['ns3::AttributeValue'])
    10.9      ## ipv4.h: ns3::Ipv4RoutingProtocol [class]
   10.10 -    module.add_class('Ipv4RoutingProtocol', allow_subclassing=True, parent=root_module['ns3::Object'])
   10.11 +    module.add_class('Ipv4RoutingProtocol', parent=root_module['ns3::Object'])
   10.12      ## mac48-address.h: ns3::Mac48AddressValue [class]
   10.13 -    module.add_class('Mac48AddressValue', allow_subclassing=True, parent=root_module['ns3::AttributeValue'])
   10.14 +    module.add_class('Mac48AddressValue', parent=root_module['ns3::AttributeValue'])
   10.15      ## ipv4-address.h: ns3::Ipv4MaskValue [class]
   10.16 -    module.add_class('Ipv4MaskValue', allow_subclassing=True, parent=root_module['ns3::AttributeValue'])
   10.17 +    module.add_class('Ipv4MaskValue', parent=root_module['ns3::AttributeValue'])
   10.18      ## socket.h: ns3::SocketAddressTag [class]
   10.19 -    module.add_class('SocketAddressTag', allow_subclassing=True, parent=root_module['ns3::Tag'])
   10.20 +    module.add_class('SocketAddressTag', parent=root_module['ns3::Tag'])
   10.21      ## inet-socket-address.h: ns3::InetSocketAddress [class]
   10.22      module.add_class('InetSocketAddress')
   10.23      ## inet-socket-address.h: ns3::InetSocketAddress [class]
   10.24 @@ -58,51 +58,53 @@
   10.25      ## ipv4-address.h: ns3::Ipv4Address [class]
   10.26      root_module['ns3::Ipv4Address'].implicitly_converts_to(root_module['ns3::Address'])
   10.27      ## application.h: ns3::Application [class]
   10.28 -    module.add_class('Application', allow_subclassing=True, parent=root_module['ns3::Object'])
   10.29 +    module.add_class('Application', parent=root_module['ns3::Object'])
   10.30      ## queue.h: ns3::Queue [class]
   10.31 -    module.add_class('Queue', allow_subclassing=True, parent=root_module['ns3::Object'])
   10.32 +    module.add_class('Queue', parent=root_module['ns3::Object'])
   10.33      ## socket.h: ns3::Socket [class]
   10.34 -    module.add_class('Socket', allow_subclassing=True, parent=root_module['ns3::Object'])
   10.35 +    module.add_class('Socket', parent=root_module['ns3::Object'])
   10.36      ## socket.h: ns3::Socket::SocketErrno [enumeration]
   10.37      module.add_enum('SocketErrno', ['ERROR_NOTERROR', 'ERROR_ISCONN', 'ERROR_NOTCONN', 'ERROR_MSGSIZE', 'ERROR_AGAIN', 'ERROR_SHUTDOWN', 'ERROR_OPNOTSUPP', 'ERROR_AFNOSUPPORT', 'ERROR_INVAL', 'ERROR_BADF', 'ERROR_NOROUTETOHOST', 'SOCKET_ERRNO_LAST'], outer_class=root_module['ns3::Socket'])
   10.38      ## ipv4-header.h: ns3::Ipv4Header [class]
   10.39 -    module.add_class('Ipv4Header', allow_subclassing=True, parent=root_module['ns3::Header'])
   10.40 +    module.add_class('Ipv4Header', parent=root_module['ns3::Header'])
   10.41      ## udp-socket.h: ns3::UdpSocket [class]
   10.42 -    module.add_class('UdpSocket', allow_subclassing=True, parent=root_module['ns3::Socket'])
   10.43 +    module.add_class('UdpSocket', parent=root_module['ns3::Socket'])
   10.44      ## net-device.h: ns3::NetDevice [class]
   10.45 -    module.add_class('NetDevice', allow_subclassing=True, parent=root_module['ns3::Object'])
   10.46 +    module.add_class('NetDevice', parent=root_module['ns3::Object'])
   10.47 +    ## net-device.h: ns3::NetDevice::PacketType [enumeration]
   10.48 +    module.add_enum('PacketType', ['PACKET_HOST', 'PACKET_BROADCAST', 'PACKET_MULTICAST', 'PACKET_OTHERHOST'], outer_class=root_module['ns3::NetDevice'])
   10.49 +    ## address.h: ns3::AddressValue [class]
   10.50 +    module.add_class('AddressValue', parent=root_module['ns3::AttributeValue'])
   10.51 +    ## node.h: ns3::Node [class]
   10.52 +    module.add_class('Node', parent=root_module['ns3::Object'])
   10.53 +    ## tcp-socket.h: ns3::TcpSocket [class]
   10.54 +    module.add_class('TcpSocket', parent=root_module['ns3::Socket'])
   10.55      ## channel.h: ns3::Channel [class]
   10.56 -    module.add_class('Channel', allow_subclassing=True, parent=root_module['ns3::Object'])
   10.57 -    ## simple-channel.h: ns3::SimpleChannel [class]
   10.58 -    module.add_class('SimpleChannel', allow_subclassing=True, parent=root_module['ns3::Channel'])
   10.59 -    ## address.h: ns3::AddressValue [class]
   10.60 -    module.add_class('AddressValue', allow_subclassing=True, parent=root_module['ns3::AttributeValue'])
   10.61 -    ## node.h: ns3::Node [class]
   10.62 -    module.add_class('Node', allow_subclassing=True, parent=root_module['ns3::Object'])
   10.63 -    ## tcp-socket.h: ns3::TcpSocket [class]
   10.64 -    module.add_class('TcpSocket', allow_subclassing=True, parent=root_module['ns3::Socket'])
   10.65 +    module.add_class('Channel', parent=root_module['ns3::Object'])
   10.66      ## ethernet-header.h: ns3::EthernetHeader [class]
   10.67 -    module.add_class('EthernetHeader', allow_subclassing=True, parent=root_module['ns3::Header'])
   10.68 +    module.add_class('EthernetHeader', parent=root_module['ns3::Header'])
   10.69      ## socket.h: ns3::SocketIpTtlTag [class]
   10.70 -    module.add_class('SocketIpTtlTag', allow_subclassing=True, parent=root_module['ns3::Tag'])
   10.71 +    module.add_class('SocketIpTtlTag', parent=root_module['ns3::Tag'])
   10.72      ## ipv4.h: ns3::Ipv4 [class]
   10.73 -    module.add_class('Ipv4', allow_subclassing=True, parent=root_module['ns3::Object'])
   10.74 +    module.add_class('Ipv4', parent=root_module['ns3::Object'])
   10.75      ## socket-factory.h: ns3::SocketFactory [class]
   10.76 -    module.add_class('SocketFactory', allow_subclassing=True, parent=root_module['ns3::Object'])
   10.77 +    module.add_class('SocketFactory', parent=root_module['ns3::Object'])
   10.78      ## drop-tail-queue.h: ns3::DropTailQueue [class]
   10.79 -    module.add_class('DropTailQueue', allow_subclassing=True, parent=root_module['ns3::Queue'])
   10.80 +    module.add_class('DropTailQueue', parent=root_module['ns3::Queue'])
   10.81      ## ethernet-trailer.h: ns3::EthernetTrailer [class]
   10.82 -    module.add_class('EthernetTrailer', allow_subclassing=True, parent=root_module['ns3::Trailer'])
   10.83 +    module.add_class('EthernetTrailer', parent=root_module['ns3::Trailer'])
   10.84      ## llc-snap-header.h: ns3::LlcSnapHeader [class]
   10.85 -    module.add_class('LlcSnapHeader', allow_subclassing=True, parent=root_module['ns3::Header'])
   10.86 +    module.add_class('LlcSnapHeader', parent=root_module['ns3::Header'])
   10.87      ## udp-socket-factory.h: ns3::UdpSocketFactory [class]
   10.88      module.add_class('UdpSocketFactory', parent=root_module['ns3::SocketFactory'])
   10.89      ## simple-net-device.h: ns3::SimpleNetDevice [class]
   10.90 -    module.add_class('SimpleNetDevice', allow_subclassing=True, parent=root_module['ns3::NetDevice'])
   10.91 +    module.add_class('SimpleNetDevice', parent=root_module['ns3::NetDevice'])
   10.92 +    ## simple-channel.h: ns3::SimpleChannel [class]
   10.93 +    module.add_class('SimpleChannel', parent=root_module['ns3::Channel'])
   10.94      ## tcp-socket-factory.h: ns3::TcpSocketFactory [class]
   10.95      module.add_class('TcpSocketFactory', parent=root_module['ns3::SocketFactory'])
   10.96      ## packet-socket-factory.h: ns3::PacketSocketFactory [class]
   10.97 -    module.add_class('PacketSocketFactory', allow_subclassing=True, parent=root_module['ns3::SocketFactory'])
   10.98 +    module.add_class('PacketSocketFactory', parent=root_module['ns3::SocketFactory'])
   10.99      
  10.100      ## Register a nested module for the namespace internal
  10.101      
  10.102 @@ -171,11 +173,10 @@
  10.103      register_Ns3Ipv4Header_methods(root_module, root_module['ns3::Ipv4Header'])
  10.104      register_Ns3UdpSocket_methods(root_module, root_module['ns3::UdpSocket'])
  10.105      register_Ns3NetDevice_methods(root_module, root_module['ns3::NetDevice'])
  10.106 -    register_Ns3Channel_methods(root_module, root_module['ns3::Channel'])
  10.107 -    register_Ns3SimpleChannel_methods(root_module, root_module['ns3::SimpleChannel'])
  10.108      register_Ns3AddressValue_methods(root_module, root_module['ns3::AddressValue'])
  10.109      register_Ns3Node_methods(root_module, root_module['ns3::Node'])
  10.110      register_Ns3TcpSocket_methods(root_module, root_module['ns3::TcpSocket'])
  10.111 +    register_Ns3Channel_methods(root_module, root_module['ns3::Channel'])
  10.112      register_Ns3EthernetHeader_methods(root_module, root_module['ns3::EthernetHeader'])
  10.113      register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag'])
  10.114      register_Ns3Ipv4_methods(root_module, root_module['ns3::Ipv4'])
  10.115 @@ -185,6 +186,7 @@
  10.116      register_Ns3LlcSnapHeader_methods(root_module, root_module['ns3::LlcSnapHeader'])
  10.117      register_Ns3UdpSocketFactory_methods(root_module, root_module['ns3::UdpSocketFactory'])
  10.118      register_Ns3SimpleNetDevice_methods(root_module, root_module['ns3::SimpleNetDevice'])
  10.119 +    register_Ns3SimpleChannel_methods(root_module, root_module['ns3::SimpleChannel'])
  10.120      register_Ns3TcpSocketFactory_methods(root_module, root_module['ns3::TcpSocketFactory'])
  10.121      register_Ns3PacketSocketFactory_methods(root_module, root_module['ns3::PacketSocketFactory'])
  10.122      return
  10.123 @@ -851,49 +853,19 @@
  10.124      cls.add_method('IsPointToPoint', 'bool', [], is_pure_virtual=True, is_const=True, is_virtual=True)
  10.125      ## net-device.h: bool ns3::NetDevice::Send(ns3::Ptr<ns3::Packet> packet, ns3::Address const & dest, uint16_t protocolNumber) [member function]
  10.126      cls.add_method('Send', 'bool', [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address&', 'dest', is_const=True), param('uint16_t', 'protocolNumber')], is_pure_virtual=True, is_virtual=True)
  10.127 +    ## net-device.h: bool ns3::NetDevice::SendFrom(ns3::Ptr<ns3::Packet> packet, ns3::Address const & source, ns3::Address const & dest, uint16_t protocolNumber) [member function]
  10.128 +    cls.add_method('SendFrom', 'bool', [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address&', 'source', is_const=True), param('ns3::Address&', 'dest', is_const=True), param('uint16_t', 'protocolNumber')], is_pure_virtual=True, is_virtual=True)
  10.129      ## net-device.h: ns3::Ptr<ns3::Node> ns3::NetDevice::GetNode() const [member function]
  10.130      cls.add_method('GetNode', 'ns3::Ptr< ns3::Node >', [], is_pure_virtual=True, is_const=True, is_virtual=True)
  10.131      ## net-device.h: void ns3::NetDevice::SetNode(ns3::Ptr<ns3::Node> node) [member function]
  10.132      cls.add_method('SetNode', 'void', [param('ns3::Ptr< ns3::Node >', 'node')], is_pure_virtual=True, is_virtual=True)
  10.133      ## net-device.h: bool ns3::NetDevice::NeedsArp() const [member function]
  10.134      cls.add_method('NeedsArp', 'bool', [], is_pure_virtual=True, is_const=True, is_virtual=True)
  10.135 -    ## net-device.h: void ns3::NetDevice::SetReceiveCallback(ns3::Callback<bool, ns3::Ptr<ns3::NetDevice>, ns3::Ptr<ns3::Packet>, unsigned short, ns3::Address const&, ns3::empty, ns3::empty> cb) [member function]
  10.136 -    cls.add_method('SetReceiveCallback', 'void', [param('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet >, unsigned short, ns3::Address const&, ns3::empty, ns3::empty >', 'cb')], is_pure_virtual=True, is_virtual=True)
  10.137 +    ## net-device.h: void ns3::NetDevice::SetReceiveCallback(ns3::Callback<bool, ns3::Ptr<ns3::NetDevice>, ns3::Ptr<ns3::Packet>, unsigned short, ns3::Address const&, ns3::Address const&, ns3::NetDevice::PacketType> cb) [member function]
  10.138 +    cls.add_method('SetReceiveCallback', 'void', [param('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet >, unsigned short, ns3::Address const&, ns3::Address const&, ns3::NetDevice::PacketType >', 'cb')], is_pure_virtual=True, is_virtual=True)
  10.139      cls.add_constructor([])
  10.140      return
  10.141  
  10.142 -def register_Ns3Channel_methods(root_module, cls):
  10.143 -    ## channel.h: static ns3::TypeId ns3::Channel::GetTypeId() [member function]
  10.144 -    cls.add_method('GetTypeId', 'ns3::TypeId', [], is_static=True)
  10.145 -    ## channel.h: ns3::Channel::Channel() [constructor]
  10.146 -    cls.add_constructor([], visibility='public')
  10.147 -    ## channel.h: ns3::Channel::Channel(std::string name) [constructor]
  10.148 -    cls.add_constructor([param('std::string', 'name')], visibility='public')
  10.149 -    ## channel.h: void ns3::Channel::SetName(std::string arg0) [member function]
  10.150 -    cls.add_method('SetName', 'void', [param('std::string', 'arg0')])
  10.151 -    ## channel.h: std::string ns3::Channel::GetName() [member function]
  10.152 -    cls.add_method('GetName', 'std::string', [])
  10.153 -    ## channel.h: uint32_t ns3::Channel::GetNDevices() const [member function]
  10.154 -    cls.add_method('GetNDevices', 'uint32_t', [], is_pure_virtual=True, is_const=True, is_virtual=True)
  10.155 -    ## channel.h: ns3::Ptr<ns3::NetDevice> ns3::Channel::GetDevice(uint32_t i) const [member function]
  10.156 -    cls.add_method('GetDevice', 'ns3::Ptr< ns3::NetDevice >', [param('uint32_t', 'i')], is_pure_virtual=True, is_const=True, is_virtual=True)
  10.157 -    return
  10.158 -
  10.159 -def register_Ns3SimpleChannel_methods(root_module, cls):
  10.160 -    ## simple-channel.h: static ns3::TypeId ns3::SimpleChannel::GetTypeId() [member function]
  10.161 -    cls.add_method('GetTypeId', 'ns3::TypeId', [], is_static=True)
  10.162 -    ## simple-channel.h: ns3::SimpleChannel::SimpleChannel() [constructor]
  10.163 -    cls.add_constructor([], visibility='public')
  10.164 -    ## simple-channel.h: void ns3::SimpleChannel::Send(ns3::Ptr<ns3::Packet> p, uint16_t protocol, ns3::Mac48Address to, ns3::Mac48Address from, ns3::Ptr<ns3::SimpleNetDevice> sender) [member function]
  10.165 -    cls.add_method('Send', 'void', [param('ns3::Ptr< ns3::Packet >', 'p'), param('uint16_t', 'protocol'), param('ns3::Mac48Address', 'to'), param('ns3::Mac48Address', 'from'), param('ns3::Ptr< ns3::SimpleNetDevice >', 'sender')])
  10.166 -    ## simple-channel.h: void ns3::SimpleChannel::Add(ns3::Ptr<ns3::SimpleNetDevice> device) [member function]
  10.167 -    cls.add_method('Add', 'void', [param('ns3::Ptr< ns3::SimpleNetDevice >', 'device')])
  10.168 -    ## simple-channel.h: uint32_t ns3::SimpleChannel::GetNDevices() const [member function]
  10.169 -    cls.add_method('GetNDevices', 'uint32_t', [], is_const=True, is_virtual=True)
  10.170 -    ## simple-channel.h: ns3::Ptr<ns3::NetDevice> ns3::SimpleChannel::GetDevice(uint32_t i) const [member function]
  10.171 -    cls.add_method('GetDevice', 'ns3::Ptr< ns3::NetDevice >', [param('uint32_t', 'i')], is_const=True, is_virtual=True)
  10.172 -    return
  10.173 -
  10.174  def register_Ns3AddressValue_methods(root_module, cls):
  10.175      ## address.h: ns3::AddressValue::AddressValue() [constructor]
  10.176      cls.add_constructor([], visibility='public')
  10.177 @@ -936,10 +908,14 @@
  10.178      cls.add_method('GetFirstApplication', 'ns3::Ptr< ns3::Application >', [param('ns3::TypeId', 'tid')])
  10.179      ## node.h: uint32_t ns3::Node::GetNApplications() const [member function]
  10.180      cls.add_method('GetNApplications', 'uint32_t', [], is_const=True)
  10.181 -    ## node.h: void ns3::Node::RegisterProtocolHandler(ns3::Callback<void, ns3::Ptr<ns3::NetDevice>, ns3::Ptr<ns3::Packet>, unsigned short, ns3::Address const&, ns3::empty, ns3::empty> handler, uint16_t protocolType, ns3::Ptr<ns3::NetDevice> device) [member function]
  10.182 -    cls.add_method('RegisterProtocolHandler', 'void', [param('ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet >, unsigned short, ns3::Address const&, ns3::empty, ns3::empty >', 'handler'), param('uint16_t', 'protocolType'), param('ns3::Ptr< ns3::NetDevice >', 'device')])
  10.183 -    ## node.h: void ns3::Node::UnregisterProtocolHandler(ns3::Callback<void, ns3::Ptr<ns3::NetDevice>, ns3::Ptr<ns3::Packet>, unsigned short, ns3::Address const&, ns3::empty, ns3::empty> handler) [member function]
  10.184 -    cls.add_method('UnregisterProtocolHandler', 'void', [param('ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet >, unsigned short, ns3::Address const&, ns3::empty, ns3::empty >', 'handler')])
  10.185 +    ## node.h: void ns3::Node::RegisterProtocolHandler(ns3::Callback<void, ns3::Ptr<ns3::NetDevice>, ns3::Ptr<ns3::Packet>, unsigned short, ns3::Address const&, ns3::Address const&, ns3::NetDevice::PacketType> handler, uint16_t protocolType, ns3::Ptr<ns3::NetDevice> device) [member function]
  10.186 +    cls.add_method('RegisterProtocolHandler', 'void', [param('ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet >, unsigned short, ns3::Address const&, ns3::Address const&, ns3::NetDevice::PacketType >', 'handler'), param('uint16_t', 'protocolType'), param('ns3::Ptr< ns3::NetDevice >', 'device')])
  10.187 +    ## node.h: void ns3::Node::UnregisterProtocolHandler(ns3::Callback<void, ns3::Ptr<ns3::NetDevice>, ns3::Ptr<ns3::Packet>, unsigned short, ns3::Address const&, ns3::Address const&, ns3::NetDevice::PacketType> handler) [member function]
  10.188 +    cls.add_method('UnregisterProtocolHandler', 'void', [param('ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet >, unsigned short, ns3::Address const&, ns3::Address const&, ns3::NetDevice::PacketType >', 'handler')])
  10.189 +    ## node.h: void ns3::Node::RegisterPromiscuousProtocolHandler(ns3::Callback<void,ns3::Ptr<ns3::NetDevice>,ns3::Ptr<ns3::Packet>,short unsigned int,const ns3::Address&,const ns3::Address&,bool> handler, uint16_t protocolType, ns3::Ptr<ns3::NetDevice> device) [member function]
  10.190 +    cls.add_method('RegisterPromiscuousProtocolHandler', 'void', [param('ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet >, short unsigned int, const ns3::Address&, const ns3::Address&, bool >', 'handler'), param('uint16_t', 'protocolType'), param('ns3::Ptr< ns3::NetDevice >', 'device')])
  10.191 +    ## node.h: void ns3::Node::UnregisterPromiscuousProtocolHandler(ns3::Callback<void,ns3::Ptr<ns3::NetDevice>,ns3::Ptr<ns3::Packet>,short unsigned int,const ns3::Address&,const ns3::Address&,bool> handler) [member function]
  10.192 +    cls.add_method('UnregisterPromiscuousProtocolHandler', 'void', [param('ns3::Callback< void, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet >, short unsigned int, const ns3::Address&, const ns3::Address&, bool >', 'handler')])
  10.193      ## node.h: void ns3::Node::DoDispose() [member function]
  10.194      cls.add_method('DoDispose', 'void', [], visibility='protected', is_virtual=True)
  10.195      ## node.h: void ns3::Node::NotifyDeviceAdded(ns3::Ptr<ns3::NetDevice> device) [member function]
  10.196 @@ -993,6 +969,23 @@
  10.197      cls.add_method('GetDelAckMaxCount', 'uint32_t', [], is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
  10.198      return
  10.199  
  10.200 +def register_Ns3Channel_methods(root_module, cls):
  10.201 +    ## channel.h: static ns3::TypeId ns3::Channel::GetTypeId() [member function]
  10.202 +    cls.add_method('GetTypeId', 'ns3::TypeId', [], is_static=True)
  10.203 +    ## channel.h: ns3::Channel::Channel() [constructor]
  10.204 +    cls.add_constructor([], visibility='public')
  10.205 +    ## channel.h: ns3::Channel::Channel(std::string name) [constructor]
  10.206 +    cls.add_constructor([param('std::string', 'name')], visibility='public')
  10.207 +    ## channel.h: void ns3::Channel::SetName(std::string arg0) [member function]
  10.208 +    cls.add_method('SetName', 'void', [param('std::string', 'arg0')])
  10.209 +    ## channel.h: std::string ns3::Channel::GetName() [member function]
  10.210 +    cls.add_method('GetName', 'std::string', [])
  10.211 +    ## channel.h: uint32_t ns3::Channel::GetNDevices() const [member function]
  10.212 +    cls.add_method('GetNDevices', 'uint32_t', [], is_pure_virtual=True, is_const=True, is_virtual=True)
  10.213 +    ## channel.h: ns3::Ptr<ns3::NetDevice> ns3::Channel::GetDevice(uint32_t i) const [member function]
  10.214 +    cls.add_method('GetDevice', 'ns3::Ptr< ns3::NetDevice >', [param('uint32_t', 'i')], is_pure_virtual=True, is_const=True, is_virtual=True)
  10.215 +    return
  10.216 +
  10.217  def register_Ns3EthernetHeader_methods(root_module, cls):
  10.218      ## ethernet-header.h: ns3::EthernetHeader::EthernetHeader(bool hasPreamble) [constructor]
  10.219      cls.add_constructor([param('bool', 'hasPreamble')], visibility='public')
  10.220 @@ -1255,18 +1248,35 @@
  10.221      cls.add_method('IsPointToPoint', 'bool', [], is_const=True, is_virtual=True)
  10.222      ## simple-net-device.h: bool ns3::SimpleNetDevice::Send(ns3::Ptr<ns3::Packet> packet, ns3::Address const & dest, uint16_t protocolNumber) [member function]
  10.223      cls.add_method('Send', 'bool', [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address&', 'dest', is_const=True), param('uint16_t', 'protocolNumber')], is_virtual=True)
  10.224 +    ## simple-net-device.h: bool ns3::SimpleNetDevice::SendFrom(ns3::Ptr<ns3::Packet> packet, ns3::Address const & source, ns3::Address const & dest, uint16_t protocolNumber) [member function]
  10.225 +    cls.add_method('SendFrom', 'bool', [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address&', 'source', is_const=True), param('ns3::Address&', 'dest', is_const=True), param('uint16_t', 'protocolNumber')], is_virtual=True)
  10.226      ## simple-net-device.h: ns3::Ptr<ns3::Node> ns3::SimpleNetDevice::GetNode() const [member function]
  10.227      cls.add_method('GetNode', 'ns3::Ptr< ns3::Node >', [], is_const=True, is_virtual=True)
  10.228      ## simple-net-device.h: void ns3::SimpleNetDevice::SetNode(ns3::Ptr<ns3::Node> node) [member function]
  10.229      cls.add_method('SetNode', 'void', [param('ns3::Ptr< ns3::Node >', 'node')], is_virtual=True)
  10.230      ## simple-net-device.h: bool ns3::SimpleNetDevice::NeedsArp() const [member function]
  10.231      cls.add_method('NeedsArp', 'bool', [], is_const=True, is_virtual=True)
  10.232 -    ## simple-net-device.h: void ns3::SimpleNetDevice::SetReceiveCallback(ns3::Callback<bool, ns3::Ptr<ns3::NetDevice>, ns3::Ptr<ns3::Packet>, unsigned short, ns3::Address const&, ns3::empty, ns3::empty> cb) [member function]
  10.233 -    cls.add_method('SetReceiveCallback', 'void', [param('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet >, unsigned short, ns3::Address const&, ns3::empty, ns3::empty >', 'cb')], is_virtual=True)
  10.234 +    ## simple-net-device.h: void ns3::SimpleNetDevice::SetReceiveCallback(ns3::Callback<bool, ns3::Ptr<ns3::NetDevice>, ns3::Ptr<ns3::Packet>, unsigned short, ns3::Address const&, ns3::Address const&, ns3::NetDevice::PacketType> cb) [member function]
  10.235 +    cls.add_method('SetReceiveCallback', 'void', [param('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet >, unsigned short, ns3::Address const&, ns3::Address const&, ns3::NetDevice::PacketType >', 'cb')], is_virtual=True)
  10.236      ## simple-net-device.h: void ns3::SimpleNetDevice::DoDispose() [member function]
  10.237      cls.add_method('DoDispose', 'void', [], visibility='protected', is_virtual=True)
  10.238      return
  10.239  
  10.240 +def register_Ns3SimpleChannel_methods(root_module, cls):
  10.241 +    ## simple-channel.h: static ns3::TypeId ns3::SimpleChannel::GetTypeId() [member function]
  10.242 +    cls.add_method('GetTypeId', 'ns3::TypeId', [], is_static=True)
  10.243 +    ## simple-channel.h: ns3::SimpleChannel::SimpleChannel() [constructor]
  10.244 +    cls.add_constructor([], visibility='public')
  10.245 +    ## simple-channel.h: void ns3::SimpleChannel::Send(ns3::Ptr<ns3::Packet> p, uint16_t protocol, ns3::Mac48Address to, ns3::Mac48Address from, ns3::Ptr<ns3::SimpleNetDevice> sender) [member function]
  10.246 +    cls.add_method('Send', 'void', [param('ns3::Ptr< ns3::Packet >', 'p'), param('uint16_t', 'protocol'), param('ns3::Mac48Address', 'to'), param('ns3::Mac48Address', 'from'), param('ns3::Ptr< ns3::SimpleNetDevice >', 'sender')])
  10.247 +    ## simple-channel.h: void ns3::SimpleChannel::Add(ns3::Ptr<ns3::SimpleNetDevice> device) [member function]
  10.248 +    cls.add_method('Add', 'void', [param('ns3::Ptr< ns3::SimpleNetDevice >', 'device')])
  10.249 +    ## simple-channel.h: uint32_t ns3::SimpleChannel::GetNDevices() const [member function]
  10.250 +    cls.add_method('GetNDevices', 'uint32_t', [], is_const=True, is_virtual=True)
  10.251 +    ## simple-channel.h: ns3::Ptr<ns3::NetDevice> ns3::SimpleChannel::GetDevice(uint32_t i) const [member function]
  10.252 +    cls.add_method('GetDevice', 'ns3::Ptr< ns3::NetDevice >', [param('uint32_t', 'i')], is_const=True, is_virtual=True)
  10.253 +    return
  10.254 +
  10.255  def register_Ns3TcpSocketFactory_methods(root_module, cls):
  10.256      ## tcp-socket-factory.h: static ns3::TypeId ns3::TcpSocketFactory::GetTypeId() [member function]
  10.257      cls.add_method('GetTypeId', 'ns3::TypeId', [], is_static=True)
    11.1 --- a/bindings/python/ns3_module_olsr.py	Mon Jul 14 11:39:41 2008 +0100
    11.2 +++ b/bindings/python/ns3_module_olsr.py	Mon Jul 14 11:42:49 2008 +0100
    11.3 @@ -44,7 +44,7 @@
    11.4      root_module = module.get_root()
    11.5      
    11.6      ## olsr-header.h: ns3::olsr::MessageHeader [class]
    11.7 -    module.add_class('MessageHeader', allow_subclassing=True, parent=root_module['ns3::Header'])
    11.8 +    module.add_class('MessageHeader', parent=root_module['ns3::Header'])
    11.9      ## olsr-header.h: ns3::olsr::MessageHeader::MessageType [enumeration]
   11.10      module.add_enum('MessageType', ['HELLO_MESSAGE', 'TC_MESSAGE', 'MID_MESSAGE', 'HNA_MESSAGE'], outer_class=root_module['ns3::olsr::MessageHeader'])
   11.11      ## olsr-header.h: ns3::olsr::MessageHeader::Mid [struct]
   11.12 @@ -60,9 +60,9 @@
   11.13      ## olsr-header.h: ns3::olsr::MessageHeader::Hna::Association [struct]
   11.14      module.add_class('Association', outer_class=root_module['ns3::olsr::MessageHeader::Hna'])
   11.15      ## olsr-agent.h: ns3::olsr::Agent [class]
   11.16 -    module.add_class('Agent', allow_subclassing=True, parent=root_module['ns3::Object'])
   11.17 +    module.add_class('Agent', parent=root_module['ns3::Object'])
   11.18      ## olsr-header.h: ns3::olsr::PacketHeader [class]
   11.19 -    module.add_class('PacketHeader', allow_subclassing=True, parent=root_module['ns3::Header'])
   11.20 +    module.add_class('PacketHeader', parent=root_module['ns3::Header'])
   11.21  
   11.22  def register_methods(root_module):
   11.23      register_Ns3OlsrMessageHeader_methods(root_module, root_module['ns3::olsr::MessageHeader'])
    12.1 --- a/bindings/python/ns3_module_onoff.py	Mon Jul 14 11:39:41 2008 +0100
    12.2 +++ b/bindings/python/ns3_module_onoff.py	Mon Jul 14 11:42:49 2008 +0100
    12.3 @@ -4,7 +4,7 @@
    12.4      root_module = module.get_root()
    12.5      
    12.6      ## onoff-application.h: ns3::OnOffApplication [class]
    12.7 -    module.add_class('OnOffApplication', allow_subclassing=True, parent=root_module['ns3::Application'])
    12.8 +    module.add_class('OnOffApplication', parent=root_module['ns3::Application'])
    12.9      
   12.10      ## Register a nested module for the namespace internal
   12.11      
    13.1 --- a/bindings/python/ns3_module_packet_sink.py	Mon Jul 14 11:39:41 2008 +0100
    13.2 +++ b/bindings/python/ns3_module_packet_sink.py	Mon Jul 14 11:42:49 2008 +0100
    13.3 @@ -4,7 +4,7 @@
    13.4      root_module = module.get_root()
    13.5      
    13.6      ## packet-sink.h: ns3::PacketSink [class]
    13.7 -    module.add_class('PacketSink', allow_subclassing=True, parent=root_module['ns3::Application'])
    13.8 +    module.add_class('PacketSink', parent=root_module['ns3::Application'])
    13.9      
   13.10      ## Register a nested module for the namespace internal
   13.11      
    14.1 --- a/bindings/python/ns3_module_point_to_point.py	Mon Jul 14 11:39:41 2008 +0100
    14.2 +++ b/bindings/python/ns3_module_point_to_point.py	Mon Jul 14 11:42:49 2008 +0100
    14.3 @@ -4,9 +4,9 @@
    14.4      root_module = module.get_root()
    14.5      
    14.6      ## point-to-point-channel.h: ns3::PointToPointChannel [class]
    14.7 -    module.add_class('PointToPointChannel', allow_subclassing=True, parent=root_module['ns3::Channel'])
    14.8 +    module.add_class('PointToPointChannel', parent=root_module['ns3::Channel'])
    14.9      ## point-to-point-net-device.h: ns3::PointToPointNetDevice [class]
   14.10 -    module.add_class('PointToPointNetDevice', allow_subclassing=True, parent=root_module['ns3::NetDevice'])
   14.11 +    module.add_class('PointToPointNetDevice', parent=root_module['ns3::NetDevice'])
   14.12      
   14.13      ## Register a nested module for the namespace internal
   14.14      
   14.15 @@ -123,14 +123,16 @@
   14.16      cls.add_method('IsPointToPoint', 'bool', [], is_const=True, is_virtual=True)
   14.17      ## point-to-point-net-device.h: bool ns3::PointToPointNetDevice::Send(ns3::Ptr<ns3::Packet> packet, ns3::Address const & dest, uint16_t protocolNumber) [member function]
   14.18      cls.add_method('Send', 'bool', [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address&', 'dest', is_const=True), param('uint16_t', 'protocolNumber')], is_virtual=True)
   14.19 +    ## point-to-point-net-device.h: bool ns3::PointToPointNetDevice::SendFrom(ns3::Ptr<ns3::Packet> packet, ns3::Address const & source, ns3::Address const & dest, uint16_t protocolNumber) [member function]
   14.20 +    cls.add_method('SendFrom', 'bool', [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address&', 'source', is_const=True), param('ns3::Address&', 'dest', is_const=True), param('uint16_t', 'protocolNumber')], is_virtual=True)
   14.21      ## point-to-point-net-device.h: ns3::Ptr<ns3::Node> ns3::PointToPointNetDevice::GetNode() const [member function]
   14.22      cls.add_method('GetNode', 'ns3::Ptr< ns3::Node >', [], is_const=True, is_virtual=True)
   14.23      ## point-to-point-net-device.h: void ns3::PointToPointNetDevice::SetNode(ns3::Ptr<ns3::Node> node) [member function]
   14.24      cls.add_method('SetNode', 'void', [param('ns3::Ptr< ns3::Node >', 'node')], is_virtual=True)
   14.25      ## point-to-point-net-device.h: bool ns3::PointToPointNetDevice::NeedsArp() const [member function]
   14.26      cls.add_method('NeedsArp', 'bool', [], is_const=True, is_virtual=True)
   14.27 -    ## point-to-point-net-device.h: void ns3::PointToPointNetDevice::SetReceiveCallback(ns3::Callback<bool, ns3::Ptr<ns3::NetDevice>, ns3::Ptr<ns3::Packet>, unsigned short, ns3::Address const&, ns3::empty, ns3::empty> cb) [member function]
   14.28 -    cls.add_method('SetReceiveCallback', 'void', [param('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet >, unsigned short, ns3::Address const&, ns3::empty, ns3::empty >', 'cb')], is_virtual=True)
   14.29 +    ## point-to-point-net-device.h: void ns3::PointToPointNetDevice::SetReceiveCallback(ns3::Callback<bool, ns3::Ptr<ns3::NetDevice>, ns3::Ptr<ns3::Packet>, unsigned short, ns3::Address const&, ns3::Address const&, ns3::NetDevice::PacketType> cb) [member function]
   14.30 +    cls.add_method('SetReceiveCallback', 'void', [param('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet >, unsigned short, ns3::Address const&, ns3::Address const&, ns3::NetDevice::PacketType >', 'cb')], is_virtual=True)
   14.31      ## point-to-point-net-device.h: void ns3::PointToPointNetDevice::DoDispose() [member function]
   14.32      cls.add_method('DoDispose', 'void', [], visibility='private', is_virtual=True)
   14.33      return
    15.1 --- a/bindings/python/ns3_module_simulator.py	Mon Jul 14 11:39:41 2008 +0100
    15.2 +++ b/bindings/python/ns3_module_simulator.py	Mon Jul 14 11:42:49 2008 +0100
    15.3 @@ -28,17 +28,17 @@
    15.4      ## nstime.h: ns3::TimeChecker [class]
    15.5      module.add_class('TimeChecker', parent=root_module['ns3::AttributeChecker'])
    15.6      ## scheduler.h: ns3::Scheduler [class]
    15.7 -    module.add_class('Scheduler', allow_subclassing=True, parent=root_module['ns3::Object'])
    15.8 +    module.add_class('Scheduler', parent=root_module['ns3::Object'])
    15.9      ## scheduler.h: ns3::Scheduler::EventKey [struct]
   15.10      module.add_class('EventKey', outer_class=root_module['ns3::Scheduler'])
   15.11      ## nstime.h: ns3::TimeValue [class]
   15.12 -    module.add_class('TimeValue', allow_subclassing=True, parent=root_module['ns3::AttributeValue'])
   15.13 +    module.add_class('TimeValue', parent=root_module['ns3::AttributeValue'])
   15.14      ## heap-scheduler.h: ns3::HeapScheduler [class]
   15.15 -    module.add_class('HeapScheduler', allow_subclassing=True, parent=root_module['ns3::Scheduler'])
   15.16 +    module.add_class('HeapScheduler', parent=root_module['ns3::Scheduler'])
   15.17      ## list-scheduler.h: ns3::ListScheduler [class]
   15.18 -    module.add_class('ListScheduler', allow_subclassing=True, parent=root_module['ns3::Scheduler'])
   15.19 +    module.add_class('ListScheduler', parent=root_module['ns3::Scheduler'])
   15.20      ## map-scheduler.h: ns3::MapScheduler [class]
   15.21 -    module.add_class('MapScheduler', allow_subclassing=True, parent=root_module['ns3::Scheduler'])
   15.22 +    module.add_class('MapScheduler', parent=root_module['ns3::Scheduler'])
   15.23      
   15.24      ## Register a nested module for the namespace internal
   15.25      
    16.1 --- a/bindings/python/ns3_module_udp_echo.py	Mon Jul 14 11:39:41 2008 +0100
    16.2 +++ b/bindings/python/ns3_module_udp_echo.py	Mon Jul 14 11:42:49 2008 +0100
    16.3 @@ -4,9 +4,9 @@
    16.4      root_module = module.get_root()
    16.5      
    16.6      ## udp-echo-client.h: ns3::UdpEchoClient [class]
    16.7 -    module.add_class('UdpEchoClient', allow_subclassing=True, parent=root_module['ns3::Application'])
    16.8 +    module.add_class('UdpEchoClient', parent=root_module['ns3::Application'])
    16.9      ## udp-echo-server.h: ns3::UdpEchoServer [class]
   16.10 -    module.add_class('UdpEchoServer', allow_subclassing=True, parent=root_module['ns3::Application'])
   16.11 +    module.add_class('UdpEchoServer', parent=root_module['ns3::Application'])
   16.12      
   16.13      ## Register a nested module for the namespace internal
   16.14      
    17.1 --- a/bindings/python/ns3_module_wifi.py	Mon Jul 14 11:39:41 2008 +0100
    17.2 +++ b/bindings/python/ns3_module_wifi.py	Mon Jul 14 11:42:49 2008 +0100
    17.3 @@ -16,15 +16,15 @@
    17.4      ## supported-rates.h: ns3::SupportedRates [class]
    17.5      module.add_class('SupportedRates')
    17.6      ## ideal-wifi-manager.h: ns3::IdealWifiRemoteStation [class]
    17.7 -    module.add_class('IdealWifiRemoteStation', allow_subclassing=True, parent=root_module['ns3::WifiRemoteStation'])
    17.8 +    module.add_class('IdealWifiRemoteStation', parent=root_module['ns3::WifiRemoteStation'])
    17.9      ## wifi-mode.h: ns3::WifiModeChecker [class]
   17.10      module.add_class('WifiModeChecker', parent=root_module['ns3::AttributeChecker'])
   17.11      ## wifi-mode.h: ns3::WifiModeFactory [class]
   17.12      module.add_class('WifiModeFactory')
   17.13      ## onoe-wifi-manager.h: ns3::OnoeWifiRemoteStation [class]
   17.14 -    module.add_class('OnoeWifiRemoteStation', allow_subclassing=True, parent=root_module['ns3::WifiRemoteStation'])
   17.15 +    module.add_class('OnoeWifiRemoteStation', parent=root_module['ns3::WifiRemoteStation'])
   17.16      ## rraa-wifi-manager.h: ns3::RraaWifiRemoteStation [class]
   17.17 -    module.add_class('RraaWifiRemoteStation', allow_subclassing=True, parent=root_module['ns3::WifiRemoteStation'])
   17.18 +    module.add_class('RraaWifiRemoteStation', parent=root_module['ns3::WifiRemoteStation'])
   17.19      ## ssid.h: ns3::Ssid [class]
   17.20      module.add_class('Ssid')
   17.21      ## wifi-mode.h: ns3::WifiMode [class]
   17.22 @@ -32,69 +32,69 @@
   17.23      ## wifi-mode.h: ns3::WifiMode::ModulationType [enumeration]
   17.24      module.add_enum('ModulationType', ['BPSK', 'QAM'], outer_class=root_module['ns3::WifiMode'])
   17.25      ## ssid.h: ns3::SsidValue [class]
   17.26 -    module.add_class('SsidValue', allow_subclassing=True, parent=root_module['ns3::AttributeValue'])
   17.27 +    module.add_class('SsidValue', parent=root_module['ns3::AttributeValue'])
   17.28      ## ssid.h: ns3::SsidChecker [class]
   17.29      module.add_class('SsidChecker', parent=root_module['ns3::AttributeChecker'])
   17.30      ## constant-rate-wifi-manager.h: ns3::ConstantRateWifiRemoteStation [class]
   17.31 -    module.add_class('ConstantRateWifiRemoteStation', allow_subclassing=True, parent=root_module['ns3::WifiRemoteStation'])
   17.32 +    module.add_class('ConstantRateWifiRemoteStation', parent=root_module['ns3::WifiRemoteStation'])
   17.33      ## propagation-loss-model.h: ns3::PropagationLossModel [class]
   17.34 -    module.add_class('PropagationLossModel', allow_subclassing=True, parent=root_module['ns3::Object'])
   17.35 +    module.add_class('PropagationLossModel', parent=root_module['ns3::Object'])
   17.36      ## arf-wifi-manager.h: ns3::ArfWifiRemoteStation [class]
   17.37 -    module.add_class('ArfWifiRemoteStation', allow_subclassing=True, parent=root_module['ns3::WifiRemoteStation'])
   17.38 +    module.add_class('ArfWifiRemoteStation', parent=root_module['ns3::WifiRemoteStation'])
   17.39      ## wifi-mac.h: ns3::WifiMac [class]
   17.40 -    module.add_class('WifiMac', allow_subclassing=True, parent=root_module['ns3::Object'])
   17.41 +    module.add_class('WifiMac', parent=root_module['ns3::Object'])
   17.42      ## nqap-wifi-mac.h: ns3::NqapWifiMac [class]
   17.43 -    module.add_class('NqapWifiMac', allow_subclassing=True, parent=root_module['ns3::WifiMac'])
   17.44 +    module.add_class('NqapWifiMac', parent=root_module['ns3::WifiMac'])
   17.45      ## amrr-wifi-manager.h: ns3::AmrrWifiRemoteStation [class]
   17.46 -    module.add_class('AmrrWifiRemoteStation', allow_subclassing=True, parent=root_module['ns3::WifiRemoteStation'])
   17.47 +    module.add_class('AmrrWifiRemoteStation', parent=root_module['ns3::WifiRemoteStation'])
   17.48      ## composite-propagation-loss-model.h: ns3::CompositePropagationLossModel [class]
   17.49 -    module.add_class('CompositePropagationLossModel', allow_subclassing=True, parent=root_module['ns3::PropagationLossModel'])
   17.50 +    module.add_class('CompositePropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
   17.51      ## propagation-loss-model.h: ns3::FriisPropagationLossModel [class]
   17.52 -    module.add_class('FriisPropagationLossModel', allow_subclassing=True, parent=root_module['ns3::PropagationLossModel'])
   17.53 +    module.add_class('FriisPropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
   17.54      ## wifi-remote-station-manager.h: ns3::WifiRemoteStationManager [class]
   17.55 -    module.add_class('WifiRemoteStationManager', allow_subclassing=True, parent=root_module['ns3::Object'])
   17.56 +    module.add_class('WifiRemoteStationManager', parent=root_module['ns3::Object'])
   17.57      ## wifi-mode.h: ns3::WifiModeValue [class]
   17.58 -    module.add_class('WifiModeValue', allow_subclassing=True, parent=root_module['ns3::AttributeValue'])
   17.59 +    module.add_class('WifiModeValue', parent=root_module['ns3::AttributeValue'])
   17.60      ## onoe-wifi-manager.h: ns3::OnoeWifiManager [class]
   17.61 -    module.add_class('OnoeWifiManager', allow_subclassing=True, parent=root_module['ns3::WifiRemoteStationManager'])
   17.62 +    module.add_class('OnoeWifiManager', parent=root_module['ns3::WifiRemoteStationManager'])
   17.63      ## wifi-phy.h: ns3::WifiPhy [class]
   17.64 -    module.add_class('WifiPhy', allow_subclassing=True, parent=root_module['ns3::Object'])
   17.65 +    module.add_class('WifiPhy', parent=root_module['ns3::Object'])
   17.66      ## wifi-phy.h: ns3::WifiPhy::State [enumeration]
   17.67      module.add_enum('State', ['SYNC', 'TX', 'CCA_BUSY', 'IDLE'], outer_class=root_module['ns3::WifiPhy'])
   17.68      ## wifi-channel.h: ns3::WifiChannel [class]
   17.69 -    module.add_class('WifiChannel', allow_subclassing=True, parent=root_module['ns3::Channel'])
   17.70 +    module.add_class('WifiChannel', parent=root_module['ns3::Channel'])
   17.71      ## propagation-loss-model.h: ns3::LogDistancePropagationLossModel [class]
   17.72 -    module.add_class('LogDistancePropagationLossModel', allow_subclassing=True, parent=root_module['ns3::PropagationLossModel'])
   17.73 +    module.add_class('LogDistancePropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
   17.74      ## constant-rate-wifi-manager.h: ns3::ConstantRateWifiManager [class]
   17.75 -    module.add_class('ConstantRateWifiManager', allow_subclassing=True, parent=root_module['ns3::WifiRemoteStationManager'])
   17.76 +    module.add_class('ConstantRateWifiManager', parent=root_module['ns3::WifiRemoteStationManager'])
   17.77      ## aarf-wifi-manager.h: ns3::AarfWifiRemoteStation [class]
   17.78 -    module.add_class('AarfWifiRemoteStation', allow_subclassing=True, parent=root_module['ns3::ArfWifiRemoteStation'])
   17.79 +    module.add_class('AarfWifiRemoteStation', parent=root_module['ns3::ArfWifiRemoteStation'])
   17.80      ## propagation-delay-model.h: ns3::PropagationDelayModel [class]
   17.81 -    module.add_class('PropagationDelayModel', allow_subclassing=True, parent=root_module['ns3::Object'])
   17.82 +    module.add_class('PropagationDelayModel', parent=root_module['ns3::Object'])
   17.83      ## adhoc-wifi-mac.h: ns3::AdhocWifiMac [class]
   17.84 -    module.add_class('AdhocWifiMac', allow_subclassing=True, parent=root_module['ns3::WifiMac'])
   17.85 +    module.add_class('AdhocWifiMac', parent=root_module['ns3::WifiMac'])
   17.86      ## jakes-propagation-loss-model.h: ns3::JakesPropagationLossModel [class]
   17.87 -    module.add_class('JakesPropagationLossModel', allow_subclassing=True, parent=root_module['ns3::PropagationLossModel'])
   17.88 +    module.add_class('JakesPropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
   17.89      ## propagation-delay-model.h: ns3::ConstantSpeedPropagationDelayModel [class]
   17.90 -    module.add_class('ConstantSpeedPropagationDelayModel', allow_subclassing=True, parent=root_module['ns3::PropagationDelayModel'])
   17.91 +    module.add_class('ConstantSpeedPropagationDelayModel', parent=root_module['ns3::PropagationDelayModel'])
   17.92      ## wifi-net-device.h: ns3::WifiNetDevice [class]
   17.93 -    module.add_class('WifiNetDevice', allow_subclassing=True, parent=root_module['ns3::NetDevice'])
   17.94 +    module.add_class('WifiNetDevice', parent=root_module['ns3::NetDevice'])
   17.95      ## nqsta-wifi-mac.h: ns3::NqstaWifiMac [class]
   17.96 -    module.add_class('NqstaWifiMac', allow_subclassing=True, parent=root_module['ns3::WifiMac'])
   17.97 +    module.add_class('NqstaWifiMac', parent=root_module['ns3::WifiMac'])
   17.98      ## propagation-loss-model.h: ns3::RandomPropagationLossModel [class]
   17.99 -    module.add_class('RandomPropagationLossModel', allow_subclassing=True, parent=root_module['ns3::PropagationLossModel'])
  17.100 +    module.add_class('RandomPropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
  17.101      ## propagation-delay-model.h: ns3::RandomPropagationDelayModel [class]
  17.102 -    module.add_class('RandomPropagationDelayModel', allow_subclassing=True, parent=root_module['ns3::PropagationDelayModel'])
  17.103 +    module.add_class('RandomPropagationDelayModel', parent=root_module['ns3::PropagationDelayModel'])
  17.104      ## amrr-wifi-manager.h: ns3::AmrrWifiManager [class]
  17.105 -    module.add_class('AmrrWifiManager', allow_subclassing=True, parent=root_module['ns3::WifiRemoteStationManager'])
  17.106 +    module.add_class('AmrrWifiManager', parent=root_module['ns3::WifiRemoteStationManager'])
  17.107      ## rraa-wifi-manager.h: ns3::RraaWifiManager [class]
  17.108 -    module.add_class('RraaWifiManager', allow_subclassing=True, parent=root_module['ns3::WifiRemoteStationManager'])
  17.109 +    module.add_class('RraaWifiManager', parent=root_module['ns3::WifiRemoteStationManager'])
  17.110      ## ideal-wifi-manager.h: ns3::IdealWifiManager [class]
  17.111 -    module.add_class('IdealWifiManager', allow_subclassing=True, parent=root_module['ns3::WifiRemoteStationManager'])
  17.112 +    module.add_class('IdealWifiManager', parent=root_module['ns3::WifiRemoteStationManager'])
  17.113      ## arf-wifi-manager.h: ns3::ArfWifiManager [class]
  17.114 -    module.add_class('ArfWifiManager', allow_subclassing=True, parent=root_module['ns3::WifiRemoteStationManager'])
  17.115 +    module.add_class('ArfWifiManager', parent=root_module['ns3::WifiRemoteStationManager'])
  17.116      ## aarf-wifi-manager.h: ns3::AarfWifiManager [class]
  17.117 -    module.add_class('AarfWifiManager', allow_subclassing=True, parent=root_module['ns3::ArfWifiManager'])
  17.118 +    module.add_class('AarfWifiManager', parent=root_module['ns3::ArfWifiManager'])
  17.119      
  17.120      ## Register a nested module for the namespace internal
  17.121      
  17.122 @@ -1067,14 +1067,16 @@
  17.123      cls.add_method('IsPointToPoint', 'bool', [], is_const=True, is_virtual=True)
  17.124      ## wifi-net-device.h: bool ns3::WifiNetDevice::Send(ns3::Ptr<ns3::Packet> packet, ns3::Address const & dest, uint16_t protocolNumber) [member function]
  17.125      cls.add_method('Send', 'bool', [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address&', 'dest', is_const=True), param('uint16_t', 'protocolNumber')], is_virtual=True)
  17.126 +    ## wifi-net-device.h: bool ns3::WifiNetDevice::SendFrom(ns3::Ptr<ns3::Packet> packet, ns3::Address const & src, ns3::Address const & dest, uint16_t protocolNumber) [member function]
  17.127 +    cls.add_method('SendFrom', 'bool', [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address&', 'src', is_const=True), param('ns3::Address&', 'dest', is_const=True), param('uint16_t', 'protocolNumber')], is_virtual=True)
  17.128      ## wifi-net-device.h: ns3::Ptr<ns3::Node> ns3::WifiNetDevice::GetNode() const [member function]
  17.129      cls.add_method('GetNode', 'ns3::Ptr< ns3::Node >', [], is_const=True, is_virtual=True)
  17.130      ## wifi-net-device.h: void ns3::WifiNetDevice::SetNode(ns3::Ptr<ns3::Node> node) [member function]
  17.131      cls.add_method('SetNode', 'void', [param('ns3::Ptr< ns3::Node >', 'node')], is_virtual=True)
  17.132      ## wifi-net-device.h: bool ns3::WifiNetDevice::NeedsArp() const [member function]
  17.133      cls.add_method('NeedsArp', 'bool', [], is_const=True, is_virtual=True)
  17.134 -    ## wifi-net-device.h: void ns3::WifiNetDevice::SetReceiveCallback(ns3::Callback<bool, ns3::Ptr<ns3::NetDevice>, ns3::Ptr<ns3::Packet>, unsigned short, ns3::Address const&, ns3::empty, ns3::empty> cb) [member function]
  17.135 -    cls.add_method('SetReceiveCallback', 'void', [param('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet >, unsigned short, ns3::Address const&, ns3::empty, ns3::empty >', 'cb')], is_virtual=True)
  17.136 +    ## wifi-net-device.h: void ns3::WifiNetDevice::SetReceiveCallback(ns3::Callback<bool, ns3::Ptr<ns3::NetDevice>, ns3::Ptr<ns3::Packet>, unsigned short, ns3::Address const&, ns3::Address const&, ns3::NetDevice::PacketType> cb) [member function]
  17.137 +    cls.add_method('SetReceiveCallback', 'void', [param('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet >, unsigned short, ns3::Address const&, ns3::Address const&, ns3::NetDevice::PacketType >', 'cb')], is_virtual=True)
  17.138      ## wifi-net-device.h: void ns3::WifiNetDevice::DoDispose() [member function]
  17.139      cls.add_method('DoDispose', 'void', [], visibility='private', is_virtual=True)
  17.140      return
    18.1 --- a/bindings/python/ns3modulegen_generated.py	Mon Jul 14 11:39:41 2008 +0100
    18.2 +++ b/bindings/python/ns3modulegen_generated.py	Mon Jul 14 11:42:49 2008 +0100
    18.3 @@ -22,6 +22,7 @@
    18.4  import ns3_module_internet_stack
    18.5  import ns3_module_wifi
    18.6  import ns3_module_csma
    18.7 +import ns3_module_bridge
    18.8  import ns3_module_packet_sink
    18.9  import ns3_module_global_routing
   18.10  import ns3_module_onoff
   18.11 @@ -146,6 +147,17 @@
   18.12          ns3_module_csma__local.register_types(module)
   18.13      
   18.14      root_module.end_section('ns3_module_csma')
   18.15 +    root_module.begin_section('ns3_module_bridge')
   18.16 +    ns3_module_bridge.register_types(module)
   18.17 +    
   18.18 +    try:
   18.19 +        import ns3_module_bridge__local
   18.20 +    except ImportError:
   18.21 +        pass
   18.22 +    else:
   18.23 +        ns3_module_bridge__local.register_types(module)
   18.24 +    
   18.25 +    root_module.end_section('ns3_module_bridge')
   18.26      root_module.begin_section('ns3_module_packet_sink')
   18.27      ns3_module_packet_sink.register_types(module)
   18.28      
   18.29 @@ -364,6 +376,17 @@
   18.30          ns3_module_csma__local.register_methods(root_module)
   18.31      
   18.32      root_module.end_section('ns3_module_csma')
   18.33 +    root_module.begin_section('ns3_module_bridge')
   18.34 +    ns3_module_bridge.register_methods(root_module)
   18.35 +    
   18.36 +    try:
   18.37 +        import ns3_module_bridge__local
   18.38 +    except ImportError:
   18.39 +        pass
   18.40 +    else:
   18.41 +        ns3_module_bridge__local.register_methods(root_module)
   18.42 +    
   18.43 +    root_module.end_section('ns3_module_bridge')
   18.44      root_module.begin_section('ns3_module_packet_sink')
   18.45      ns3_module_packet_sink.register_methods(root_module)
   18.46      
   18.47 @@ -544,6 +567,17 @@
   18.48          ns3_module_csma__local.register_functions(root_module)
   18.49      
   18.50      root_module.end_section('ns3_module_csma')
   18.51 +    root_module.begin_section('ns3_module_bridge')
   18.52 +    ns3_module_bridge.register_functions(root_module)
   18.53 +    
   18.54 +    try:
   18.55 +        import ns3_module_bridge__local
   18.56 +    except ImportError:
   18.57 +        pass
   18.58 +    else:
   18.59 +        ns3_module_bridge__local.register_functions(root_module)
   18.60 +    
   18.61 +    root_module.end_section('ns3_module_bridge')
   18.62      root_module.begin_section('ns3_module_packet_sink')
   18.63      ns3_module_packet_sink.register_functions(root_module)
   18.64