rescan bindings
authorTom Henderson <tomh@tomh.org>
Tue, 10 Aug 2010 00:13:34 -0700
changeset 6537 f928e500524e
parent 6536 2666c1d862ef
child 6538 5fbe44766859
rescan bindings
bindings/python/apidefs/gcc-ILP32/callbacks_list.py
bindings/python/apidefs/gcc-ILP32/ns3_module_common.py
bindings/python/apidefs/gcc-ILP32/ns3_module_core.py
bindings/python/apidefs/gcc-ILP32/ns3_module_dot11s.py
bindings/python/apidefs/gcc-ILP32/ns3_module_flow_monitor.py
bindings/python/apidefs/gcc-ILP32/ns3_module_node.py
bindings/python/apidefs/gcc-ILP32/ns3_module_olsr.py
bindings/python/apidefs/gcc-ILP32/ns3_module_simulator.py
bindings/python/apidefs/gcc-ILP32/ns3_module_spectrum.py
bindings/python/apidefs/gcc-ILP32/ns3_module_stats.py
bindings/python/apidefs/gcc-ILP32/ns3_module_wifi.py
bindings/python/apidefs/gcc-ILP32/ns3modulegen_generated.py
bindings/python/apidefs/gcc-LP64/callbacks_list.py
bindings/python/apidefs/gcc-LP64/ns3_module_common.py
bindings/python/apidefs/gcc-LP64/ns3_module_core.py
bindings/python/apidefs/gcc-LP64/ns3_module_dot11s.py
bindings/python/apidefs/gcc-LP64/ns3_module_flow_monitor.py
bindings/python/apidefs/gcc-LP64/ns3_module_node.py
bindings/python/apidefs/gcc-LP64/ns3_module_olsr.py
bindings/python/apidefs/gcc-LP64/ns3_module_simulator.py
bindings/python/apidefs/gcc-LP64/ns3_module_spectrum.py
bindings/python/apidefs/gcc-LP64/ns3_module_stats.py
bindings/python/apidefs/gcc-LP64/ns3_module_wifi.py
bindings/python/apidefs/gcc-LP64/ns3modulegen_generated.py
--- a/bindings/python/apidefs/gcc-ILP32/callbacks_list.py	Mon Aug 09 23:40:31 2010 -0700
+++ b/bindings/python/apidefs/gcc-ILP32/callbacks_list.py	Tue Aug 10 00:13:34 2010 -0700
@@ -1,5 +1,4 @@
 callback_classes = [
-    ['bool', 'ns3::Ptr<ns3::Packet>', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['void', 'ns3::Ptr<ns3::Packet const>', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['void', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['void', 'ns3::Ptr<ns3::Packet>', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
@@ -28,6 +27,7 @@
     ['bool', 'ns3::Ptr<ns3::Socket>', 'ns3::Address const&', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['void', 'ns3::Ipv4Address', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['void', 'ns3::Ptr<ns3::ArpCache const>', 'ns3::Ipv4Address', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
+    ['bool', 'ns3::Ptr<ns3::Packet>', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['bool', 'ns3::Ptr<ns3::NetDevice>', 'ns3::Ptr<ns3::Packet const>', 'unsigned short', 'ns3::Address const&', 'ns3::Address const&', 'ns3::NetDevice::PacketType', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['bool', 'ns3::Ptr<ns3::NetDevice>', 'ns3::Ptr<ns3::Packet const>', 'unsigned short', 'ns3::Address const&', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['void', 'ns3::Ptr<ns3::NetDevice>', 'ns3::Ptr<ns3::Packet const>', 'unsigned short', 'ns3::Address const&', 'ns3::Address const&', 'ns3::NetDevice::PacketType', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
--- a/bindings/python/apidefs/gcc-ILP32/ns3_module_common.py	Mon Aug 09 23:40:31 2010 -0700
+++ b/bindings/python/apidefs/gcc-ILP32/ns3_module_common.py	Tue Aug 10 00:13:34 2010 -0700
@@ -1456,6 +1456,7 @@
     return
 
 def register_Ns3SpectrumValue_methods(root_module, cls):
+    cls.add_output_stream_operator()
     cls.add_binary_numeric_operator('*', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('double', 'right'))
     cls.add_binary_numeric_operator('*', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('ns3::SpectrumValue const &', 'right'))
     cls.add_binary_numeric_operator('+', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('double', 'right'))
@@ -1465,7 +1466,6 @@
     cls.add_binary_numeric_operator('-', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('ns3::SpectrumValue const &', 'right'))
     cls.add_binary_numeric_operator('/', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('double', 'right'))
     cls.add_binary_numeric_operator('/', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('ns3::SpectrumValue const &', 'right'))
-    cls.add_output_stream_operator()
     cls.add_inplace_numeric_operator('*=', param('ns3::SpectrumValue const &', 'right'))
     cls.add_inplace_numeric_operator('*=', param('double', 'right'))
     cls.add_inplace_numeric_operator('+=', param('ns3::SpectrumValue const &', 'right'))
--- a/bindings/python/apidefs/gcc-ILP32/ns3_module_core.py	Mon Aug 09 23:40:31 2010 -0700
+++ b/bindings/python/apidefs/gcc-ILP32/ns3_module_core.py	Tue Aug 10 00:13:34 2010 -0700
@@ -213,12 +213,15 @@
     module.add_container('std::list< ns3::Ptr< ns3::UlJob > >', 'ns3::Ptr< ns3::UlJob >', container_type='list')
     module.add_container('std::list< ns3::Ptr< ns3::Packet const > >', 'ns3::Ptr< ns3::Packet const >', container_type='list')
     module.add_container('std::vector< ns3::Ptr< ns3::WimaxConnection > >', 'ns3::Ptr< ns3::WimaxConnection >', container_type='vector')
-    module.add_container('std::vector< ns3::Ptr< ns3::DeviceEnergyModel > >', 'ns3::Ptr< ns3::DeviceEnergyModel >', container_type='vector')
     module.add_container('std::vector< ns3::Ptr< ns3::FlowProbe > >', 'ns3::Ptr< ns3::FlowProbe >', container_type='vector')
     module.add_container('std::list< ns3::Ptr< ns3::RadvdPrefix > >', 'ns3::Ptr< ns3::RadvdPrefix >', container_type='list')
     module.add_container('std::list< ns3::Ptr< ns3::UanTransducer > >', 'ns3::Ptr< ns3::UanTransducer >', container_type='list')
     module.add_container('std::vector< ns3::Ptr< ns3::NetDevice > >', 'ns3::Ptr< ns3::NetDevice >', container_type='vector')
     module.add_container('std::vector< ns3::Ptr< ns3::SpectrumPhy > >', 'ns3::Ptr< ns3::SpectrumPhy >', container_type='vector')
+    typehandlers.add_type_alias('ns3::Vector3DChecker', 'ns3::VectorChecker')
+    typehandlers.add_type_alias('ns3::Vector3DChecker*', 'ns3::VectorChecker*')
+    typehandlers.add_type_alias('ns3::Vector3DChecker&', 'ns3::VectorChecker&')
+    module.add_typedef(root_module['ns3::Vector3DChecker'], 'VectorChecker')
     typehandlers.add_type_alias('ns3::Vector3D', 'ns3::Vector')
     typehandlers.add_type_alias('ns3::Vector3D*', 'ns3::Vector*')
     typehandlers.add_type_alias('ns3::Vector3D&', 'ns3::Vector&')
@@ -227,10 +230,6 @@
     typehandlers.add_type_alias('ns3::Vector3DValue*', 'ns3::VectorValue*')
     typehandlers.add_type_alias('ns3::Vector3DValue&', 'ns3::VectorValue&')
     module.add_typedef(root_module['ns3::Vector3DValue'], 'VectorValue')
-    typehandlers.add_type_alias('ns3::Vector3DChecker', 'ns3::VectorChecker')
-    typehandlers.add_type_alias('ns3::Vector3DChecker*', 'ns3::VectorChecker*')
-    typehandlers.add_type_alias('ns3::Vector3DChecker&', 'ns3::VectorChecker&')
-    module.add_typedef(root_module['ns3::Vector3DChecker'], 'VectorChecker')
     
     ## Register a nested module for the namespace Config
     
@@ -1346,9 +1345,9 @@
 
 def register_Ns3TypeId_methods(root_module, cls):
     cls.add_binary_comparison_operator('!=')
-    cls.add_binary_comparison_operator('<')
     cls.add_output_stream_operator()
     cls.add_binary_comparison_operator('==')
+    cls.add_binary_comparison_operator('<')
     ## type-id.h: ns3::TypeId::TypeId(char const * name) [constructor]
     cls.add_constructor([param('char const *', 'name')])
     ## type-id.h: ns3::TypeId::TypeId() [constructor]
@@ -3172,7 +3171,7 @@
     module.add_function('TypeNameGet', 
                         'std::string', 
                         [], 
-                        template_parameters=['long long'])
+                        template_parameters=['long'])
     ## type-name.h: extern std::string ns3::TypeNameGet() [free function]
     module.add_function('TypeNameGet', 
                         'std::string', 
--- a/bindings/python/apidefs/gcc-ILP32/ns3_module_dot11s.py	Mon Aug 09 23:40:31 2010 -0700
+++ b/bindings/python/apidefs/gcc-ILP32/ns3_module_dot11s.py	Tue Aug 10 00:13:34 2010 -0700
@@ -73,18 +73,18 @@
 def register_types_ns3_dot11s(module):
     root_module = module.get_root()
     
+    ## ie-dot11s-configuration.h: ns3::dot11s::dot11sCongestionControlMode [enumeration]
+    module.add_enum('dot11sCongestionControlMode', ['CONGESTION_SIGNALING', 'CONGESTION_NULL'])
+    ## ie-dot11s-configuration.h: ns3::dot11s::dot11sAuthenticationProtocol [enumeration]
+    module.add_enum('dot11sAuthenticationProtocol', ['AUTH_NULL', 'AUTH_SAE'])
     ## ie-dot11s-configuration.h: ns3::dot11s::dot11sPathSelectionProtocol [enumeration]
     module.add_enum('dot11sPathSelectionProtocol', ['PROTOCOL_HWMP'])
     ## ie-dot11s-configuration.h: ns3::dot11s::dot11sSynchronizationProtocolIdentifier [enumeration]
     module.add_enum('dot11sSynchronizationProtocolIdentifier', ['SYNC_NEIGHBOUR_OFFSET', 'SYNC_NULL'])
-    ## ie-dot11s-configuration.h: ns3::dot11s::dot11sCongestionControlMode [enumeration]
-    module.add_enum('dot11sCongestionControlMode', ['CONGESTION_SIGNALING', 'CONGESTION_NULL'])
+    ## ie-dot11s-peer-management.h: ns3::dot11s::PmpReasonCode [enumeration]
+    module.add_enum('PmpReasonCode', ['REASON11S_PEERING_CANCELLED', 'REASON11S_MESH_MAX_PEERS', 'REASON11S_MESH_CAPABILITY_POLICY_VIOLATION', 'REASON11S_MESH_CLOSE_RCVD', 'REASON11S_MESH_MAX_RETRIES', 'REASON11S_MESH_CONFIRM_TIMEOUT', 'REASON11S_MESH_INVALID_GTK', 'REASON11S_MESH_INCONSISTENT_PARAMETERS', 'REASON11S_MESH_INVALID_SECURITY_CAPABILITY', 'REASON11S_RESERVED'])
     ## ie-dot11s-configuration.h: ns3::dot11s::dot11sPathSelectionMetric [enumeration]
     module.add_enum('dot11sPathSelectionMetric', ['METRIC_AIRTIME'])
-    ## ie-dot11s-peer-management.h: ns3::dot11s::PmpReasonCode [enumeration]
-    module.add_enum('PmpReasonCode', ['REASON11S_PEERING_CANCELLED', 'REASON11S_MESH_MAX_PEERS', 'REASON11S_MESH_CAPABILITY_POLICY_VIOLATION', 'REASON11S_MESH_CLOSE_RCVD', 'REASON11S_MESH_MAX_RETRIES', 'REASON11S_MESH_CONFIRM_TIMEOUT', 'REASON11S_MESH_INVALID_GTK', 'REASON11S_MESH_INCONSISTENT_PARAMETERS', 'REASON11S_MESH_INVALID_SECURITY_CAPABILITY', 'REASON11S_RESERVED'])
-    ## ie-dot11s-configuration.h: ns3::dot11s::dot11sAuthenticationProtocol [enumeration]
-    module.add_enum('dot11sAuthenticationProtocol', ['AUTH_NULL', 'AUTH_SAE'])
     ## ie-dot11s-configuration.h: ns3::dot11s::Dot11sMeshCapability [class]
     module.add_class('Dot11sMeshCapability')
     ## hwmp-protocol.h: ns3::dot11s::HwmpProtocol [class]
--- a/bindings/python/apidefs/gcc-ILP32/ns3_module_flow_monitor.py	Mon Aug 09 23:40:31 2010 -0700
+++ b/bindings/python/apidefs/gcc-ILP32/ns3_module_flow_monitor.py	Tue Aug 10 00:13:34 2010 -0700
@@ -385,8 +385,8 @@
     return
 
 def register_Ns3Ipv4FlowClassifierFiveTuple_methods(root_module, cls):
+    cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('<')
-    cls.add_binary_comparison_operator('==')
     ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple::FiveTuple() [constructor]
     cls.add_constructor([])
     ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple::FiveTuple(ns3::Ipv4FlowClassifier::FiveTuple const & arg0) [copy constructor]
--- a/bindings/python/apidefs/gcc-ILP32/ns3_module_node.py	Mon Aug 09 23:40:31 2010 -0700
+++ b/bindings/python/apidefs/gcc-ILP32/ns3_module_node.py	Tue Aug 10 00:13:34 2010 -0700
@@ -212,9 +212,6 @@
     module.add_container('ns3::olsr::MprSet', 'ns3::Ipv4Address', container_type='set')
     module.add_container('std::vector< ns3::Ipv4Address >', 'ns3::Ipv4Address', container_type='vector')
     module.add_container('std::vector< ns3::Ipv6Address >', 'ns3::Ipv6Address', container_type='vector')
-    typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::PhyMacTxStartCallback')
-    typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::PhyMacTxStartCallback*')
-    typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::PhyMacTxStartCallback&')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::PhyMacTxEndCallback')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::PhyMacTxEndCallback*')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::PhyMacTxEndCallback&')
@@ -227,6 +224,9 @@
     typehandlers.add_type_alias('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::PhyMacRxStartCallback')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::PhyMacRxStartCallback*')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::PhyMacRxStartCallback&')
+    typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::PhyMacTxStartCallback')
+    typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::PhyMacTxStartCallback*')
+    typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::PhyMacTxStartCallback&')
     
     ## Register a nested module for the namespace Config
     
@@ -390,9 +390,9 @@
 
 def register_Ns3Address_methods(root_module, cls):
     cls.add_binary_comparison_operator('!=')
-    cls.add_binary_comparison_operator('<')
     cls.add_output_stream_operator()
     cls.add_binary_comparison_operator('==')
+    cls.add_binary_comparison_operator('<')
     ## address.h: ns3::Address::Address() [constructor]
     cls.add_constructor([])
     ## address.h: ns3::Address::Address(uint8_t type, uint8_t const * buffer, uint8_t len) [constructor]
@@ -578,9 +578,9 @@
 
 def register_Ns3Ipv4Address_methods(root_module, cls):
     cls.add_binary_comparison_operator('!=')
-    cls.add_binary_comparison_operator('<')
     cls.add_output_stream_operator()
     cls.add_binary_comparison_operator('==')
+    cls.add_binary_comparison_operator('<')
     ## ipv4-address.h: ns3::Ipv4Address::Ipv4Address(ns3::Ipv4Address const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::Ipv4Address const &', 'arg0')])
     ## ipv4-address.h: ns3::Ipv4Address::Ipv4Address() [constructor]
@@ -862,9 +862,9 @@
 
 def register_Ns3Ipv6Address_methods(root_module, cls):
     cls.add_binary_comparison_operator('!=')
-    cls.add_binary_comparison_operator('<')
     cls.add_output_stream_operator()
     cls.add_binary_comparison_operator('==')
+    cls.add_binary_comparison_operator('<')
     ## ipv6-address.h: ns3::Ipv6Address::Ipv6Address() [constructor]
     cls.add_constructor([])
     ## ipv6-address.h: ns3::Ipv6Address::Ipv6Address(char const * address) [constructor]
@@ -1129,9 +1129,9 @@
 
 def register_Ns3Mac48Address_methods(root_module, cls):
     cls.add_binary_comparison_operator('!=')
-    cls.add_binary_comparison_operator('<')
     cls.add_output_stream_operator()
     cls.add_binary_comparison_operator('==')
+    cls.add_binary_comparison_operator('<')
     ## mac48-address.h: ns3::Mac48Address::Mac48Address(ns3::Mac48Address const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::Mac48Address const &', 'arg0')])
     ## mac48-address.h: ns3::Mac48Address::Mac48Address() [constructor]
--- a/bindings/python/apidefs/gcc-ILP32/ns3_module_olsr.py	Mon Aug 09 23:40:31 2010 -0700
+++ b/bindings/python/apidefs/gcc-ILP32/ns3_module_olsr.py	Tue Aug 10 00:13:34 2010 -0700
@@ -140,39 +140,39 @@
     module.add_container('std::vector< ns3::olsr::MessageHeader::Hello::LinkMessage >', 'ns3::olsr::MessageHeader::Hello::LinkMessage', container_type='vector')
     module.add_container('std::vector< ns3::olsr::MessageHeader::Hna::Association >', 'ns3::olsr::MessageHeader::Hna::Association', container_type='vector')
     module.add_container('std::vector< ns3::olsr::RoutingTableEntry >', 'ns3::olsr::RoutingTableEntry', container_type='vector')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::TopologyTuple, std::allocator< ns3::olsr::TopologyTuple > >', 'ns3::olsr::TopologySet')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::TopologyTuple, std::allocator< ns3::olsr::TopologyTuple > >*', 'ns3::olsr::TopologySet*')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::TopologyTuple, std::allocator< ns3::olsr::TopologyTuple > >&', 'ns3::olsr::TopologySet&')
+    typehandlers.add_type_alias('std::set< ns3::Ipv4Address, std::less< ns3::Ipv4Address >, std::allocator< ns3::Ipv4Address > >', 'ns3::olsr::MprSet')
+    typehandlers.add_type_alias('std::set< ns3::Ipv4Address, std::less< ns3::Ipv4Address >, std::allocator< ns3::Ipv4Address > >*', 'ns3::olsr::MprSet*')
+    typehandlers.add_type_alias('std::set< ns3::Ipv4Address, std::less< ns3::Ipv4Address >, std::allocator< ns3::Ipv4Address > >&', 'ns3::olsr::MprSet&')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::MprSelectorTuple, std::allocator< ns3::olsr::MprSelectorTuple > >', 'ns3::olsr::MprSelectorSet')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::MprSelectorTuple, std::allocator< ns3::olsr::MprSelectorTuple > >*', 'ns3::olsr::MprSelectorSet*')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::MprSelectorTuple, std::allocator< ns3::olsr::MprSelectorTuple > >&', 'ns3::olsr::MprSelectorSet&')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::Association, std::allocator< ns3::olsr::Association > >', 'ns3::olsr::Associations')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::Association, std::allocator< ns3::olsr::Association > >*', 'ns3::olsr::Associations*')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::Association, std::allocator< ns3::olsr::Association > >&', 'ns3::olsr::Associations&')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::IfaceAssocTuple, std::allocator< ns3::olsr::IfaceAssocTuple > >', 'ns3::olsr::IfaceAssocSet')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::IfaceAssocTuple, std::allocator< ns3::olsr::IfaceAssocTuple > >*', 'ns3::olsr::IfaceAssocSet*')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::IfaceAssocTuple, std::allocator< ns3::olsr::IfaceAssocTuple > >&', 'ns3::olsr::IfaceAssocSet&')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::TwoHopNeighborTuple, std::allocator< ns3::olsr::TwoHopNeighborTuple > >', 'ns3::olsr::TwoHopNeighborSet')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::TwoHopNeighborTuple, std::allocator< ns3::olsr::TwoHopNeighborTuple > >*', 'ns3::olsr::TwoHopNeighborSet*')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::TwoHopNeighborTuple, std::allocator< ns3::olsr::TwoHopNeighborTuple > >&', 'ns3::olsr::TwoHopNeighborSet&')
     typehandlers.add_type_alias('std::vector< ns3::olsr::DuplicateTuple, std::allocator< ns3::olsr::DuplicateTuple > >', 'ns3::olsr::DuplicateSet')
     typehandlers.add_type_alias('std::vector< ns3::olsr::DuplicateTuple, std::allocator< ns3::olsr::DuplicateTuple > >*', 'ns3::olsr::DuplicateSet*')
     typehandlers.add_type_alias('std::vector< ns3::olsr::DuplicateTuple, std::allocator< ns3::olsr::DuplicateTuple > >&', 'ns3::olsr::DuplicateSet&')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::MessageHeader, std::allocator< ns3::olsr::MessageHeader > >', 'ns3::olsr::MessageList')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::MessageHeader, std::allocator< ns3::olsr::MessageHeader > >*', 'ns3::olsr::MessageList*')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::MessageHeader, std::allocator< ns3::olsr::MessageHeader > >&', 'ns3::olsr::MessageList&')
     typehandlers.add_type_alias('std::vector< ns3::olsr::NeighborTuple, std::allocator< ns3::olsr::NeighborTuple > >', 'ns3::olsr::NeighborSet')
     typehandlers.add_type_alias('std::vector< ns3::olsr::NeighborTuple, std::allocator< ns3::olsr::NeighborTuple > >*', 'ns3::olsr::NeighborSet*')
     typehandlers.add_type_alias('std::vector< ns3::olsr::NeighborTuple, std::allocator< ns3::olsr::NeighborTuple > >&', 'ns3::olsr::NeighborSet&')
     typehandlers.add_type_alias('std::vector< ns3::olsr::AssociationTuple, std::allocator< ns3::olsr::AssociationTuple > >', 'ns3::olsr::AssociationSet')
     typehandlers.add_type_alias('std::vector< ns3::olsr::AssociationTuple, std::allocator< ns3::olsr::AssociationTuple > >*', 'ns3::olsr::AssociationSet*')
     typehandlers.add_type_alias('std::vector< ns3::olsr::AssociationTuple, std::allocator< ns3::olsr::AssociationTuple > >&', 'ns3::olsr::AssociationSet&')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::TopologyTuple, std::allocator< ns3::olsr::TopologyTuple > >', 'ns3::olsr::TopologySet')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::TopologyTuple, std::allocator< ns3::olsr::TopologyTuple > >*', 'ns3::olsr::TopologySet*')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::TopologyTuple, std::allocator< ns3::olsr::TopologyTuple > >&', 'ns3::olsr::TopologySet&')
     typehandlers.add_type_alias('std::vector< ns3::olsr::LinkTuple, std::allocator< ns3::olsr::LinkTuple > >', 'ns3::olsr::LinkSet')
     typehandlers.add_type_alias('std::vector< ns3::olsr::LinkTuple, std::allocator< ns3::olsr::LinkTuple > >*', 'ns3::olsr::LinkSet*')
     typehandlers.add_type_alias('std::vector< ns3::olsr::LinkTuple, std::allocator< ns3::olsr::LinkTuple > >&', 'ns3::olsr::LinkSet&')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::Association, std::allocator< ns3::olsr::Association > >', 'ns3::olsr::Associations')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::Association, std::allocator< ns3::olsr::Association > >*', 'ns3::olsr::Associations*')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::Association, std::allocator< ns3::olsr::Association > >&', 'ns3::olsr::Associations&')
-    typehandlers.add_type_alias('std::set< ns3::Ipv4Address, std::less< ns3::Ipv4Address >, std::allocator< ns3::Ipv4Address > >', 'ns3::olsr::MprSet')
-    typehandlers.add_type_alias('std::set< ns3::Ipv4Address, std::less< ns3::Ipv4Address >, std::allocator< ns3::Ipv4Address > >*', 'ns3::olsr::MprSet*')
-    typehandlers.add_type_alias('std::set< ns3::Ipv4Address, std::less< ns3::Ipv4Address >, std::allocator< ns3::Ipv4Address > >&', 'ns3::olsr::MprSet&')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::MprSelectorTuple, std::allocator< ns3::olsr::MprSelectorTuple > >', 'ns3::olsr::MprSelectorSet')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::MprSelectorTuple, std::allocator< ns3::olsr::MprSelectorTuple > >*', 'ns3::olsr::MprSelectorSet*')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::MprSelectorTuple, std::allocator< ns3::olsr::MprSelectorTuple > >&', 'ns3::olsr::MprSelectorSet&')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::MessageHeader, std::allocator< ns3::olsr::MessageHeader > >', 'ns3::olsr::MessageList')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::MessageHeader, std::allocator< ns3::olsr::MessageHeader > >*', 'ns3::olsr::MessageList*')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::MessageHeader, std::allocator< ns3::olsr::MessageHeader > >&', 'ns3::olsr::MessageList&')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::IfaceAssocTuple, std::allocator< ns3::olsr::IfaceAssocTuple > >', 'ns3::olsr::IfaceAssocSet')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::IfaceAssocTuple, std::allocator< ns3::olsr::IfaceAssocTuple > >*', 'ns3::olsr::IfaceAssocSet*')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::IfaceAssocTuple, std::allocator< ns3::olsr::IfaceAssocTuple > >&', 'ns3::olsr::IfaceAssocSet&')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::TwoHopNeighborTuple, std::allocator< ns3::olsr::TwoHopNeighborTuple > >', 'ns3::olsr::TwoHopNeighborSet')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::TwoHopNeighborTuple, std::allocator< ns3::olsr::TwoHopNeighborTuple > >*', 'ns3::olsr::TwoHopNeighborSet*')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::TwoHopNeighborTuple, std::allocator< ns3::olsr::TwoHopNeighborTuple > >&', 'ns3::olsr::TwoHopNeighborSet&')
 
 def register_methods(root_module):
     register_Ns3OlsrState_methods(root_module, root_module['ns3::OlsrState'])
--- a/bindings/python/apidefs/gcc-ILP32/ns3_module_simulator.py	Mon Aug 09 23:40:31 2010 -0700
+++ b/bindings/python/apidefs/gcc-ILP32/ns3_module_simulator.py	Tue Aug 10 00:13:34 2010 -0700
@@ -5,7 +5,7 @@
     
     ## event-id.h: ns3::EventId [class]
     module.add_class('EventId')
-    ## high-precision-128.h: ns3::HighPrecision [class]
+    ## high-precision-double.h: ns3::HighPrecision [class]
     module.add_class('HighPrecision')
     ## simulator.h: ns3::Simulator [class]
     module.add_class('Simulator', is_singleton=True)
@@ -67,14 +67,14 @@
     module.add_class('TimeChecker', parent=root_module['ns3::AttributeChecker'])
     ## nstime.h: ns3::TimeValue [class]
     module.add_class('TimeValue', parent=root_module['ns3::AttributeValue'])
+    typehandlers.add_type_alias('ns3::Time', 'ns3::TimeInvert')
+    typehandlers.add_type_alias('ns3::Time*', 'ns3::TimeInvert*')
+    typehandlers.add_type_alias('ns3::Time&', 'ns3::TimeInvert&')
+    module.add_typedef(root_module['ns3::Time'], 'TimeInvert')
     typehandlers.add_type_alias('ns3::Time', 'ns3::TimeSquare')
     typehandlers.add_type_alias('ns3::Time*', 'ns3::TimeSquare*')
     typehandlers.add_type_alias('ns3::Time&', 'ns3::TimeSquare&')
     module.add_typedef(root_module['ns3::Time'], 'TimeSquare')
-    typehandlers.add_type_alias('ns3::Time', 'ns3::TimeInvert')
-    typehandlers.add_type_alias('ns3::Time*', 'ns3::TimeInvert*')
-    typehandlers.add_type_alias('ns3::Time&', 'ns3::TimeInvert&')
-    module.add_typedef(root_module['ns3::Time'], 'TimeInvert')
     
     ## Register a nested module for the namespace Config
     
@@ -230,55 +230,55 @@
     return
 
 def register_Ns3HighPrecision_methods(root_module, cls):
-    ## high-precision-128.h: ns3::HighPrecision::HighPrecision(ns3::HighPrecision const & arg0) [copy constructor]
+    ## high-precision-double.h: ns3::HighPrecision::HighPrecision(ns3::HighPrecision const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::HighPrecision const &', 'arg0')])
-    ## high-precision-128.h: ns3::HighPrecision::HighPrecision() [constructor]
+    ## high-precision-double.h: ns3::HighPrecision::HighPrecision() [constructor]
     cls.add_constructor([])
-    ## high-precision-128.h: ns3::HighPrecision::HighPrecision(int64_t value, bool dummy) [constructor]
+    ## high-precision-double.h: ns3::HighPrecision::HighPrecision(int64_t value, bool dummy) [constructor]
     cls.add_constructor([param('int64_t', 'value'), param('bool', 'dummy')])
-    ## high-precision-128.h: ns3::HighPrecision::HighPrecision(double value) [constructor]
+    ## high-precision-double.h: ns3::HighPrecision::HighPrecision(double value) [constructor]
     cls.add_constructor([param('double', 'value')])
-    ## high-precision-128.h: void ns3::HighPrecision::Add(ns3::HighPrecision const & o) [member function]
+    ## high-precision-double.h: void ns3::HighPrecision::Add(ns3::HighPrecision const & o) [member function]
     cls.add_method('Add', 
                    'void', 
                    [param('ns3::HighPrecision const &', 'o')])
-    ## high-precision-128.h: int ns3::HighPrecision::Compare(ns3::HighPrecision const & o) const [member function]
+    ## high-precision-double.h: int ns3::HighPrecision::Compare(ns3::HighPrecision const & o) const [member function]
     cls.add_method('Compare', 
                    'int', 
                    [param('ns3::HighPrecision const &', 'o')], 
                    is_const=True)
-    ## high-precision-128.h: void ns3::HighPrecision::Div(ns3::HighPrecision const & o) [member function]
+    ## high-precision-double.h: void ns3::HighPrecision::Div(ns3::HighPrecision const & o) [member function]
     cls.add_method('Div', 
                    'void', 
                    [param('ns3::HighPrecision const &', 'o')])
-    ## high-precision-128.h: double ns3::HighPrecision::GetDouble() const [member function]
+    ## high-precision-double.h: double ns3::HighPrecision::GetDouble() const [member function]
     cls.add_method('GetDouble', 
                    'double', 
                    [], 
                    is_const=True)
-    ## high-precision-128.h: int64_t ns3::HighPrecision::GetInteger() const [member function]
+    ## high-precision-double.h: int64_t ns3::HighPrecision::GetInteger() const [member function]
     cls.add_method('GetInteger', 
                    'int64_t', 
                    [], 
                    is_const=True)
-    ## high-precision-128.h: static ns3::HighPrecision ns3::HighPrecision::Invert(uint64_t v) [member function]
+    ## high-precision-double.h: static ns3::HighPrecision ns3::HighPrecision::Invert(uint64_t v) [member function]
     cls.add_method('Invert', 
                    'ns3::HighPrecision', 
                    [param('uint64_t', 'v')], 
                    is_static=True)
-    ## high-precision-128.h: void ns3::HighPrecision::Mul(ns3::HighPrecision const & o) [member function]
+    ## high-precision-double.h: void ns3::HighPrecision::Mul(ns3::HighPrecision const & o) [member function]
     cls.add_method('Mul', 
                    'void', 
                    [param('ns3::HighPrecision const &', 'o')])
-    ## high-precision-128.h: void ns3::HighPrecision::MulByInvert(ns3::HighPrecision const & o) [member function]
+    ## high-precision-double.h: void ns3::HighPrecision::MulByInvert(ns3::HighPrecision const & o) [member function]
     cls.add_method('MulByInvert', 
                    'void', 
                    [param('ns3::HighPrecision const &', 'o')])
-    ## high-precision-128.h: void ns3::HighPrecision::Sub(ns3::HighPrecision const & o) [member function]
+    ## high-precision-double.h: void ns3::HighPrecision::Sub(ns3::HighPrecision const & o) [member function]
     cls.add_method('Sub', 
                    'void', 
                    [param('ns3::HighPrecision const &', 'o')])
-    ## high-precision-128.h: static ns3::HighPrecision ns3::HighPrecision::Zero() [member function]
+    ## high-precision-double.h: static ns3::HighPrecision ns3::HighPrecision::Zero() [member function]
     cls.add_method('Zero', 
                    'ns3::HighPrecision', 
                    [], 
@@ -377,6 +377,13 @@
 
 def register_Ns3Time_methods(root_module, cls):
     cls.add_binary_comparison_operator('!=')
+    cls.add_inplace_numeric_operator('*=', param('ns3::Time const &', 'right'))
+    cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', 'right'))
+    cls.add_inplace_numeric_operator('/=', param('ns3::Time const &', 'right'))
+    cls.add_output_stream_operator()
+    cls.add_binary_comparison_operator('<=')
+    cls.add_binary_comparison_operator('==')
+    cls.add_binary_comparison_operator('>=')
     cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', 'right'))
     cls.add_binary_numeric_operator('*', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right'))
     cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right'))
@@ -384,13 +391,6 @@
     cls.add_binary_numeric_operator('/', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right'))
     cls.add_binary_comparison_operator('<')
     cls.add_binary_comparison_operator('>')
-    cls.add_inplace_numeric_operator('*=', param('ns3::Time const &', 'right'))
-    cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', 'right'))
-    cls.add_inplace_numeric_operator('/=', param('ns3::Time const &', 'right'))
-    cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
-    cls.add_binary_comparison_operator('==')
-    cls.add_binary_comparison_operator('>=')
     ## nstime.h: ns3::Time::Time() [constructor]
     cls.add_constructor([])
     ## nstime.h: ns3::Time::Time(ns3::Time const & o) [copy constructor]
--- a/bindings/python/apidefs/gcc-ILP32/ns3_module_spectrum.py	Mon Aug 09 23:40:31 2010 -0700
+++ b/bindings/python/apidefs/gcc-ILP32/ns3_module_spectrum.py	Tue Aug 10 00:13:34 2010 -0700
@@ -39,15 +39,15 @@
     module.add_class('MultiModelSpectrumChannel', parent=root_module['ns3::SpectrumChannel'])
     ## single-model-spectrum-channel.h: ns3::SingleModelSpectrumChannel [class]
     module.add_class('SingleModelSpectrumChannel', parent=root_module['ns3::SpectrumChannel'])
+    typehandlers.add_type_alias('std::map< unsigned int, ns3::SpectrumConverter, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::SpectrumConverter > > >', 'ns3::SpectrumConverterMap_t')
+    typehandlers.add_type_alias('std::map< unsigned int, ns3::SpectrumConverter, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::SpectrumConverter > > >*', 'ns3::SpectrumConverterMap_t*')
+    typehandlers.add_type_alias('std::map< unsigned int, ns3::SpectrumConverter, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::SpectrumConverter > > >&', 'ns3::SpectrumConverterMap_t&')
     typehandlers.add_type_alias('std::map< unsigned int, ns3::TxSpectrumModelInfo, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::TxSpectrumModelInfo > > >', 'ns3::TxSpectrumModelInfoMap_t')
     typehandlers.add_type_alias('std::map< unsigned int, ns3::TxSpectrumModelInfo, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::TxSpectrumModelInfo > > >*', 'ns3::TxSpectrumModelInfoMap_t*')
     typehandlers.add_type_alias('std::map< unsigned int, ns3::TxSpectrumModelInfo, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::TxSpectrumModelInfo > > >&', 'ns3::TxSpectrumModelInfoMap_t&')
     typehandlers.add_type_alias('std::map< unsigned int, ns3::RxSpectrumModelInfo, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::RxSpectrumModelInfo > > >', 'ns3::RxSpectrumModelInfoMap_t')
     typehandlers.add_type_alias('std::map< unsigned int, ns3::RxSpectrumModelInfo, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::RxSpectrumModelInfo > > >*', 'ns3::RxSpectrumModelInfoMap_t*')
     typehandlers.add_type_alias('std::map< unsigned int, ns3::RxSpectrumModelInfo, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::RxSpectrumModelInfo > > >&', 'ns3::RxSpectrumModelInfoMap_t&')
-    typehandlers.add_type_alias('std::map< unsigned int, ns3::SpectrumConverter, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::SpectrumConverter > > >', 'ns3::SpectrumConverterMap_t')
-    typehandlers.add_type_alias('std::map< unsigned int, ns3::SpectrumConverter, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::SpectrumConverter > > >*', 'ns3::SpectrumConverterMap_t*')
-    typehandlers.add_type_alias('std::map< unsigned int, ns3::SpectrumConverter, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::SpectrumConverter > > >&', 'ns3::SpectrumConverterMap_t&')
     
     ## Register a nested module for the namespace Config
     
--- a/bindings/python/apidefs/gcc-ILP32/ns3_module_stats.py	Mon Aug 09 23:40:31 2010 -0700
+++ b/bindings/python/apidefs/gcc-ILP32/ns3_module_stats.py	Tue Aug 10 00:13:34 2010 -0700
@@ -27,12 +27,12 @@
     module.add_class('CounterCalculator', template_parameters=['unsigned int'], parent=root_module['ns3::DataCalculator'])
     ## packet-data-calculators.h: ns3::PacketCounterCalculator [class]
     module.add_class('PacketCounterCalculator', parent=root_module['ns3::CounterCalculator< unsigned int >'])
+    typehandlers.add_type_alias('std::list< std::pair< std::string, std::string >, std::allocator< std::pair< std::string, std::string > > >', 'ns3::MetadataList')
+    typehandlers.add_type_alias('std::list< std::pair< std::string, std::string >, std::allocator< std::pair< std::string, std::string > > >*', 'ns3::MetadataList*')
+    typehandlers.add_type_alias('std::list< std::pair< std::string, std::string >, std::allocator< std::pair< std::string, std::string > > >&', 'ns3::MetadataList&')
     typehandlers.add_type_alias('std::list< ns3::Ptr< ns3::DataCalculator >, std::allocator< ns3::Ptr< ns3::DataCalculator > > >', 'ns3::DataCalculatorList')
     typehandlers.add_type_alias('std::list< ns3::Ptr< ns3::DataCalculator >, std::allocator< ns3::Ptr< ns3::DataCalculator > > >*', 'ns3::DataCalculatorList*')
     typehandlers.add_type_alias('std::list< ns3::Ptr< ns3::DataCalculator >, std::allocator< ns3::Ptr< ns3::DataCalculator > > >&', 'ns3::DataCalculatorList&')
-    typehandlers.add_type_alias('std::list< std::pair< std::string, std::string >, std::allocator< std::pair< std::string, std::string > > >', 'ns3::MetadataList')
-    typehandlers.add_type_alias('std::list< std::pair< std::string, std::string >, std::allocator< std::pair< std::string, std::string > > >*', 'ns3::MetadataList*')
-    typehandlers.add_type_alias('std::list< std::pair< std::string, std::string >, std::allocator< std::pair< std::string, std::string > > >&', 'ns3::MetadataList&')
     
     ## Register a nested module for the namespace Config
     
--- a/bindings/python/apidefs/gcc-ILP32/ns3_module_wifi.py	Mon Aug 09 23:40:31 2010 -0700
+++ b/bindings/python/apidefs/gcc-ILP32/ns3_module_wifi.py	Tue Aug 10 00:13:34 2010 -0700
@@ -11,16 +11,16 @@
     module.add_enum('WifiModulationClass', ['WIFI_MOD_CLASS_UNKNOWN', 'WIFI_MOD_CLASS_IR', 'WIFI_MOD_CLASS_FHSS', 'WIFI_MOD_CLASS_DSSS', 'WIFI_MOD_CLASS_ERP_PBCC', 'WIFI_MOD_CLASS_DSSS_OFDM', 'WIFI_MOD_CLASS_ERP_OFDM', 'WIFI_MOD_CLASS_OFDM', 'WIFI_MOD_CLASS_HT'])
     ## wifi-phy-standard.h: ns3::WifiPhyStandard [enumeration]
     module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211_10Mhz', 'WIFI_PHY_STANDARD_80211_5Mhz', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211p_CCH', 'WIFI_PHY_STANDARD_80211p_SCH', 'WIFI_PHY_UNKNOWN'])
-    ## qos-tag.h: ns3::UserPriority [enumeration]
-    module.add_enum('UserPriority', ['UP_BK', 'UP_BE', 'UP_EE', 'UP_CL', 'UP_VI', 'UP_VO', 'UP_NC'])
     ## qos-utils.h: ns3::AcIndex [enumeration]
     module.add_enum('AcIndex', ['AC_BE', 'AC_BK', 'AC_VI', 'AC_VO', 'AC_BE_NQOS', 'AC_UNDEF'])
+    ## ctrl-headers.h: ns3::BlockAckType [enumeration]
+    module.add_enum('BlockAckType', ['BASIC_BLOCK_ACK', 'COMPRESSED_BLOCK_ACK', 'MULTI_TID_BLOCK_ACK'])
+    ## qos-tag.h: ns3::UserPriority [enumeration]
+    module.add_enum('UserPriority', ['UP_BK', 'UP_BE', 'UP_EE', 'UP_CL', 'UP_VI', 'UP_VO', 'UP_NC'])
+    ## wifi-mode.h: ns3::WifiCodeRate [enumeration]
+    module.add_enum('WifiCodeRate', ['WIFI_CODE_RATE_UNDEFINED', 'WIFI_CODE_RATE_3_4', 'WIFI_CODE_RATE_2_3', 'WIFI_CODE_RATE_1_2'])
     ## edca-txop-n.h: ns3::TypeOfStation [enumeration]
     module.add_enum('TypeOfStation', ['STA', 'AP', 'ADHOC_STA'])
-    ## ctrl-headers.h: ns3::BlockAckType [enumeration]
-    module.add_enum('BlockAckType', ['BASIC_BLOCK_ACK', 'COMPRESSED_BLOCK_ACK', 'MULTI_TID_BLOCK_ACK'])
-    ## wifi-mode.h: ns3::WifiCodeRate [enumeration]
-    module.add_enum('WifiCodeRate', ['WIFI_CODE_RATE_UNDEFINED', 'WIFI_CODE_RATE_3_4', 'WIFI_CODE_RATE_2_3', 'WIFI_CODE_RATE_1_2'])
     ## block-ack-manager.h: ns3::Bar [struct]
     module.add_class('Bar')
     ## block-ack-agreement.h: ns3::BlockAckAgreement [class]
@@ -204,18 +204,18 @@
     ## dca-txop.h: ns3::DcaTxop [class]
     module.add_class('DcaTxop', parent=root_module['ns3::Dcf'])
     module.add_container('ns3::WifiModeList', 'ns3::WifiMode', container_type='vector')
-    typehandlers.add_type_alias('uint8_t', 'ns3::WifiInformationElementId')
-    typehandlers.add_type_alias('uint8_t*', 'ns3::WifiInformationElementId*')
-    typehandlers.add_type_alias('uint8_t&', 'ns3::WifiInformationElementId&')
     typehandlers.add_type_alias('__gnu_cxx::__normal_iterator< ns3::WifiMode const *, std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > > >', 'ns3::WifiModeListIterator')
     typehandlers.add_type_alias('__gnu_cxx::__normal_iterator< ns3::WifiMode const *, std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > > >*', 'ns3::WifiModeListIterator*')
     typehandlers.add_type_alias('__gnu_cxx::__normal_iterator< ns3::WifiMode const *, std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > > >&', 'ns3::WifiModeListIterator&')
+    typehandlers.add_type_alias('std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > >', 'ns3::WifiModeList')
+    typehandlers.add_type_alias('std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > >*', 'ns3::WifiModeList*')
+    typehandlers.add_type_alias('std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > >&', 'ns3::WifiModeList&')
+    typehandlers.add_type_alias('uint8_t', 'ns3::WifiInformationElementId')
+    typehandlers.add_type_alias('uint8_t*', 'ns3::WifiInformationElementId*')
+    typehandlers.add_type_alias('uint8_t&', 'ns3::WifiInformationElementId&')
     typehandlers.add_type_alias('std::vector< ns3::RateInfo, std::allocator< ns3::RateInfo > >', 'ns3::MinstrelRate')
     typehandlers.add_type_alias('std::vector< ns3::RateInfo, std::allocator< ns3::RateInfo > >*', 'ns3::MinstrelRate*')
     typehandlers.add_type_alias('std::vector< ns3::RateInfo, std::allocator< ns3::RateInfo > >&', 'ns3::MinstrelRate&')
-    typehandlers.add_type_alias('std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > >', 'ns3::WifiModeList')
-    typehandlers.add_type_alias('std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > >*', 'ns3::WifiModeList*')
-    typehandlers.add_type_alias('std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > >&', 'ns3::WifiModeList&')
     typehandlers.add_type_alias('std::vector< std::vector< unsigned int, std::allocator< unsigned int > >, std::allocator< std::vector< unsigned int, std::allocator< unsigned int > > > >', 'ns3::SampleRate')
     typehandlers.add_type_alias('std::vector< std::vector< unsigned int, std::allocator< unsigned int > >, std::allocator< std::vector< unsigned int, std::allocator< unsigned int > > > >*', 'ns3::SampleRate*')
     typehandlers.add_type_alias('std::vector< std::vector< unsigned int, std::allocator< unsigned int > >, std::allocator< std::vector< unsigned int, std::allocator< unsigned int > > > >&', 'ns3::SampleRate&')
--- a/bindings/python/apidefs/gcc-ILP32/ns3modulegen_generated.py	Mon Aug 09 23:40:31 2010 -0700
+++ b/bindings/python/apidefs/gcc-ILP32/ns3modulegen_generated.py	Tue Aug 10 00:13:34 2010 -0700
@@ -500,10 +500,10 @@
         ns3_module_flame__local.register_types(module)
     
     root_module.end_section('ns3_module_flame')
+    ## device-energy-model-container.h: ns3::DeviceEnergyModelContainer [class]
+    module.add_class('DeviceEnergyModelContainer')
     ## energy-model-helper.h: ns3::DeviceEnergyModelHelper [class]
     module.add_class('DeviceEnergyModelHelper', allow_subclassing=True)
-    ## energy-model-helper.h: ns3::EnergyModelHelper [class]
-    module.add_class('EnergyModelHelper')
     ## energy-model-helper.h: ns3::EnergySourceHelper [class]
     module.add_class('EnergySourceHelper', allow_subclassing=True)
     ## uan-mac-rc.h: ns3::Reservation [class]
@@ -530,10 +530,10 @@
     module.add_enum('ModulationType', ['PSK', 'QAM', 'FSK', 'OTHER'], outer_class=root_module['ns3::UanTxMode'])
     ## uan-tx-mode.h: ns3::UanTxModeFactory [class]
     module.add_class('UanTxModeFactory')
+    ## wifi-radio-energy-model-helper.h: ns3::WifiRadioEnergyModelHelper [class]
+    module.add_class('WifiRadioEnergyModelHelper', parent=root_module['ns3::DeviceEnergyModelHelper'])
     ## basic-energy-source-helper.h: ns3::BasicEnergySourceHelper [class]
     module.add_class('BasicEnergySourceHelper', parent=root_module['ns3::EnergySourceHelper'])
-    ## basic-radio-energy-model-helper.h: ns3::BasicRadioEnergyModelHelper [class]
-    module.add_class('BasicRadioEnergyModelHelper', parent=root_module['ns3::DeviceEnergyModelHelper'])
     ## uan-header-common.h: ns3::UanHeaderCommon [class]
     module.add_class('UanHeaderCommon', parent=root_module['ns3::Header'])
     ## uan-header-rc.h: ns3::UanHeaderRcAck [class]
@@ -600,10 +600,8 @@
     module.add_class('DeviceEnergyModel', parent=root_module['ns3::Object'])
     ## energy-source.h: ns3::EnergySource [class]
     module.add_class('EnergySource', parent=root_module['ns3::Object'])
-    ## radio-energy-model.h: ns3::RadioEnergyModel [class]
-    module.add_class('RadioEnergyModel', parent=root_module['ns3::DeviceEnergyModel'])
-    ## radio-energy-model.h: ns3::RadioEnergyModel::RadioState [enumeration]
-    module.add_enum('RadioState', ['TX', 'RX', 'IDLE', 'SLEEP'], outer_class=root_module['ns3::RadioEnergyModel'])
+    ## energy-source-container.h: ns3::EnergySourceContainer [class]
+    module.add_class('EnergySourceContainer', parent=root_module['ns3::Object'])
     ## uan-channel.h: ns3::UanChannel [class]
     module.add_class('UanChannel', parent=root_module['ns3::Channel'])
     ## uan-tx-mode.h: ns3::UanModesListChecker [class]
@@ -612,10 +610,12 @@
     module.add_class('UanModesListValue', parent=root_module['ns3::AttributeValue'])
     ## uan-net-device.h: ns3::UanNetDevice [class]
     module.add_class('UanNetDevice', parent=root_module['ns3::NetDevice'])
+    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModel [class]
+    module.add_class('WifiRadioEnergyModel', parent=root_module['ns3::DeviceEnergyModel'])
+    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModel::WifiRadioState [enumeration]
+    module.add_enum('WifiRadioState', ['TX', 'RX', 'IDLE', 'SLEEP'], outer_class=root_module['ns3::WifiRadioEnergyModel'])
     ## basic-energy-source.h: ns3::BasicEnergySource [class]
     module.add_class('BasicEnergySource', parent=root_module['ns3::EnergySource'])
-    ## basic-radio-energy-model.h: ns3::BasicRadioEnergyModel [class]
-    module.add_class('BasicRadioEnergyModel', parent=root_module['ns3::RadioEnergyModel'])
     module.add_container('std::vector< unsigned int >', 'unsigned int', container_type='vector')
     module.add_container('std::vector< bool >', 'bool', container_type='vector')
     module.add_container('std::list< std::pair< ns3::Ptr< ns3::Packet >, ns3::UanAddress > >', 'std::pair< ns3::Ptr< ns3::Packet >, ns3::UanAddress >', container_type='list')
@@ -718,8 +718,8 @@
     module.add_container('std::set< unsigned int >', 'unsigned int', container_type='set')
 
 def register_methods(root_module):
+    register_Ns3DeviceEnergyModelContainer_methods(root_module, root_module['ns3::DeviceEnergyModelContainer'])
     register_Ns3DeviceEnergyModelHelper_methods(root_module, root_module['ns3::DeviceEnergyModelHelper'])
-    register_Ns3EnergyModelHelper_methods(root_module, root_module['ns3::EnergyModelHelper'])
     register_Ns3EnergySourceHelper_methods(root_module, root_module['ns3::EnergySourceHelper'])
     register_Ns3Reservation_methods(root_module, root_module['ns3::Reservation'])
     register_Ns3Tap_methods(root_module, root_module['ns3::Tap'])
@@ -731,8 +731,8 @@
     register_Ns3UanPhyListener_methods(root_module, root_module['ns3::UanPhyListener'])
     register_Ns3UanTxMode_methods(root_module, root_module['ns3::UanTxMode'])
     register_Ns3UanTxModeFactory_methods(root_module, root_module['ns3::UanTxModeFactory'])
+    register_Ns3WifiRadioEnergyModelHelper_methods(root_module, root_module['ns3::WifiRadioEnergyModelHelper'])
     register_Ns3BasicEnergySourceHelper_methods(root_module, root_module['ns3::BasicEnergySourceHelper'])
-    register_Ns3BasicRadioEnergyModelHelper_methods(root_module, root_module['ns3::BasicRadioEnergyModelHelper'])
     register_Ns3UanHeaderCommon_methods(root_module, root_module['ns3::UanHeaderCommon'])
     register_Ns3UanHeaderRcAck_methods(root_module, root_module['ns3::UanHeaderRcAck'])
     register_Ns3UanHeaderRcCts_methods(root_module, root_module['ns3::UanHeaderRcCts'])
@@ -763,13 +763,13 @@
     register_Ns3UanTransducerHd_methods(root_module, root_module['ns3::UanTransducerHd'])
     register_Ns3DeviceEnergyModel_methods(root_module, root_module['ns3::DeviceEnergyModel'])
     register_Ns3EnergySource_methods(root_module, root_module['ns3::EnergySource'])
-    register_Ns3RadioEnergyModel_methods(root_module, root_module['ns3::RadioEnergyModel'])
+    register_Ns3EnergySourceContainer_methods(root_module, root_module['ns3::EnergySourceContainer'])
     register_Ns3UanChannel_methods(root_module, root_module['ns3::UanChannel'])
     register_Ns3UanModesListChecker_methods(root_module, root_module['ns3::UanModesListChecker'])
     register_Ns3UanModesListValue_methods(root_module, root_module['ns3::UanModesListValue'])
     register_Ns3UanNetDevice_methods(root_module, root_module['ns3::UanNetDevice'])
+    register_Ns3WifiRadioEnergyModel_methods(root_module, root_module['ns3::WifiRadioEnergyModel'])
     register_Ns3BasicEnergySource_methods(root_module, root_module['ns3::BasicEnergySource'])
-    register_Ns3BasicRadioEnergyModel_methods(root_module, root_module['ns3::BasicRadioEnergyModel'])
     root_module.begin_section('ns3_module_core')
     ns3_module_core.register_methods(root_module)
     
@@ -1212,90 +1212,117 @@
     root_module.end_section('ns3_module_flame')
     return
 
+def register_Ns3DeviceEnergyModelContainer_methods(root_module, cls):
+    ## device-energy-model-container.h: ns3::DeviceEnergyModelContainer::DeviceEnergyModelContainer(ns3::DeviceEnergyModelContainer const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::DeviceEnergyModelContainer const &', 'arg0')])
+    ## device-energy-model-container.h: ns3::DeviceEnergyModelContainer::DeviceEnergyModelContainer() [constructor]
+    cls.add_constructor([])
+    ## device-energy-model-container.h: ns3::DeviceEnergyModelContainer::DeviceEnergyModelContainer(ns3::Ptr<ns3::DeviceEnergyModel> model) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::DeviceEnergyModel >', 'model')])
+    ## device-energy-model-container.h: ns3::DeviceEnergyModelContainer::DeviceEnergyModelContainer(std::string modelName) [constructor]
+    cls.add_constructor([param('std::string', 'modelName')])
+    ## device-energy-model-container.h: ns3::DeviceEnergyModelContainer::DeviceEnergyModelContainer(ns3::DeviceEnergyModelContainer const & a, ns3::DeviceEnergyModelContainer const & b) [constructor]
+    cls.add_constructor([param('ns3::DeviceEnergyModelContainer const &', 'a'), param('ns3::DeviceEnergyModelContainer const &', 'b')])
+    ## device-energy-model-container.h: void ns3::DeviceEnergyModelContainer::Add(ns3::DeviceEnergyModelContainer container) [member function]
+    cls.add_method('Add', 
+                   'void', 
+                   [param('ns3::DeviceEnergyModelContainer', 'container')])
+    ## device-energy-model-container.h: void ns3::DeviceEnergyModelContainer::Add(ns3::Ptr<ns3::DeviceEnergyModel> model) [member function]
+    cls.add_method('Add', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::DeviceEnergyModel >', 'model')])
+    ## device-energy-model-container.h: void ns3::DeviceEnergyModelContainer::Add(std::string modelName) [member function]
+    cls.add_method('Add', 
+                   'void', 
+                   [param('std::string', 'modelName')])
+    ## device-energy-model-container.h: __gnu_cxx::__normal_iterator<const ns3::Ptr<ns3::DeviceEnergyModel>*,std::vector<ns3::Ptr<ns3::DeviceEnergyModel>, std::allocator<ns3::Ptr<ns3::DeviceEnergyModel> > > > ns3::DeviceEnergyModelContainer::Begin() const [member function]
+    cls.add_method('Begin', 
+                   '__gnu_cxx::__normal_iterator< ns3::Ptr< ns3::DeviceEnergyModel > const, std::vector< ns3::Ptr< ns3::DeviceEnergyModel > > >', 
+                   [], 
+                   is_const=True)
+    ## device-energy-model-container.h: void ns3::DeviceEnergyModelContainer::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [])
+    ## device-energy-model-container.h: __gnu_cxx::__normal_iterator<const ns3::Ptr<ns3::DeviceEnergyModel>*,std::vector<ns3::Ptr<ns3::DeviceEnergyModel>, std::allocator<ns3::Ptr<ns3::DeviceEnergyModel> > > > ns3::DeviceEnergyModelContainer::End() const [member function]
+    cls.add_method('End', 
+                   '__gnu_cxx::__normal_iterator< ns3::Ptr< ns3::DeviceEnergyModel > const, std::vector< ns3::Ptr< ns3::DeviceEnergyModel > > >', 
+                   [], 
+                   is_const=True)
+    ## device-energy-model-container.h: ns3::Ptr<ns3::DeviceEnergyModel> ns3::DeviceEnergyModelContainer::Get(uint32_t i) const [member function]
+    cls.add_method('Get', 
+                   'ns3::Ptr< ns3::DeviceEnergyModel >', 
+                   [param('uint32_t', 'i')], 
+                   is_const=True)
+    ## device-energy-model-container.h: uint32_t ns3::DeviceEnergyModelContainer::GetN() const [member function]
+    cls.add_method('GetN', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    return
+
 def register_Ns3DeviceEnergyModelHelper_methods(root_module, cls):
     ## energy-model-helper.h: ns3::DeviceEnergyModelHelper::DeviceEnergyModelHelper() [constructor]
     cls.add_constructor([])
     ## energy-model-helper.h: ns3::DeviceEnergyModelHelper::DeviceEnergyModelHelper(ns3::DeviceEnergyModelHelper const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::DeviceEnergyModelHelper const &', 'arg0')])
-    ## energy-model-helper.h: ns3::Ptr<ns3::DeviceEnergyModel> ns3::DeviceEnergyModelHelper::Create() const [member function]
-    cls.add_method('Create', 
-                   'ns3::Ptr< ns3::DeviceEnergyModel >', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## energy-model-helper.h: void ns3::DeviceEnergyModelHelper::Install(ns3::Ptr<ns3::Node> node) const [member function]
-    cls.add_method('Install', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_const=True)
-    ## energy-model-helper.h: void ns3::DeviceEnergyModelHelper::Install(ns3::NodeContainer c) const [member function]
+    ## energy-model-helper.h: ns3::DeviceEnergyModelContainer ns3::DeviceEnergyModelHelper::Install(ns3::Ptr<ns3::NetDevice> device, ns3::Ptr<ns3::EnergySource> source) const [member function]
     cls.add_method('Install', 
-                   'void', 
-                   [param('ns3::NodeContainer', 'c')], 
+                   'ns3::DeviceEnergyModelContainer', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'device'), param('ns3::Ptr< ns3::EnergySource >', 'source')], 
                    is_const=True)
-    ## energy-model-helper.h: void ns3::DeviceEnergyModelHelper::Install(std::string nodeName) const [member function]
+    ## energy-model-helper.h: ns3::DeviceEnergyModelContainer ns3::DeviceEnergyModelHelper::Install(ns3::NetDeviceContainer deviceContainer, ns3::EnergySourceContainer sourceContainer) const [member function]
     cls.add_method('Install', 
-                   'void', 
-                   [param('std::string', 'nodeName')], 
-                   is_const=True)
-    ## energy-model-helper.h: void ns3::DeviceEnergyModelHelper::InstallAll() const [member function]
-    cls.add_method('InstallAll', 
-                   'void', 
-                   [], 
+                   'ns3::DeviceEnergyModelContainer', 
+                   [param('ns3::NetDeviceContainer', 'deviceContainer'), param('ns3::EnergySourceContainer', 'sourceContainer')], 
                    is_const=True)
     ## energy-model-helper.h: void ns3::DeviceEnergyModelHelper::Set(std::string name, ns3::AttributeValue const & v) [member function]
     cls.add_method('Set', 
                    'void', 
                    [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')], 
                    is_pure_virtual=True, is_virtual=True)
-    ## energy-model-helper.h: void ns3::DeviceEnergyModelHelper::DoInstall(ns3::Ptr<ns3::Node> node) const [member function]
+    ## energy-model-helper.h: ns3::Ptr<ns3::DeviceEnergyModel> ns3::DeviceEnergyModelHelper::DoInstall(ns3::Ptr<ns3::NetDevice> device, ns3::Ptr<ns3::EnergySource> source) const [member function]
     cls.add_method('DoInstall', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   'ns3::Ptr< ns3::DeviceEnergyModel >', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'device'), param('ns3::Ptr< ns3::EnergySource >', 'source')], 
                    is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
     return
 
-def register_Ns3EnergyModelHelper_methods(root_module, cls):
-    ## energy-model-helper.h: ns3::EnergyModelHelper::EnergyModelHelper(ns3::EnergyModelHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::EnergyModelHelper const &', 'arg0')])
-    ## energy-model-helper.h: ns3::EnergyModelHelper::EnergyModelHelper() [constructor]
-    cls.add_constructor([])
-    ## energy-model-helper.h: void ns3::EnergyModelHelper::Install(ns3::EnergySourceHelper const & sourceHelper, ns3::DeviceEnergyModelHelper const & modelHelper, ns3::Ptr<ns3::Node> node) const [member function]
-    cls.add_method('Install', 
-                   'void', 
-                   [param('ns3::EnergySourceHelper const &', 'sourceHelper'), param('ns3::DeviceEnergyModelHelper const &', 'modelHelper'), param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_const=True)
-    ## energy-model-helper.h: void ns3::EnergyModelHelper::Install(ns3::EnergySourceHelper const & sourceHelper, ns3::DeviceEnergyModelHelper const & modelHelper, ns3::NodeContainer c) const [member function]
-    cls.add_method('Install', 
-                   'void', 
-                   [param('ns3::EnergySourceHelper const &', 'sourceHelper'), param('ns3::DeviceEnergyModelHelper const &', 'modelHelper'), param('ns3::NodeContainer', 'c')], 
-                   is_const=True)
-    ## energy-model-helper.h: void ns3::EnergyModelHelper::Install(ns3::EnergySourceHelper const & sourceHelper, ns3::DeviceEnergyModelHelper const & modelHelper, std::string nodeName) const [member function]
-    cls.add_method('Install', 
-                   'void', 
-                   [param('ns3::EnergySourceHelper const &', 'sourceHelper'), param('ns3::DeviceEnergyModelHelper const &', 'modelHelper'), param('std::string', 'nodeName')], 
-                   is_const=True)
-    ## energy-model-helper.h: void ns3::EnergyModelHelper::InstallAll(ns3::EnergySourceHelper const & sourceHelper, ns3::DeviceEnergyModelHelper const & modelHelper) const [member function]
-    cls.add_method('InstallAll', 
-                   'void', 
-                   [param('ns3::EnergySourceHelper const &', 'sourceHelper'), param('ns3::DeviceEnergyModelHelper const &', 'modelHelper')], 
-                   is_const=True)
-    return
-
 def register_Ns3EnergySourceHelper_methods(root_module, cls):
     ## energy-model-helper.h: ns3::EnergySourceHelper::EnergySourceHelper() [constructor]
     cls.add_constructor([])
     ## energy-model-helper.h: ns3::EnergySourceHelper::EnergySourceHelper(ns3::EnergySourceHelper const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::EnergySourceHelper const &', 'arg0')])
-    ## energy-model-helper.h: ns3::Ptr<ns3::EnergySource> ns3::EnergySourceHelper::Create() const [member function]
-    cls.add_method('Create', 
+    ## energy-model-helper.h: ns3::EnergySourceContainer ns3::EnergySourceHelper::Install(ns3::Ptr<ns3::Node> node) const [member function]
+    cls.add_method('Install', 
+                   'ns3::EnergySourceContainer', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_const=True)
+    ## energy-model-helper.h: ns3::EnergySourceContainer ns3::EnergySourceHelper::Install(ns3::NodeContainer c) const [member function]
+    cls.add_method('Install', 
+                   'ns3::EnergySourceContainer', 
+                   [param('ns3::NodeContainer', 'c')], 
+                   is_const=True)
+    ## energy-model-helper.h: ns3::EnergySourceContainer ns3::EnergySourceHelper::Install(std::string nodeName) const [member function]
+    cls.add_method('Install', 
+                   'ns3::EnergySourceContainer', 
+                   [param('std::string', 'nodeName')], 
+                   is_const=True)
+    ## energy-model-helper.h: ns3::EnergySourceContainer ns3::EnergySourceHelper::InstallAll() const [member function]
+    cls.add_method('InstallAll', 
+                   'ns3::EnergySourceContainer', 
+                   [], 
+                   is_const=True)
+    ## energy-model-helper.h: void ns3::EnergySourceHelper::Set(std::string name, ns3::AttributeValue const & v) [member function]
+    cls.add_method('Set', 
+                   'void', 
+                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## energy-model-helper.h: ns3::Ptr<ns3::EnergySource> ns3::EnergySourceHelper::DoInstall(ns3::Ptr<ns3::Node> node) const [member function]
+    cls.add_method('DoInstall', 
                    'ns3::Ptr< ns3::EnergySource >', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## energy-model-helper.h: void ns3::EnergySourceHelper::Install(ns3::Ptr<ns3::Node> node) const [member function]
-    cls.add_method('Install', 
-                   'void', 
                    [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
+                   is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
     return
 
 def register_Ns3Reservation_methods(root_module, cls):
@@ -1379,9 +1406,9 @@
 
 def register_Ns3UanAddress_methods(root_module, cls):
     cls.add_binary_comparison_operator('!=')
-    cls.add_binary_comparison_operator('<')
     cls.add_output_stream_operator()
     cls.add_binary_comparison_operator('==')
+    cls.add_binary_comparison_operator('<')
     ## uan-address.h: ns3::UanAddress::UanAddress(ns3::UanAddress const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::UanAddress const &', 'arg0')])
     ## uan-address.h: ns3::UanAddress::UanAddress() [constructor]
@@ -1710,49 +1737,40 @@
                    is_static=True)
     return
 
+def register_Ns3WifiRadioEnergyModelHelper_methods(root_module, cls):
+    ## wifi-radio-energy-model-helper.h: ns3::WifiRadioEnergyModelHelper::WifiRadioEnergyModelHelper(ns3::WifiRadioEnergyModelHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::WifiRadioEnergyModelHelper const &', 'arg0')])
+    ## wifi-radio-energy-model-helper.h: ns3::WifiRadioEnergyModelHelper::WifiRadioEnergyModelHelper() [constructor]
+    cls.add_constructor([])
+    ## wifi-radio-energy-model-helper.h: void ns3::WifiRadioEnergyModelHelper::Set(std::string name, ns3::AttributeValue const & v) [member function]
+    cls.add_method('Set', 
+                   'void', 
+                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')], 
+                   is_virtual=True)
+    ## wifi-radio-energy-model-helper.h: void ns3::WifiRadioEnergyModelHelper::SetDepletionCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
+    cls.add_method('SetDepletionCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')])
+    ## wifi-radio-energy-model-helper.h: ns3::Ptr<ns3::DeviceEnergyModel> ns3::WifiRadioEnergyModelHelper::DoInstall(ns3::Ptr<ns3::NetDevice> device, ns3::Ptr<ns3::EnergySource> source) const [member function]
+    cls.add_method('DoInstall', 
+                   'ns3::Ptr< ns3::DeviceEnergyModel >', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'device'), param('ns3::Ptr< ns3::EnergySource >', 'source')], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
 def register_Ns3BasicEnergySourceHelper_methods(root_module, cls):
     ## basic-energy-source-helper.h: ns3::BasicEnergySourceHelper::BasicEnergySourceHelper(ns3::BasicEnergySourceHelper const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::BasicEnergySourceHelper const &', 'arg0')])
     ## basic-energy-source-helper.h: ns3::BasicEnergySourceHelper::BasicEnergySourceHelper() [constructor]
     cls.add_constructor([])
-    ## basic-energy-source-helper.h: ns3::Ptr<ns3::EnergySource> ns3::BasicEnergySourceHelper::Create() const [member function]
-    cls.add_method('Create', 
-                   'ns3::Ptr< ns3::EnergySource >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## basic-energy-source-helper.h: void ns3::BasicEnergySourceHelper::Install(ns3::Ptr<ns3::Node> node) const [member function]
-    cls.add_method('Install', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_const=True, is_virtual=True)
     ## basic-energy-source-helper.h: void ns3::BasicEnergySourceHelper::Set(std::string name, ns3::AttributeValue const & v) [member function]
     cls.add_method('Set', 
                    'void', 
-                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')])
-    return
-
-def register_Ns3BasicRadioEnergyModelHelper_methods(root_module, cls):
-    ## basic-radio-energy-model-helper.h: ns3::BasicRadioEnergyModelHelper::BasicRadioEnergyModelHelper(ns3::BasicRadioEnergyModelHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::BasicRadioEnergyModelHelper const &', 'arg0')])
-    ## basic-radio-energy-model-helper.h: ns3::BasicRadioEnergyModelHelper::BasicRadioEnergyModelHelper() [constructor]
-    cls.add_constructor([])
-    ## basic-radio-energy-model-helper.h: ns3::Ptr<ns3::DeviceEnergyModel> ns3::BasicRadioEnergyModelHelper::Create() const [member function]
-    cls.add_method('Create', 
-                   'ns3::Ptr< ns3::DeviceEnergyModel >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## basic-radio-energy-model-helper.h: void ns3::BasicRadioEnergyModelHelper::Set(std::string name, ns3::AttributeValue const & v) [member function]
-    cls.add_method('Set', 
-                   'void', 
                    [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')], 
                    is_virtual=True)
-    ## basic-radio-energy-model-helper.h: void ns3::BasicRadioEnergyModelHelper::SetDepletionCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
-    cls.add_method('SetDepletionCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')])
-    ## basic-radio-energy-model-helper.h: void ns3::BasicRadioEnergyModelHelper::DoInstall(ns3::Ptr<ns3::Node> node) const [member function]
+    ## basic-energy-source-helper.h: ns3::Ptr<ns3::EnergySource> ns3::BasicEnergySourceHelper::DoInstall(ns3::Ptr<ns3::Node> node) const [member function]
     cls.add_method('DoInstall', 
-                   'void', 
+                   'ns3::Ptr< ns3::EnergySource >', 
                    [param('ns3::Ptr< ns3::Node >', 'node')], 
                    is_const=True, visibility='private', is_virtual=True)
     return
@@ -3539,6 +3557,26 @@
     cls.add_constructor([param('ns3::DeviceEnergyModel const &', 'arg0')])
     ## device-energy-model.h: ns3::DeviceEnergyModel::DeviceEnergyModel() [constructor]
     cls.add_constructor([])
+    ## device-energy-model.h: void ns3::DeviceEnergyModel::ChangeState(int newState) [member function]
+    cls.add_method('ChangeState', 
+                   'void', 
+                   [param('int', 'newState')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## device-energy-model.h: double ns3::DeviceEnergyModel::GetCurrentA() const [member function]
+    cls.add_method('GetCurrentA', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## device-energy-model.h: ns3::Ptr<ns3::Node> ns3::DeviceEnergyModel::GetNode() const [member function]
+    cls.add_method('GetNode', 
+                   'ns3::Ptr< ns3::Node >', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## device-energy-model.h: double ns3::DeviceEnergyModel::GetTotalEnergyConsumption() const [member function]
+    cls.add_method('GetTotalEnergyConsumption', 
+                   'double', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
     ## device-energy-model.h: static ns3::TypeId ns3::DeviceEnergyModel::GetTypeId() [member function]
     cls.add_method('GetTypeId', 
                    'ns3::TypeId', 
@@ -3547,36 +3585,23 @@
     ## device-energy-model.h: void ns3::DeviceEnergyModel::HandleEnergyDepletion() [member function]
     cls.add_method('HandleEnergyDepletion', 
                    'void', 
-                   [])
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
     ## device-energy-model.h: void ns3::DeviceEnergyModel::SetEnergySource(ns3::Ptr<ns3::EnergySource> source) [member function]
     cls.add_method('SetEnergySource', 
                    'void', 
-                   [param('ns3::Ptr< ns3::EnergySource >', 'source')])
-    ## device-energy-model.h: void ns3::DeviceEnergyModel::BreakSourceRefCycle() [member function]
-    cls.add_method('BreakSourceRefCycle', 
-                   'void', 
-                   [], 
-                   visibility='protected')
-    ## device-energy-model.h: void ns3::DeviceEnergyModel::DecreaseRemainingEnergy(double energyJ) [member function]
-    cls.add_method('DecreaseRemainingEnergy', 
-                   'void', 
-                   [param('double', 'energyJ')], 
-                   visibility='protected')
-    ## device-energy-model.h: void ns3::DeviceEnergyModel::IncreaseRemainingEnergy(double energyJ) [member function]
-    cls.add_method('IncreaseRemainingEnergy', 
-                   'void', 
-                   [param('double', 'energyJ')], 
-                   visibility='protected')
-    ## device-energy-model.h: void ns3::DeviceEnergyModel::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    ## device-energy-model.h: void ns3::DeviceEnergyModel::DoHandleEnergyDepletion() [member function]
-    cls.add_method('DoHandleEnergyDepletion', 
-                   'void', 
-                   [], 
-                   is_pure_virtual=True, visibility='private', is_virtual=True)
+                   [param('ns3::Ptr< ns3::EnergySource >', 'source')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## device-energy-model.h: void ns3::DeviceEnergyModel::SetNode(ns3::Ptr<ns3::Node> node) [member function]
+    cls.add_method('SetNode', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## device-energy-model.h: double ns3::DeviceEnergyModel::DoGetCurrentA() const [member function]
+    cls.add_method('DoGetCurrentA', 
+                   'double', 
+                   [], 
+                   is_const=True, visibility='private', is_virtual=True)
     return
 
 def register_Ns3EnergySource_methods(root_module, cls):
@@ -3591,30 +3616,41 @@
     ## energy-source.h: void ns3::EnergySource::DecreaseRemainingEnergy(double energyJ) [member function]
     cls.add_method('DecreaseRemainingEnergy', 
                    'void', 
-                   [param('double', 'energyJ')])
-    ## energy-source.h: std::vector<ns3::Ptr<ns3::DeviceEnergyModel>, std::allocator<ns3::Ptr<ns3::DeviceEnergyModel> > > ns3::EnergySource::FindDeviceEnergyModels(ns3::TypeId tid) [member function]
+                   [param('double', 'energyJ')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## energy-source.h: ns3::DeviceEnergyModelContainer ns3::EnergySource::FindDeviceEnergyModels(ns3::TypeId tid) [member function]
     cls.add_method('FindDeviceEnergyModels', 
-                   'std::vector< ns3::Ptr< ns3::DeviceEnergyModel > >', 
+                   'ns3::DeviceEnergyModelContainer', 
                    [param('ns3::TypeId', 'tid')])
-    ## energy-source.h: std::vector<ns3::Ptr<ns3::DeviceEnergyModel>, std::allocator<ns3::Ptr<ns3::DeviceEnergyModel> > > ns3::EnergySource::FindDeviceEnergyModels(std::string name) [member function]
+    ## energy-source.h: ns3::DeviceEnergyModelContainer ns3::EnergySource::FindDeviceEnergyModels(std::string name) [member function]
     cls.add_method('FindDeviceEnergyModels', 
-                   'std::vector< ns3::Ptr< ns3::DeviceEnergyModel > >', 
+                   'ns3::DeviceEnergyModelContainer', 
                    [param('std::string', 'name')])
-    ## energy-source.h: double ns3::EnergySource::GetEnergyFraction() const [member function]
+    ## energy-source.h: double ns3::EnergySource::GetEnergyFraction() [member function]
     cls.add_method('GetEnergyFraction', 
                    'double', 
                    [], 
-                   is_const=True)
+                   is_pure_virtual=True, is_virtual=True)
     ## energy-source.h: double ns3::EnergySource::GetInitialEnergy() const [member function]
     cls.add_method('GetInitialEnergy', 
                    'double', 
                    [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## energy-source.h: ns3::Ptr<ns3::Node> ns3::EnergySource::GetNode() const [member function]
+    cls.add_method('GetNode', 
+                   'ns3::Ptr< ns3::Node >', 
+                   [], 
                    is_const=True)
-    ## energy-source.h: double ns3::EnergySource::GetRemainingEnergy() const [member function]
+    ## energy-source.h: double ns3::EnergySource::GetRemainingEnergy() [member function]
     cls.add_method('GetRemainingEnergy', 
                    'double', 
                    [], 
-                   is_const=True)
+                   is_pure_virtual=True, is_virtual=True)
+    ## energy-source.h: double ns3::EnergySource::GetSupplyVoltage() const [member function]
+    cls.add_method('GetSupplyVoltage', 
+                   'double', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
     ## energy-source.h: static ns3::TypeId ns3::EnergySource::GetTypeId() [member function]
     cls.add_method('GetTypeId', 
                    'ns3::TypeId', 
@@ -3623,144 +3659,97 @@
     ## energy-source.h: void ns3::EnergySource::IncreaseRemainingEnergy(double energyJ) [member function]
     cls.add_method('IncreaseRemainingEnergy', 
                    'void', 
-                   [param('double', 'energyJ')])
+                   [param('double', 'energyJ')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## energy-source.h: void ns3::EnergySource::SetNode(ns3::Ptr<ns3::Node> node) [member function]
+    cls.add_method('SetNode', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')])
+    ## energy-source.h: void ns3::EnergySource::UpdateEnergySource() [member function]
+    cls.add_method('UpdateEnergySource', 
+                   'void', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
     ## energy-source.h: void ns3::EnergySource::BreakDeviceEnergyModelRefCycle() [member function]
     cls.add_method('BreakDeviceEnergyModelRefCycle', 
                    'void', 
                    [], 
                    visibility='protected')
+    ## energy-source.h: double ns3::EnergySource::CalculateTotalCurrent() [member function]
+    cls.add_method('CalculateTotalCurrent', 
+                   'double', 
+                   [], 
+                   visibility='protected')
     ## energy-source.h: void ns3::EnergySource::NotifyEnergyDrained() [member function]
     cls.add_method('NotifyEnergyDrained', 
                    'void', 
                    [], 
                    visibility='protected')
-    ## energy-source.h: void ns3::EnergySource::DoDecreaseRemainingEnergy(double energyJ) [member function]
-    cls.add_method('DoDecreaseRemainingEnergy', 
-                   'void', 
-                   [param('double', 'energyJ')], 
-                   is_pure_virtual=True, visibility='private', is_virtual=True)
     ## energy-source.h: void ns3::EnergySource::DoDispose() [member function]
     cls.add_method('DoDispose', 
                    'void', 
                    [], 
                    visibility='private', is_virtual=True)
-    ## energy-source.h: double ns3::EnergySource::DoGetEnergyFraction() const [member function]
-    cls.add_method('DoGetEnergyFraction', 
-                   'double', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
-    ## energy-source.h: double ns3::EnergySource::DoGetInitialEnergy() const [member function]
-    cls.add_method('DoGetInitialEnergy', 
-                   'double', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
-    ## energy-source.h: double ns3::EnergySource::DoGetRemainingEnergy() const [member function]
-    cls.add_method('DoGetRemainingEnergy', 
-                   'double', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
-    ## energy-source.h: void ns3::EnergySource::DoIncreaseRemainingEnergy(double energyJ) [member function]
-    cls.add_method('DoIncreaseRemainingEnergy', 
-                   'void', 
-                   [param('double', 'energyJ')], 
-                   is_pure_virtual=True, visibility='private', is_virtual=True)
     return
 
-def register_Ns3RadioEnergyModel_methods(root_module, cls):
-    ## radio-energy-model.h: ns3::RadioEnergyModel::RadioEnergyModel(ns3::RadioEnergyModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::RadioEnergyModel const &', 'arg0')])
-    ## radio-energy-model.h: ns3::RadioEnergyModel::RadioEnergyModel() [constructor]
+def register_Ns3EnergySourceContainer_methods(root_module, cls):
+    ## energy-source-container.h: ns3::EnergySourceContainer::EnergySourceContainer(ns3::EnergySourceContainer const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::EnergySourceContainer const &', 'arg0')])
+    ## energy-source-container.h: ns3::EnergySourceContainer::EnergySourceContainer() [constructor]
     cls.add_constructor([])
-    ## radio-energy-model.h: double ns3::RadioEnergyModel::GetIdlePowerW() const [member function]
-    cls.add_method('GetIdlePowerW', 
-                   'double', 
+    ## energy-source-container.h: ns3::EnergySourceContainer::EnergySourceContainer(ns3::Ptr<ns3::EnergySource> source) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::EnergySource >', 'source')])
+    ## energy-source-container.h: ns3::EnergySourceContainer::EnergySourceContainer(std::string sourceName) [constructor]
+    cls.add_constructor([param('std::string', 'sourceName')])
+    ## energy-source-container.h: ns3::EnergySourceContainer::EnergySourceContainer(ns3::EnergySourceContainer const & a, ns3::EnergySourceContainer const & b) [constructor]
+    cls.add_constructor([param('ns3::EnergySourceContainer const &', 'a'), param('ns3::EnergySourceContainer const &', 'b')])
+    ## energy-source-container.h: void ns3::EnergySourceContainer::Add(ns3::EnergySourceContainer container) [member function]
+    cls.add_method('Add', 
+                   'void', 
+                   [param('ns3::EnergySourceContainer', 'container')])
+    ## energy-source-container.h: void ns3::EnergySourceContainer::Add(ns3::Ptr<ns3::EnergySource> source) [member function]
+    cls.add_method('Add', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::EnergySource >', 'source')])
+    ## energy-source-container.h: void ns3::EnergySourceContainer::Add(std::string sourceName) [member function]
+    cls.add_method('Add', 
+                   'void', 
+                   [param('std::string', 'sourceName')])
+    ## energy-source-container.h: __gnu_cxx::__normal_iterator<const ns3::Ptr<ns3::EnergySource>*,std::vector<ns3::Ptr<ns3::EnergySource>, std::allocator<ns3::Ptr<ns3::EnergySource> > > > ns3::EnergySourceContainer::Begin() const [member function]
+    cls.add_method('Begin', 
+                   '__gnu_cxx::__normal_iterator< ns3::Ptr< ns3::EnergySource > const, std::vector< ns3::Ptr< ns3::EnergySource > > >', 
                    [], 
                    is_const=True)
-    ## radio-energy-model.h: double ns3::RadioEnergyModel::GetRxPowerW() const [member function]
-    cls.add_method('GetRxPowerW', 
-                   'double', 
+    ## energy-source-container.h: __gnu_cxx::__normal_iterator<const ns3::Ptr<ns3::EnergySource>*,std::vector<ns3::Ptr<ns3::EnergySource>, std::allocator<ns3::Ptr<ns3::EnergySource> > > > ns3::EnergySourceContainer::End() const [member function]
+    cls.add_method('End', 
+                   '__gnu_cxx::__normal_iterator< ns3::Ptr< ns3::EnergySource > const, std::vector< ns3::Ptr< ns3::EnergySource > > >', 
                    [], 
                    is_const=True)
-    ## radio-energy-model.h: double ns3::RadioEnergyModel::GetSleepPowerW() const [member function]
-    cls.add_method('GetSleepPowerW', 
-                   'double', 
+    ## energy-source-container.h: ns3::Ptr<ns3::EnergySource> ns3::EnergySourceContainer::Get(uint32_t i) const [member function]
+    cls.add_method('Get', 
+                   'ns3::Ptr< ns3::EnergySource >', 
+                   [param('uint32_t', 'i')], 
+                   is_const=True)
+    ## energy-source-container.h: uint32_t ns3::EnergySourceContainer::GetN() const [member function]
+    cls.add_method('GetN', 
+                   'uint32_t', 
                    [], 
                    is_const=True)
-    ## radio-energy-model.h: double ns3::RadioEnergyModel::GetTxPowerW() const [member function]
-    cls.add_method('GetTxPowerW', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## radio-energy-model.h: static ns3::TypeId ns3::RadioEnergyModel::GetTypeId() [member function]
+    ## energy-source-container.h: static ns3::TypeId ns3::EnergySourceContainer::GetTypeId() [member function]
     cls.add_method('GetTypeId', 
                    'ns3::TypeId', 
                    [], 
                    is_static=True)
-    ## radio-energy-model.h: void ns3::RadioEnergyModel::SetIdlePowerW(double idlePowerW) [member function]
-    cls.add_method('SetIdlePowerW', 
-                   'void', 
-                   [param('double', 'idlePowerW')])
-    ## radio-energy-model.h: void ns3::RadioEnergyModel::SetRxPowerW(double rxPowerW) [member function]
-    cls.add_method('SetRxPowerW', 
-                   'void', 
-                   [param('double', 'rxPowerW')])
-    ## radio-energy-model.h: void ns3::RadioEnergyModel::SetSleepPowerW(double sleepPowerW) [member function]
-    cls.add_method('SetSleepPowerW', 
-                   'void', 
-                   [param('double', 'sleepPowerW')])
-    ## radio-energy-model.h: void ns3::RadioEnergyModel::SetTxPowerW(double txPowerW) [member function]
-    cls.add_method('SetTxPowerW', 
-                   'void', 
-                   [param('double', 'txPowerW')])
-    ## radio-energy-model.h: void ns3::RadioEnergyModel::UpdateRemainingEnergy(ns3::RadioEnergyModel::RadioState const destState) [member function]
-    cls.add_method('UpdateRemainingEnergy', 
-                   'void', 
-                   [param('ns3::RadioEnergyModel::RadioState const', 'destState')])
-    ## radio-energy-model.h: double ns3::RadioEnergyModel::DoGetIdlePowerW() const [member function]
-    cls.add_method('DoGetIdlePowerW', 
-                   'double', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
-    ## radio-energy-model.h: double ns3::RadioEnergyModel::DoGetRxPowerW() const [member function]
-    cls.add_method('DoGetRxPowerW', 
-                   'double', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
-    ## radio-energy-model.h: double ns3::RadioEnergyModel::DoGetSleepPowerW() const [member function]
-    cls.add_method('DoGetSleepPowerW', 
-                   'double', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
-    ## radio-energy-model.h: double ns3::RadioEnergyModel::DoGetTxPowerW() const [member function]
-    cls.add_method('DoGetTxPowerW', 
-                   'double', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
-    ## radio-energy-model.h: void ns3::RadioEnergyModel::DoSetIdlePowerW(double idlePowerW) [member function]
-    cls.add_method('DoSetIdlePowerW', 
-                   'void', 
-                   [param('double', 'idlePowerW')], 
-                   is_pure_virtual=True, visibility='private', is_virtual=True)
-    ## radio-energy-model.h: void ns3::RadioEnergyModel::DoSetRxPowerW(double rxPowerW) [member function]
-    cls.add_method('DoSetRxPowerW', 
-                   'void', 
-                   [param('double', 'rxPowerW')], 
-                   is_pure_virtual=True, visibility='private', is_virtual=True)
-    ## radio-energy-model.h: void ns3::RadioEnergyModel::DoSetSleepPowerW(double sleepPowerW) [member function]
-    cls.add_method('DoSetSleepPowerW', 
-                   'void', 
-                   [param('double', 'sleepPowerW')], 
-                   is_pure_virtual=True, visibility='private', is_virtual=True)
-    ## radio-energy-model.h: void ns3::RadioEnergyModel::DoSetTxPowerW(double txPowerW) [member function]
-    cls.add_method('DoSetTxPowerW', 
-                   'void', 
-                   [param('double', 'txPowerW')], 
-                   is_pure_virtual=True, visibility='private', is_virtual=True)
-    ## radio-energy-model.h: void ns3::RadioEnergyModel::DoUpdateRemainingEnergy(ns3::RadioEnergyModel::RadioState const destState) [member function]
-    cls.add_method('DoUpdateRemainingEnergy', 
-                   'void', 
-                   [param('ns3::RadioEnergyModel::RadioState const', 'destState')], 
-                   is_pure_virtual=True, visibility='private', is_virtual=True)
+    ## energy-source-container.h: void ns3::EnergySourceContainer::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
+    ## energy-source-container.h: void ns3::EnergySourceContainer::DoStart() [member function]
+    cls.add_method('DoStart', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
     return
 
 def register_Ns3UanChannel_methods(root_module, cls):
@@ -4031,138 +4020,174 @@
                    visibility='private', is_virtual=True)
     return
 
+def register_Ns3WifiRadioEnergyModel_methods(root_module, cls):
+    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModel::WifiRadioEnergyModel(ns3::WifiRadioEnergyModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::WifiRadioEnergyModel const &', 'arg0')])
+    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModel::WifiRadioEnergyModel() [constructor]
+    cls.add_constructor([])
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::ChangeState(int newState) [member function]
+    cls.add_method('ChangeState', 
+                   'void', 
+                   [param('int', 'newState')], 
+                   is_virtual=True)
+    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModel::WifiRadioState ns3::WifiRadioEnergyModel::GetCurrentState() const [member function]
+    cls.add_method('GetCurrentState', 
+                   'ns3::WifiRadioEnergyModel::WifiRadioState', 
+                   [], 
+                   is_const=True)
+    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::GetIdleCurrentA() const [member function]
+    cls.add_method('GetIdleCurrentA', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## wifi-radio-energy-model.h: ns3::Ptr<ns3::Node> ns3::WifiRadioEnergyModel::GetNode() const [member function]
+    cls.add_method('GetNode', 
+                   'ns3::Ptr< ns3::Node >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::GetRxCurrentA() const [member function]
+    cls.add_method('GetRxCurrentA', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::GetSleepCurrentA() const [member function]
+    cls.add_method('GetSleepCurrentA', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::GetTotalEnergyConsumption() const [member function]
+    cls.add_method('GetTotalEnergyConsumption', 
+                   'double', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::GetTxCurrentA() const [member function]
+    cls.add_method('GetTxCurrentA', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## wifi-radio-energy-model.h: static ns3::TypeId ns3::WifiRadioEnergyModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::HandleEnergyDepletion() [member function]
+    cls.add_method('HandleEnergyDepletion', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetEnergyDepletionCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
+    cls.add_method('SetEnergyDepletionCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')])
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetEnergySource(ns3::Ptr<ns3::EnergySource> source) [member function]
+    cls.add_method('SetEnergySource', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::EnergySource >', 'source')], 
+                   is_virtual=True)
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetIdleCurrentA(double idleCurrentA) [member function]
+    cls.add_method('SetIdleCurrentA', 
+                   'void', 
+                   [param('double', 'idleCurrentA')])
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetNode(ns3::Ptr<ns3::Node> node) [member function]
+    cls.add_method('SetNode', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_virtual=True)
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetRxCurrentA(double rxCurrentA) [member function]
+    cls.add_method('SetRxCurrentA', 
+                   'void', 
+                   [param('double', 'rxCurrentA')])
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetSleepCurrentA(double sleepCurrentA) [member function]
+    cls.add_method('SetSleepCurrentA', 
+                   'void', 
+                   [param('double', 'sleepCurrentA')])
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetTxCurrentA(double txCurrentA) [member function]
+    cls.add_method('SetTxCurrentA', 
+                   'void', 
+                   [param('double', 'txCurrentA')])
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
+    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::DoGetCurrentA() const [member function]
+    cls.add_method('DoGetCurrentA', 
+                   'double', 
+                   [], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
 def register_Ns3BasicEnergySource_methods(root_module, cls):
     ## basic-energy-source.h: ns3::BasicEnergySource::BasicEnergySource(ns3::BasicEnergySource const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::BasicEnergySource const &', 'arg0')])
     ## basic-energy-source.h: ns3::BasicEnergySource::BasicEnergySource() [constructor]
     cls.add_constructor([])
+    ## basic-energy-source.h: void ns3::BasicEnergySource::DecreaseRemainingEnergy(double energyJ) [member function]
+    cls.add_method('DecreaseRemainingEnergy', 
+                   'void', 
+                   [param('double', 'energyJ')], 
+                   is_virtual=True)
+    ## basic-energy-source.h: double ns3::BasicEnergySource::GetEnergyFraction() [member function]
+    cls.add_method('GetEnergyFraction', 
+                   'double', 
+                   [], 
+                   is_virtual=True)
+    ## basic-energy-source.h: ns3::Time ns3::BasicEnergySource::GetEnergyUpdateInterval() const [member function]
+    cls.add_method('GetEnergyUpdateInterval', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## basic-energy-source.h: double ns3::BasicEnergySource::GetInitialEnergy() const [member function]
+    cls.add_method('GetInitialEnergy', 
+                   'double', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## basic-energy-source.h: double ns3::BasicEnergySource::GetRemainingEnergy() [member function]
+    cls.add_method('GetRemainingEnergy', 
+                   'double', 
+                   [], 
+                   is_virtual=True)
+    ## basic-energy-source.h: double ns3::BasicEnergySource::GetSupplyVoltage() const [member function]
+    cls.add_method('GetSupplyVoltage', 
+                   'double', 
+                   [], 
+                   is_const=True, is_virtual=True)
     ## basic-energy-source.h: static ns3::TypeId ns3::BasicEnergySource::GetTypeId() [member function]
     cls.add_method('GetTypeId', 
                    'ns3::TypeId', 
                    [], 
                    is_static=True)
+    ## basic-energy-source.h: void ns3::BasicEnergySource::IncreaseRemainingEnergy(double energyJ) [member function]
+    cls.add_method('IncreaseRemainingEnergy', 
+                   'void', 
+                   [param('double', 'energyJ')], 
+                   is_virtual=True)
+    ## basic-energy-source.h: void ns3::BasicEnergySource::SetEnergyUpdateInterval(ns3::Time interval) [member function]
+    cls.add_method('SetEnergyUpdateInterval', 
+                   'void', 
+                   [param('ns3::Time', 'interval')])
     ## basic-energy-source.h: void ns3::BasicEnergySource::SetInitialEnergy(double initialEnergyJ) [member function]
     cls.add_method('SetInitialEnergy', 
                    'void', 
                    [param('double', 'initialEnergyJ')])
-    ## basic-energy-source.h: void ns3::BasicEnergySource::DoDecreaseRemainingEnergy(double energyJ) [member function]
-    cls.add_method('DoDecreaseRemainingEnergy', 
-                   'void', 
-                   [param('double', 'energyJ')], 
-                   visibility='private', is_virtual=True)
+    ## basic-energy-source.h: void ns3::BasicEnergySource::SetSupplyVoltage(double supplyVoltageV) [member function]
+    cls.add_method('SetSupplyVoltage', 
+                   'void', 
+                   [param('double', 'supplyVoltageV')])
+    ## basic-energy-source.h: void ns3::BasicEnergySource::UpdateEnergySource() [member function]
+    cls.add_method('UpdateEnergySource', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
     ## basic-energy-source.h: void ns3::BasicEnergySource::DoDispose() [member function]
     cls.add_method('DoDispose', 
                    'void', 
                    [], 
                    visibility='private', is_virtual=True)
-    ## basic-energy-source.h: double ns3::BasicEnergySource::DoGetEnergyFraction() const [member function]
-    cls.add_method('DoGetEnergyFraction', 
-                   'double', 
-                   [], 
-                   is_const=True, visibility='private', is_virtual=True)
-    ## basic-energy-source.h: double ns3::BasicEnergySource::DoGetInitialEnergy() const [member function]
-    cls.add_method('DoGetInitialEnergy', 
-                   'double', 
-                   [], 
-                   is_const=True, visibility='private', is_virtual=True)
-    ## basic-energy-source.h: double ns3::BasicEnergySource::DoGetRemainingEnergy() const [member function]
-    cls.add_method('DoGetRemainingEnergy', 
-                   'double', 
-                   [], 
-                   is_const=True, visibility='private', is_virtual=True)
-    ## basic-energy-source.h: void ns3::BasicEnergySource::DoIncreaseRemainingEnergy(double energyJ) [member function]
-    cls.add_method('DoIncreaseRemainingEnergy', 
-                   'void', 
-                   [param('double', 'energyJ')], 
-                   visibility='private', is_virtual=True)
-    return
-
-def register_Ns3BasicRadioEnergyModel_methods(root_module, cls):
-    ## basic-radio-energy-model.h: ns3::BasicRadioEnergyModel::BasicRadioEnergyModel(ns3::BasicRadioEnergyModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::BasicRadioEnergyModel const &', 'arg0')])
-    ## basic-radio-energy-model.h: ns3::BasicRadioEnergyModel::BasicRadioEnergyModel() [constructor]
-    cls.add_constructor([])
-    ## basic-radio-energy-model.h: ns3::RadioEnergyModel::RadioState ns3::BasicRadioEnergyModel::GetCurrentState() const [member function]
-    cls.add_method('GetCurrentState', 
-                   'ns3::RadioEnergyModel::RadioState', 
-                   [], 
-                   is_const=True)
-    ## basic-radio-energy-model.h: ns3::Time ns3::BasicRadioEnergyModel::GetEnergyUpdateInterval() const [member function]
-    cls.add_method('GetEnergyUpdateInterval', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## basic-radio-energy-model.h: static ns3::TypeId ns3::BasicRadioEnergyModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## basic-radio-energy-model.h: bool ns3::BasicRadioEnergyModel::IsStateTransitionValid(ns3::RadioEnergyModel::RadioState const destState) [member function]
-    cls.add_method('IsStateTransitionValid', 
-                   'bool', 
-                   [param('ns3::RadioEnergyModel::RadioState const', 'destState')])
-    ## basic-radio-energy-model.h: void ns3::BasicRadioEnergyModel::SetEnergyDepletionCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
-    cls.add_method('SetEnergyDepletionCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')])
-    ## basic-radio-energy-model.h: void ns3::BasicRadioEnergyModel::SetEnergyUpdateInterval(ns3::Time const interval) [member function]
-    cls.add_method('SetEnergyUpdateInterval', 
-                   'void', 
-                   [param('ns3::Time const', 'interval')])
-    ## basic-radio-energy-model.h: void ns3::BasicRadioEnergyModel::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    ## basic-radio-energy-model.h: double ns3::BasicRadioEnergyModel::DoGetIdlePowerW() const [member function]
-    cls.add_method('DoGetIdlePowerW', 
-                   'double', 
-                   [], 
-                   is_const=True, visibility='private', is_virtual=True)
-    ## basic-radio-energy-model.h: double ns3::BasicRadioEnergyModel::DoGetRxPowerW() const [member function]
-    cls.add_method('DoGetRxPowerW', 
-                   'double', 
-                   [], 
-                   is_const=True, visibility='private', is_virtual=True)
-    ## basic-radio-energy-model.h: double ns3::BasicRadioEnergyModel::DoGetSleepPowerW() const [member function]
-    cls.add_method('DoGetSleepPowerW', 
-                   'double', 
-                   [], 
-                   is_const=True, visibility='private', is_virtual=True)
-    ## basic-radio-energy-model.h: double ns3::BasicRadioEnergyModel::DoGetTxPowerW() const [member function]
-    cls.add_method('DoGetTxPowerW', 
-                   'double', 
-                   [], 
-                   is_const=True, visibility='private', is_virtual=True)
-    ## basic-radio-energy-model.h: void ns3::BasicRadioEnergyModel::DoHandleEnergyDepletion() [member function]
-    cls.add_method('DoHandleEnergyDepletion', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    ## basic-radio-energy-model.h: void ns3::BasicRadioEnergyModel::DoSetIdlePowerW(double idlePowerW) [member function]
-    cls.add_method('DoSetIdlePowerW', 
-                   'void', 
-                   [param('double', 'idlePowerW')], 
-                   visibility='private', is_virtual=True)
-    ## basic-radio-energy-model.h: void ns3::BasicRadioEnergyModel::DoSetRxPowerW(double rxPowerW) [member function]
-    cls.add_method('DoSetRxPowerW', 
-                   'void', 
-                   [param('double', 'rxPowerW')], 
-                   visibility='private', is_virtual=True)
-    ## basic-radio-energy-model.h: void ns3::BasicRadioEnergyModel::DoSetSleepPowerW(double sleepPowerW) [member function]
-    cls.add_method('DoSetSleepPowerW', 
-                   'void', 
-                   [param('double', 'sleepPowerW')], 
-                   visibility='private', is_virtual=True)
-    ## basic-radio-energy-model.h: void ns3::BasicRadioEnergyModel::DoSetTxPowerW(double txPowerW) [member function]
-    cls.add_method('DoSetTxPowerW', 
-                   'void', 
-                   [param('double', 'txPowerW')], 
-                   visibility='private', is_virtual=True)
-    ## basic-radio-energy-model.h: void ns3::BasicRadioEnergyModel::DoUpdateRemainingEnergy(ns3::RadioEnergyModel::RadioState const destState) [member function]
-    cls.add_method('DoUpdateRemainingEnergy', 
-                   'void', 
-                   [param('ns3::RadioEnergyModel::RadioState const', 'destState')], 
+    ## basic-energy-source.h: void ns3::BasicEnergySource::DoStart() [member function]
+    cls.add_method('DoStart', 
+                   'void', 
+                   [], 
                    visibility='private', is_virtual=True)
     return
 
--- a/bindings/python/apidefs/gcc-LP64/callbacks_list.py	Mon Aug 09 23:40:31 2010 -0700
+++ b/bindings/python/apidefs/gcc-LP64/callbacks_list.py	Tue Aug 10 00:13:34 2010 -0700
@@ -1,5 +1,4 @@
 callback_classes = [
-    ['bool', 'ns3::Ptr<ns3::Packet>', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['void', 'ns3::Ptr<ns3::Packet const>', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['void', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['void', 'ns3::Ptr<ns3::Packet>', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
@@ -28,6 +27,7 @@
     ['bool', 'ns3::Ptr<ns3::Socket>', 'ns3::Address const&', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['void', 'ns3::Ipv4Address', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['void', 'ns3::Ptr<ns3::ArpCache const>', 'ns3::Ipv4Address', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
+    ['bool', 'ns3::Ptr<ns3::Packet>', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['bool', 'ns3::Ptr<ns3::NetDevice>', 'ns3::Ptr<ns3::Packet const>', 'unsigned short', 'ns3::Address const&', 'ns3::Address const&', 'ns3::NetDevice::PacketType', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['bool', 'ns3::Ptr<ns3::NetDevice>', 'ns3::Ptr<ns3::Packet const>', 'unsigned short', 'ns3::Address const&', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['void', 'ns3::Ptr<ns3::NetDevice>', 'ns3::Ptr<ns3::Packet const>', 'unsigned short', 'ns3::Address const&', 'ns3::Address const&', 'ns3::NetDevice::PacketType', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
--- a/bindings/python/apidefs/gcc-LP64/ns3_module_common.py	Mon Aug 09 23:40:31 2010 -0700
+++ b/bindings/python/apidefs/gcc-LP64/ns3_module_common.py	Tue Aug 10 00:13:34 2010 -0700
@@ -1456,6 +1456,7 @@
     return
 
 def register_Ns3SpectrumValue_methods(root_module, cls):
+    cls.add_output_stream_operator()
     cls.add_binary_numeric_operator('*', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('double', 'right'))
     cls.add_binary_numeric_operator('*', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('ns3::SpectrumValue const &', 'right'))
     cls.add_binary_numeric_operator('+', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('double', 'right'))
@@ -1465,7 +1466,6 @@
     cls.add_binary_numeric_operator('-', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('ns3::SpectrumValue const &', 'right'))
     cls.add_binary_numeric_operator('/', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('double', 'right'))
     cls.add_binary_numeric_operator('/', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('ns3::SpectrumValue const &', 'right'))
-    cls.add_output_stream_operator()
     cls.add_inplace_numeric_operator('*=', param('ns3::SpectrumValue const &', 'right'))
     cls.add_inplace_numeric_operator('*=', param('double', 'right'))
     cls.add_inplace_numeric_operator('+=', param('ns3::SpectrumValue const &', 'right'))
--- a/bindings/python/apidefs/gcc-LP64/ns3_module_core.py	Mon Aug 09 23:40:31 2010 -0700
+++ b/bindings/python/apidefs/gcc-LP64/ns3_module_core.py	Tue Aug 10 00:13:34 2010 -0700
@@ -213,12 +213,15 @@
     module.add_container('std::list< ns3::Ptr< ns3::UlJob > >', 'ns3::Ptr< ns3::UlJob >', container_type='list')
     module.add_container('std::list< ns3::Ptr< ns3::Packet const > >', 'ns3::Ptr< ns3::Packet const >', container_type='list')
     module.add_container('std::vector< ns3::Ptr< ns3::WimaxConnection > >', 'ns3::Ptr< ns3::WimaxConnection >', container_type='vector')
-    module.add_container('std::vector< ns3::Ptr< ns3::DeviceEnergyModel > >', 'ns3::Ptr< ns3::DeviceEnergyModel >', container_type='vector')
     module.add_container('std::vector< ns3::Ptr< ns3::FlowProbe > >', 'ns3::Ptr< ns3::FlowProbe >', container_type='vector')
     module.add_container('std::list< ns3::Ptr< ns3::RadvdPrefix > >', 'ns3::Ptr< ns3::RadvdPrefix >', container_type='list')
     module.add_container('std::list< ns3::Ptr< ns3::UanTransducer > >', 'ns3::Ptr< ns3::UanTransducer >', container_type='list')
     module.add_container('std::vector< ns3::Ptr< ns3::NetDevice > >', 'ns3::Ptr< ns3::NetDevice >', container_type='vector')
     module.add_container('std::vector< ns3::Ptr< ns3::SpectrumPhy > >', 'ns3::Ptr< ns3::SpectrumPhy >', container_type='vector')
+    typehandlers.add_type_alias('ns3::Vector3DChecker', 'ns3::VectorChecker')
+    typehandlers.add_type_alias('ns3::Vector3DChecker*', 'ns3::VectorChecker*')
+    typehandlers.add_type_alias('ns3::Vector3DChecker&', 'ns3::VectorChecker&')
+    module.add_typedef(root_module['ns3::Vector3DChecker'], 'VectorChecker')
     typehandlers.add_type_alias('ns3::Vector3D', 'ns3::Vector')
     typehandlers.add_type_alias('ns3::Vector3D*', 'ns3::Vector*')
     typehandlers.add_type_alias('ns3::Vector3D&', 'ns3::Vector&')
@@ -227,10 +230,6 @@
     typehandlers.add_type_alias('ns3::Vector3DValue*', 'ns3::VectorValue*')
     typehandlers.add_type_alias('ns3::Vector3DValue&', 'ns3::VectorValue&')
     module.add_typedef(root_module['ns3::Vector3DValue'], 'VectorValue')
-    typehandlers.add_type_alias('ns3::Vector3DChecker', 'ns3::VectorChecker')
-    typehandlers.add_type_alias('ns3::Vector3DChecker*', 'ns3::VectorChecker*')
-    typehandlers.add_type_alias('ns3::Vector3DChecker&', 'ns3::VectorChecker&')
-    module.add_typedef(root_module['ns3::Vector3DChecker'], 'VectorChecker')
     
     ## Register a nested module for the namespace Config
     
@@ -1346,9 +1345,9 @@
 
 def register_Ns3TypeId_methods(root_module, cls):
     cls.add_binary_comparison_operator('!=')
-    cls.add_binary_comparison_operator('<')
     cls.add_output_stream_operator()
     cls.add_binary_comparison_operator('==')
+    cls.add_binary_comparison_operator('<')
     ## type-id.h: ns3::TypeId::TypeId(char const * name) [constructor]
     cls.add_constructor([param('char const *', 'name')])
     ## type-id.h: ns3::TypeId::TypeId() [constructor]
--- a/bindings/python/apidefs/gcc-LP64/ns3_module_dot11s.py	Mon Aug 09 23:40:31 2010 -0700
+++ b/bindings/python/apidefs/gcc-LP64/ns3_module_dot11s.py	Tue Aug 10 00:13:34 2010 -0700
@@ -73,18 +73,18 @@
 def register_types_ns3_dot11s(module):
     root_module = module.get_root()
     
-    ## ie-dot11s-configuration.h: ns3::dot11s::dot11sSynchronizationProtocolIdentifier [enumeration]
-    module.add_enum('dot11sSynchronizationProtocolIdentifier', ['SYNC_NEIGHBOUR_OFFSET', 'SYNC_NULL'])
     ## ie-dot11s-configuration.h: ns3::dot11s::dot11sCongestionControlMode [enumeration]
     module.add_enum('dot11sCongestionControlMode', ['CONGESTION_SIGNALING', 'CONGESTION_NULL'])
-    ## ie-dot11s-configuration.h: ns3::dot11s::dot11sPathSelectionMetric [enumeration]
-    module.add_enum('dot11sPathSelectionMetric', ['METRIC_AIRTIME'])
-    ## ie-dot11s-peer-management.h: ns3::dot11s::PmpReasonCode [enumeration]
-    module.add_enum('PmpReasonCode', ['REASON11S_PEERING_CANCELLED', 'REASON11S_MESH_MAX_PEERS', 'REASON11S_MESH_CAPABILITY_POLICY_VIOLATION', 'REASON11S_MESH_CLOSE_RCVD', 'REASON11S_MESH_MAX_RETRIES', 'REASON11S_MESH_CONFIRM_TIMEOUT', 'REASON11S_MESH_INVALID_GTK', 'REASON11S_MESH_INCONSISTENT_PARAMETERS', 'REASON11S_MESH_INVALID_SECURITY_CAPABILITY', 'REASON11S_RESERVED'])
     ## ie-dot11s-configuration.h: ns3::dot11s::dot11sPathSelectionProtocol [enumeration]
     module.add_enum('dot11sPathSelectionProtocol', ['PROTOCOL_HWMP'])
     ## ie-dot11s-configuration.h: ns3::dot11s::dot11sAuthenticationProtocol [enumeration]
     module.add_enum('dot11sAuthenticationProtocol', ['AUTH_NULL', 'AUTH_SAE'])
+    ## ie-dot11s-configuration.h: ns3::dot11s::dot11sSynchronizationProtocolIdentifier [enumeration]
+    module.add_enum('dot11sSynchronizationProtocolIdentifier', ['SYNC_NEIGHBOUR_OFFSET', 'SYNC_NULL'])
+    ## ie-dot11s-peer-management.h: ns3::dot11s::PmpReasonCode [enumeration]
+    module.add_enum('PmpReasonCode', ['REASON11S_PEERING_CANCELLED', 'REASON11S_MESH_MAX_PEERS', 'REASON11S_MESH_CAPABILITY_POLICY_VIOLATION', 'REASON11S_MESH_CLOSE_RCVD', 'REASON11S_MESH_MAX_RETRIES', 'REASON11S_MESH_CONFIRM_TIMEOUT', 'REASON11S_MESH_INVALID_GTK', 'REASON11S_MESH_INCONSISTENT_PARAMETERS', 'REASON11S_MESH_INVALID_SECURITY_CAPABILITY', 'REASON11S_RESERVED'])
+    ## ie-dot11s-configuration.h: ns3::dot11s::dot11sPathSelectionMetric [enumeration]
+    module.add_enum('dot11sPathSelectionMetric', ['METRIC_AIRTIME'])
     ## ie-dot11s-configuration.h: ns3::dot11s::Dot11sMeshCapability [class]
     module.add_class('Dot11sMeshCapability')
     ## hwmp-protocol.h: ns3::dot11s::HwmpProtocol [class]
--- a/bindings/python/apidefs/gcc-LP64/ns3_module_flow_monitor.py	Mon Aug 09 23:40:31 2010 -0700
+++ b/bindings/python/apidefs/gcc-LP64/ns3_module_flow_monitor.py	Tue Aug 10 00:13:34 2010 -0700
@@ -385,8 +385,8 @@
     return
 
 def register_Ns3Ipv4FlowClassifierFiveTuple_methods(root_module, cls):
+    cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('<')
-    cls.add_binary_comparison_operator('==')
     ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple::FiveTuple() [constructor]
     cls.add_constructor([])
     ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple::FiveTuple(ns3::Ipv4FlowClassifier::FiveTuple const & arg0) [copy constructor]
--- a/bindings/python/apidefs/gcc-LP64/ns3_module_node.py	Mon Aug 09 23:40:31 2010 -0700
+++ b/bindings/python/apidefs/gcc-LP64/ns3_module_node.py	Tue Aug 10 00:13:34 2010 -0700
@@ -212,9 +212,6 @@
     module.add_container('ns3::olsr::MprSet', 'ns3::Ipv4Address', container_type='set')
     module.add_container('std::vector< ns3::Ipv4Address >', 'ns3::Ipv4Address', container_type='vector')
     module.add_container('std::vector< ns3::Ipv6Address >', 'ns3::Ipv6Address', container_type='vector')
-    typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::PhyMacTxStartCallback')
-    typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::PhyMacTxStartCallback*')
-    typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::PhyMacTxStartCallback&')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::PhyMacTxEndCallback')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::PhyMacTxEndCallback*')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::PhyMacTxEndCallback&')
@@ -227,6 +224,9 @@
     typehandlers.add_type_alias('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::PhyMacRxStartCallback')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::PhyMacRxStartCallback*')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::PhyMacRxStartCallback&')
+    typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::PhyMacTxStartCallback')
+    typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::PhyMacTxStartCallback*')
+    typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::PhyMacTxStartCallback&')
     
     ## Register a nested module for the namespace Config
     
@@ -390,9 +390,9 @@
 
 def register_Ns3Address_methods(root_module, cls):
     cls.add_binary_comparison_operator('!=')
-    cls.add_binary_comparison_operator('<')
     cls.add_output_stream_operator()
     cls.add_binary_comparison_operator('==')
+    cls.add_binary_comparison_operator('<')
     ## address.h: ns3::Address::Address() [constructor]
     cls.add_constructor([])
     ## address.h: ns3::Address::Address(uint8_t type, uint8_t const * buffer, uint8_t len) [constructor]
@@ -578,9 +578,9 @@
 
 def register_Ns3Ipv4Address_methods(root_module, cls):
     cls.add_binary_comparison_operator('!=')
-    cls.add_binary_comparison_operator('<')
     cls.add_output_stream_operator()
     cls.add_binary_comparison_operator('==')
+    cls.add_binary_comparison_operator('<')
     ## ipv4-address.h: ns3::Ipv4Address::Ipv4Address(ns3::Ipv4Address const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::Ipv4Address const &', 'arg0')])
     ## ipv4-address.h: ns3::Ipv4Address::Ipv4Address() [constructor]
@@ -862,9 +862,9 @@
 
 def register_Ns3Ipv6Address_methods(root_module, cls):
     cls.add_binary_comparison_operator('!=')
-    cls.add_binary_comparison_operator('<')
     cls.add_output_stream_operator()
     cls.add_binary_comparison_operator('==')
+    cls.add_binary_comparison_operator('<')
     ## ipv6-address.h: ns3::Ipv6Address::Ipv6Address() [constructor]
     cls.add_constructor([])
     ## ipv6-address.h: ns3::Ipv6Address::Ipv6Address(char const * address) [constructor]
@@ -1129,9 +1129,9 @@
 
 def register_Ns3Mac48Address_methods(root_module, cls):
     cls.add_binary_comparison_operator('!=')
-    cls.add_binary_comparison_operator('<')
     cls.add_output_stream_operator()
     cls.add_binary_comparison_operator('==')
+    cls.add_binary_comparison_operator('<')
     ## mac48-address.h: ns3::Mac48Address::Mac48Address(ns3::Mac48Address const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::Mac48Address const &', 'arg0')])
     ## mac48-address.h: ns3::Mac48Address::Mac48Address() [constructor]
--- a/bindings/python/apidefs/gcc-LP64/ns3_module_olsr.py	Mon Aug 09 23:40:31 2010 -0700
+++ b/bindings/python/apidefs/gcc-LP64/ns3_module_olsr.py	Tue Aug 10 00:13:34 2010 -0700
@@ -140,39 +140,39 @@
     module.add_container('std::vector< ns3::olsr::MessageHeader::Hello::LinkMessage >', 'ns3::olsr::MessageHeader::Hello::LinkMessage', container_type='vector')
     module.add_container('std::vector< ns3::olsr::MessageHeader::Hna::Association >', 'ns3::olsr::MessageHeader::Hna::Association', container_type='vector')
     module.add_container('std::vector< ns3::olsr::RoutingTableEntry >', 'ns3::olsr::RoutingTableEntry', container_type='vector')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::TopologyTuple, std::allocator< ns3::olsr::TopologyTuple > >', 'ns3::olsr::TopologySet')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::TopologyTuple, std::allocator< ns3::olsr::TopologyTuple > >*', 'ns3::olsr::TopologySet*')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::TopologyTuple, std::allocator< ns3::olsr::TopologyTuple > >&', 'ns3::olsr::TopologySet&')
+    typehandlers.add_type_alias('std::set< ns3::Ipv4Address, std::less< ns3::Ipv4Address >, std::allocator< ns3::Ipv4Address > >', 'ns3::olsr::MprSet')
+    typehandlers.add_type_alias('std::set< ns3::Ipv4Address, std::less< ns3::Ipv4Address >, std::allocator< ns3::Ipv4Address > >*', 'ns3::olsr::MprSet*')
+    typehandlers.add_type_alias('std::set< ns3::Ipv4Address, std::less< ns3::Ipv4Address >, std::allocator< ns3::Ipv4Address > >&', 'ns3::olsr::MprSet&')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::MprSelectorTuple, std::allocator< ns3::olsr::MprSelectorTuple > >', 'ns3::olsr::MprSelectorSet')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::MprSelectorTuple, std::allocator< ns3::olsr::MprSelectorTuple > >*', 'ns3::olsr::MprSelectorSet*')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::MprSelectorTuple, std::allocator< ns3::olsr::MprSelectorTuple > >&', 'ns3::olsr::MprSelectorSet&')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::Association, std::allocator< ns3::olsr::Association > >', 'ns3::olsr::Associations')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::Association, std::allocator< ns3::olsr::Association > >*', 'ns3::olsr::Associations*')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::Association, std::allocator< ns3::olsr::Association > >&', 'ns3::olsr::Associations&')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::IfaceAssocTuple, std::allocator< ns3::olsr::IfaceAssocTuple > >', 'ns3::olsr::IfaceAssocSet')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::IfaceAssocTuple, std::allocator< ns3::olsr::IfaceAssocTuple > >*', 'ns3::olsr::IfaceAssocSet*')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::IfaceAssocTuple, std::allocator< ns3::olsr::IfaceAssocTuple > >&', 'ns3::olsr::IfaceAssocSet&')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::TwoHopNeighborTuple, std::allocator< ns3::olsr::TwoHopNeighborTuple > >', 'ns3::olsr::TwoHopNeighborSet')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::TwoHopNeighborTuple, std::allocator< ns3::olsr::TwoHopNeighborTuple > >*', 'ns3::olsr::TwoHopNeighborSet*')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::TwoHopNeighborTuple, std::allocator< ns3::olsr::TwoHopNeighborTuple > >&', 'ns3::olsr::TwoHopNeighborSet&')
     typehandlers.add_type_alias('std::vector< ns3::olsr::DuplicateTuple, std::allocator< ns3::olsr::DuplicateTuple > >', 'ns3::olsr::DuplicateSet')
     typehandlers.add_type_alias('std::vector< ns3::olsr::DuplicateTuple, std::allocator< ns3::olsr::DuplicateTuple > >*', 'ns3::olsr::DuplicateSet*')
     typehandlers.add_type_alias('std::vector< ns3::olsr::DuplicateTuple, std::allocator< ns3::olsr::DuplicateTuple > >&', 'ns3::olsr::DuplicateSet&')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::MessageHeader, std::allocator< ns3::olsr::MessageHeader > >', 'ns3::olsr::MessageList')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::MessageHeader, std::allocator< ns3::olsr::MessageHeader > >*', 'ns3::olsr::MessageList*')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::MessageHeader, std::allocator< ns3::olsr::MessageHeader > >&', 'ns3::olsr::MessageList&')
     typehandlers.add_type_alias('std::vector< ns3::olsr::NeighborTuple, std::allocator< ns3::olsr::NeighborTuple > >', 'ns3::olsr::NeighborSet')
     typehandlers.add_type_alias('std::vector< ns3::olsr::NeighborTuple, std::allocator< ns3::olsr::NeighborTuple > >*', 'ns3::olsr::NeighborSet*')
     typehandlers.add_type_alias('std::vector< ns3::olsr::NeighborTuple, std::allocator< ns3::olsr::NeighborTuple > >&', 'ns3::olsr::NeighborSet&')
     typehandlers.add_type_alias('std::vector< ns3::olsr::AssociationTuple, std::allocator< ns3::olsr::AssociationTuple > >', 'ns3::olsr::AssociationSet')
     typehandlers.add_type_alias('std::vector< ns3::olsr::AssociationTuple, std::allocator< ns3::olsr::AssociationTuple > >*', 'ns3::olsr::AssociationSet*')
     typehandlers.add_type_alias('std::vector< ns3::olsr::AssociationTuple, std::allocator< ns3::olsr::AssociationTuple > >&', 'ns3::olsr::AssociationSet&')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::TopologyTuple, std::allocator< ns3::olsr::TopologyTuple > >', 'ns3::olsr::TopologySet')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::TopologyTuple, std::allocator< ns3::olsr::TopologyTuple > >*', 'ns3::olsr::TopologySet*')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::TopologyTuple, std::allocator< ns3::olsr::TopologyTuple > >&', 'ns3::olsr::TopologySet&')
     typehandlers.add_type_alias('std::vector< ns3::olsr::LinkTuple, std::allocator< ns3::olsr::LinkTuple > >', 'ns3::olsr::LinkSet')
     typehandlers.add_type_alias('std::vector< ns3::olsr::LinkTuple, std::allocator< ns3::olsr::LinkTuple > >*', 'ns3::olsr::LinkSet*')
     typehandlers.add_type_alias('std::vector< ns3::olsr::LinkTuple, std::allocator< ns3::olsr::LinkTuple > >&', 'ns3::olsr::LinkSet&')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::Association, std::allocator< ns3::olsr::Association > >', 'ns3::olsr::Associations')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::Association, std::allocator< ns3::olsr::Association > >*', 'ns3::olsr::Associations*')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::Association, std::allocator< ns3::olsr::Association > >&', 'ns3::olsr::Associations&')
-    typehandlers.add_type_alias('std::set< ns3::Ipv4Address, std::less< ns3::Ipv4Address >, std::allocator< ns3::Ipv4Address > >', 'ns3::olsr::MprSet')
-    typehandlers.add_type_alias('std::set< ns3::Ipv4Address, std::less< ns3::Ipv4Address >, std::allocator< ns3::Ipv4Address > >*', 'ns3::olsr::MprSet*')
-    typehandlers.add_type_alias('std::set< ns3::Ipv4Address, std::less< ns3::Ipv4Address >, std::allocator< ns3::Ipv4Address > >&', 'ns3::olsr::MprSet&')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::MprSelectorTuple, std::allocator< ns3::olsr::MprSelectorTuple > >', 'ns3::olsr::MprSelectorSet')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::MprSelectorTuple, std::allocator< ns3::olsr::MprSelectorTuple > >*', 'ns3::olsr::MprSelectorSet*')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::MprSelectorTuple, std::allocator< ns3::olsr::MprSelectorTuple > >&', 'ns3::olsr::MprSelectorSet&')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::MessageHeader, std::allocator< ns3::olsr::MessageHeader > >', 'ns3::olsr::MessageList')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::MessageHeader, std::allocator< ns3::olsr::MessageHeader > >*', 'ns3::olsr::MessageList*')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::MessageHeader, std::allocator< ns3::olsr::MessageHeader > >&', 'ns3::olsr::MessageList&')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::IfaceAssocTuple, std::allocator< ns3::olsr::IfaceAssocTuple > >', 'ns3::olsr::IfaceAssocSet')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::IfaceAssocTuple, std::allocator< ns3::olsr::IfaceAssocTuple > >*', 'ns3::olsr::IfaceAssocSet*')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::IfaceAssocTuple, std::allocator< ns3::olsr::IfaceAssocTuple > >&', 'ns3::olsr::IfaceAssocSet&')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::TwoHopNeighborTuple, std::allocator< ns3::olsr::TwoHopNeighborTuple > >', 'ns3::olsr::TwoHopNeighborSet')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::TwoHopNeighborTuple, std::allocator< ns3::olsr::TwoHopNeighborTuple > >*', 'ns3::olsr::TwoHopNeighborSet*')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::TwoHopNeighborTuple, std::allocator< ns3::olsr::TwoHopNeighborTuple > >&', 'ns3::olsr::TwoHopNeighborSet&')
 
 def register_methods(root_module):
     register_Ns3OlsrState_methods(root_module, root_module['ns3::OlsrState'])
--- a/bindings/python/apidefs/gcc-LP64/ns3_module_simulator.py	Mon Aug 09 23:40:31 2010 -0700
+++ b/bindings/python/apidefs/gcc-LP64/ns3_module_simulator.py	Tue Aug 10 00:13:34 2010 -0700
@@ -5,7 +5,7 @@
     
     ## event-id.h: ns3::EventId [class]
     module.add_class('EventId')
-    ## high-precision-128.h: ns3::HighPrecision [class]
+    ## high-precision-double.h: ns3::HighPrecision [class]
     module.add_class('HighPrecision')
     ## simulator.h: ns3::Simulator [class]
     module.add_class('Simulator', is_singleton=True)
@@ -67,14 +67,14 @@
     module.add_class('TimeChecker', parent=root_module['ns3::AttributeChecker'])
     ## nstime.h: ns3::TimeValue [class]
     module.add_class('TimeValue', parent=root_module['ns3::AttributeValue'])
+    typehandlers.add_type_alias('ns3::Time', 'ns3::TimeInvert')
+    typehandlers.add_type_alias('ns3::Time*', 'ns3::TimeInvert*')
+    typehandlers.add_type_alias('ns3::Time&', 'ns3::TimeInvert&')
+    module.add_typedef(root_module['ns3::Time'], 'TimeInvert')
     typehandlers.add_type_alias('ns3::Time', 'ns3::TimeSquare')
     typehandlers.add_type_alias('ns3::Time*', 'ns3::TimeSquare*')
     typehandlers.add_type_alias('ns3::Time&', 'ns3::TimeSquare&')
     module.add_typedef(root_module['ns3::Time'], 'TimeSquare')
-    typehandlers.add_type_alias('ns3::Time', 'ns3::TimeInvert')
-    typehandlers.add_type_alias('ns3::Time*', 'ns3::TimeInvert*')
-    typehandlers.add_type_alias('ns3::Time&', 'ns3::TimeInvert&')
-    module.add_typedef(root_module['ns3::Time'], 'TimeInvert')
     
     ## Register a nested module for the namespace Config
     
@@ -230,55 +230,55 @@
     return
 
 def register_Ns3HighPrecision_methods(root_module, cls):
-    ## high-precision-128.h: ns3::HighPrecision::HighPrecision(ns3::HighPrecision const & arg0) [copy constructor]
+    ## high-precision-double.h: ns3::HighPrecision::HighPrecision(ns3::HighPrecision const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::HighPrecision const &', 'arg0')])
-    ## high-precision-128.h: ns3::HighPrecision::HighPrecision() [constructor]
+    ## high-precision-double.h: ns3::HighPrecision::HighPrecision() [constructor]
     cls.add_constructor([])
-    ## high-precision-128.h: ns3::HighPrecision::HighPrecision(int64_t value, bool dummy) [constructor]
+    ## high-precision-double.h: ns3::HighPrecision::HighPrecision(int64_t value, bool dummy) [constructor]
     cls.add_constructor([param('int64_t', 'value'), param('bool', 'dummy')])
-    ## high-precision-128.h: ns3::HighPrecision::HighPrecision(double value) [constructor]
+    ## high-precision-double.h: ns3::HighPrecision::HighPrecision(double value) [constructor]
     cls.add_constructor([param('double', 'value')])
-    ## high-precision-128.h: void ns3::HighPrecision::Add(ns3::HighPrecision const & o) [member function]
+    ## high-precision-double.h: void ns3::HighPrecision::Add(ns3::HighPrecision const & o) [member function]
     cls.add_method('Add', 
                    'void', 
                    [param('ns3::HighPrecision const &', 'o')])
-    ## high-precision-128.h: int ns3::HighPrecision::Compare(ns3::HighPrecision const & o) const [member function]
+    ## high-precision-double.h: int ns3::HighPrecision::Compare(ns3::HighPrecision const & o) const [member function]
     cls.add_method('Compare', 
                    'int', 
                    [param('ns3::HighPrecision const &', 'o')], 
                    is_const=True)
-    ## high-precision-128.h: void ns3::HighPrecision::Div(ns3::HighPrecision const & o) [member function]
+    ## high-precision-double.h: void ns3::HighPrecision::Div(ns3::HighPrecision const & o) [member function]
     cls.add_method('Div', 
                    'void', 
                    [param('ns3::HighPrecision const &', 'o')])
-    ## high-precision-128.h: double ns3::HighPrecision::GetDouble() const [member function]
+    ## high-precision-double.h: double ns3::HighPrecision::GetDouble() const [member function]
     cls.add_method('GetDouble', 
                    'double', 
                    [], 
                    is_const=True)
-    ## high-precision-128.h: int64_t ns3::HighPrecision::GetInteger() const [member function]
+    ## high-precision-double.h: int64_t ns3::HighPrecision::GetInteger() const [member function]
     cls.add_method('GetInteger', 
                    'int64_t', 
                    [], 
                    is_const=True)
-    ## high-precision-128.h: static ns3::HighPrecision ns3::HighPrecision::Invert(uint64_t v) [member function]
+    ## high-precision-double.h: static ns3::HighPrecision ns3::HighPrecision::Invert(uint64_t v) [member function]
     cls.add_method('Invert', 
                    'ns3::HighPrecision', 
                    [param('uint64_t', 'v')], 
                    is_static=True)
-    ## high-precision-128.h: void ns3::HighPrecision::Mul(ns3::HighPrecision const & o) [member function]
+    ## high-precision-double.h: void ns3::HighPrecision::Mul(ns3::HighPrecision const & o) [member function]
     cls.add_method('Mul', 
                    'void', 
                    [param('ns3::HighPrecision const &', 'o')])
-    ## high-precision-128.h: void ns3::HighPrecision::MulByInvert(ns3::HighPrecision const & o) [member function]
+    ## high-precision-double.h: void ns3::HighPrecision::MulByInvert(ns3::HighPrecision const & o) [member function]
     cls.add_method('MulByInvert', 
                    'void', 
                    [param('ns3::HighPrecision const &', 'o')])
-    ## high-precision-128.h: void ns3::HighPrecision::Sub(ns3::HighPrecision const & o) [member function]
+    ## high-precision-double.h: void ns3::HighPrecision::Sub(ns3::HighPrecision const & o) [member function]
     cls.add_method('Sub', 
                    'void', 
                    [param('ns3::HighPrecision const &', 'o')])
-    ## high-precision-128.h: static ns3::HighPrecision ns3::HighPrecision::Zero() [member function]
+    ## high-precision-double.h: static ns3::HighPrecision ns3::HighPrecision::Zero() [member function]
     cls.add_method('Zero', 
                    'ns3::HighPrecision', 
                    [], 
@@ -377,6 +377,13 @@
 
 def register_Ns3Time_methods(root_module, cls):
     cls.add_binary_comparison_operator('!=')
+    cls.add_inplace_numeric_operator('*=', param('ns3::Time const &', 'right'))
+    cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', 'right'))
+    cls.add_inplace_numeric_operator('/=', param('ns3::Time const &', 'right'))
+    cls.add_output_stream_operator()
+    cls.add_binary_comparison_operator('<=')
+    cls.add_binary_comparison_operator('==')
+    cls.add_binary_comparison_operator('>=')
     cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', 'right'))
     cls.add_binary_numeric_operator('*', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right'))
     cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right'))
@@ -384,13 +391,6 @@
     cls.add_binary_numeric_operator('/', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right'))
     cls.add_binary_comparison_operator('<')
     cls.add_binary_comparison_operator('>')
-    cls.add_inplace_numeric_operator('*=', param('ns3::Time const &', 'right'))
-    cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', 'right'))
-    cls.add_inplace_numeric_operator('/=', param('ns3::Time const &', 'right'))
-    cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
-    cls.add_binary_comparison_operator('==')
-    cls.add_binary_comparison_operator('>=')
     ## nstime.h: ns3::Time::Time() [constructor]
     cls.add_constructor([])
     ## nstime.h: ns3::Time::Time(ns3::Time const & o) [copy constructor]
--- a/bindings/python/apidefs/gcc-LP64/ns3_module_spectrum.py	Mon Aug 09 23:40:31 2010 -0700
+++ b/bindings/python/apidefs/gcc-LP64/ns3_module_spectrum.py	Tue Aug 10 00:13:34 2010 -0700
@@ -39,15 +39,15 @@
     module.add_class('MultiModelSpectrumChannel', parent=root_module['ns3::SpectrumChannel'])
     ## single-model-spectrum-channel.h: ns3::SingleModelSpectrumChannel [class]
     module.add_class('SingleModelSpectrumChannel', parent=root_module['ns3::SpectrumChannel'])
+    typehandlers.add_type_alias('std::map< unsigned int, ns3::SpectrumConverter, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::SpectrumConverter > > >', 'ns3::SpectrumConverterMap_t')
+    typehandlers.add_type_alias('std::map< unsigned int, ns3::SpectrumConverter, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::SpectrumConverter > > >*', 'ns3::SpectrumConverterMap_t*')
+    typehandlers.add_type_alias('std::map< unsigned int, ns3::SpectrumConverter, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::SpectrumConverter > > >&', 'ns3::SpectrumConverterMap_t&')
     typehandlers.add_type_alias('std::map< unsigned int, ns3::TxSpectrumModelInfo, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::TxSpectrumModelInfo > > >', 'ns3::TxSpectrumModelInfoMap_t')
     typehandlers.add_type_alias('std::map< unsigned int, ns3::TxSpectrumModelInfo, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::TxSpectrumModelInfo > > >*', 'ns3::TxSpectrumModelInfoMap_t*')
     typehandlers.add_type_alias('std::map< unsigned int, ns3::TxSpectrumModelInfo, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::TxSpectrumModelInfo > > >&', 'ns3::TxSpectrumModelInfoMap_t&')
     typehandlers.add_type_alias('std::map< unsigned int, ns3::RxSpectrumModelInfo, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::RxSpectrumModelInfo > > >', 'ns3::RxSpectrumModelInfoMap_t')
     typehandlers.add_type_alias('std::map< unsigned int, ns3::RxSpectrumModelInfo, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::RxSpectrumModelInfo > > >*', 'ns3::RxSpectrumModelInfoMap_t*')
     typehandlers.add_type_alias('std::map< unsigned int, ns3::RxSpectrumModelInfo, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::RxSpectrumModelInfo > > >&', 'ns3::RxSpectrumModelInfoMap_t&')
-    typehandlers.add_type_alias('std::map< unsigned int, ns3::SpectrumConverter, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::SpectrumConverter > > >', 'ns3::SpectrumConverterMap_t')
-    typehandlers.add_type_alias('std::map< unsigned int, ns3::SpectrumConverter, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::SpectrumConverter > > >*', 'ns3::SpectrumConverterMap_t*')
-    typehandlers.add_type_alias('std::map< unsigned int, ns3::SpectrumConverter, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::SpectrumConverter > > >&', 'ns3::SpectrumConverterMap_t&')
     
     ## Register a nested module for the namespace Config
     
--- a/bindings/python/apidefs/gcc-LP64/ns3_module_stats.py	Mon Aug 09 23:40:31 2010 -0700
+++ b/bindings/python/apidefs/gcc-LP64/ns3_module_stats.py	Tue Aug 10 00:13:34 2010 -0700
@@ -27,12 +27,12 @@
     module.add_class('CounterCalculator', template_parameters=['unsigned int'], parent=root_module['ns3::DataCalculator'])
     ## packet-data-calculators.h: ns3::PacketCounterCalculator [class]
     module.add_class('PacketCounterCalculator', parent=root_module['ns3::CounterCalculator< unsigned int >'])
+    typehandlers.add_type_alias('std::list< std::pair< std::string, std::string >, std::allocator< std::pair< std::string, std::string > > >', 'ns3::MetadataList')
+    typehandlers.add_type_alias('std::list< std::pair< std::string, std::string >, std::allocator< std::pair< std::string, std::string > > >*', 'ns3::MetadataList*')
+    typehandlers.add_type_alias('std::list< std::pair< std::string, std::string >, std::allocator< std::pair< std::string, std::string > > >&', 'ns3::MetadataList&')
     typehandlers.add_type_alias('std::list< ns3::Ptr< ns3::DataCalculator >, std::allocator< ns3::Ptr< ns3::DataCalculator > > >', 'ns3::DataCalculatorList')
     typehandlers.add_type_alias('std::list< ns3::Ptr< ns3::DataCalculator >, std::allocator< ns3::Ptr< ns3::DataCalculator > > >*', 'ns3::DataCalculatorList*')
     typehandlers.add_type_alias('std::list< ns3::Ptr< ns3::DataCalculator >, std::allocator< ns3::Ptr< ns3::DataCalculator > > >&', 'ns3::DataCalculatorList&')
-    typehandlers.add_type_alias('std::list< std::pair< std::string, std::string >, std::allocator< std::pair< std::string, std::string > > >', 'ns3::MetadataList')
-    typehandlers.add_type_alias('std::list< std::pair< std::string, std::string >, std::allocator< std::pair< std::string, std::string > > >*', 'ns3::MetadataList*')
-    typehandlers.add_type_alias('std::list< std::pair< std::string, std::string >, std::allocator< std::pair< std::string, std::string > > >&', 'ns3::MetadataList&')
     
     ## Register a nested module for the namespace Config
     
--- a/bindings/python/apidefs/gcc-LP64/ns3_module_wifi.py	Mon Aug 09 23:40:31 2010 -0700
+++ b/bindings/python/apidefs/gcc-LP64/ns3_module_wifi.py	Tue Aug 10 00:13:34 2010 -0700
@@ -11,16 +11,16 @@
     module.add_enum('WifiModulationClass', ['WIFI_MOD_CLASS_UNKNOWN', 'WIFI_MOD_CLASS_IR', 'WIFI_MOD_CLASS_FHSS', 'WIFI_MOD_CLASS_DSSS', 'WIFI_MOD_CLASS_ERP_PBCC', 'WIFI_MOD_CLASS_DSSS_OFDM', 'WIFI_MOD_CLASS_ERP_OFDM', 'WIFI_MOD_CLASS_OFDM', 'WIFI_MOD_CLASS_HT'])
     ## wifi-phy-standard.h: ns3::WifiPhyStandard [enumeration]
     module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211_10Mhz', 'WIFI_PHY_STANDARD_80211_5Mhz', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211p_CCH', 'WIFI_PHY_STANDARD_80211p_SCH', 'WIFI_PHY_UNKNOWN'])
-    ## qos-tag.h: ns3::UserPriority [enumeration]
-    module.add_enum('UserPriority', ['UP_BK', 'UP_BE', 'UP_EE', 'UP_CL', 'UP_VI', 'UP_VO', 'UP_NC'])
     ## qos-utils.h: ns3::AcIndex [enumeration]
     module.add_enum('AcIndex', ['AC_BE', 'AC_BK', 'AC_VI', 'AC_VO', 'AC_BE_NQOS', 'AC_UNDEF'])
+    ## ctrl-headers.h: ns3::BlockAckType [enumeration]
+    module.add_enum('BlockAckType', ['BASIC_BLOCK_ACK', 'COMPRESSED_BLOCK_ACK', 'MULTI_TID_BLOCK_ACK'])
+    ## qos-tag.h: ns3::UserPriority [enumeration]
+    module.add_enum('UserPriority', ['UP_BK', 'UP_BE', 'UP_EE', 'UP_CL', 'UP_VI', 'UP_VO', 'UP_NC'])
+    ## wifi-mode.h: ns3::WifiCodeRate [enumeration]
+    module.add_enum('WifiCodeRate', ['WIFI_CODE_RATE_UNDEFINED', 'WIFI_CODE_RATE_3_4', 'WIFI_CODE_RATE_2_3', 'WIFI_CODE_RATE_1_2'])
     ## edca-txop-n.h: ns3::TypeOfStation [enumeration]
     module.add_enum('TypeOfStation', ['STA', 'AP', 'ADHOC_STA'])
-    ## ctrl-headers.h: ns3::BlockAckType [enumeration]
-    module.add_enum('BlockAckType', ['BASIC_BLOCK_ACK', 'COMPRESSED_BLOCK_ACK', 'MULTI_TID_BLOCK_ACK'])
-    ## wifi-mode.h: ns3::WifiCodeRate [enumeration]
-    module.add_enum('WifiCodeRate', ['WIFI_CODE_RATE_UNDEFINED', 'WIFI_CODE_RATE_3_4', 'WIFI_CODE_RATE_2_3', 'WIFI_CODE_RATE_1_2'])
     ## block-ack-manager.h: ns3::Bar [struct]
     module.add_class('Bar')
     ## block-ack-agreement.h: ns3::BlockAckAgreement [class]
@@ -204,18 +204,18 @@
     ## dca-txop.h: ns3::DcaTxop [class]
     module.add_class('DcaTxop', parent=root_module['ns3::Dcf'])
     module.add_container('ns3::WifiModeList', 'ns3::WifiMode', container_type='vector')
-    typehandlers.add_type_alias('uint8_t', 'ns3::WifiInformationElementId')
-    typehandlers.add_type_alias('uint8_t*', 'ns3::WifiInformationElementId*')
-    typehandlers.add_type_alias('uint8_t&', 'ns3::WifiInformationElementId&')
     typehandlers.add_type_alias('__gnu_cxx::__normal_iterator< ns3::WifiMode const *, std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > > >', 'ns3::WifiModeListIterator')
     typehandlers.add_type_alias('__gnu_cxx::__normal_iterator< ns3::WifiMode const *, std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > > >*', 'ns3::WifiModeListIterator*')
     typehandlers.add_type_alias('__gnu_cxx::__normal_iterator< ns3::WifiMode const *, std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > > >&', 'ns3::WifiModeListIterator&')
+    typehandlers.add_type_alias('std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > >', 'ns3::WifiModeList')
+    typehandlers.add_type_alias('std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > >*', 'ns3::WifiModeList*')
+    typehandlers.add_type_alias('std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > >&', 'ns3::WifiModeList&')
+    typehandlers.add_type_alias('uint8_t', 'ns3::WifiInformationElementId')
+    typehandlers.add_type_alias('uint8_t*', 'ns3::WifiInformationElementId*')
+    typehandlers.add_type_alias('uint8_t&', 'ns3::WifiInformationElementId&')
     typehandlers.add_type_alias('std::vector< ns3::RateInfo, std::allocator< ns3::RateInfo > >', 'ns3::MinstrelRate')
     typehandlers.add_type_alias('std::vector< ns3::RateInfo, std::allocator< ns3::RateInfo > >*', 'ns3::MinstrelRate*')
     typehandlers.add_type_alias('std::vector< ns3::RateInfo, std::allocator< ns3::RateInfo > >&', 'ns3::MinstrelRate&')
-    typehandlers.add_type_alias('std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > >', 'ns3::WifiModeList')
-    typehandlers.add_type_alias('std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > >*', 'ns3::WifiModeList*')
-    typehandlers.add_type_alias('std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > >&', 'ns3::WifiModeList&')
     typehandlers.add_type_alias('std::vector< std::vector< unsigned int, std::allocator< unsigned int > >, std::allocator< std::vector< unsigned int, std::allocator< unsigned int > > > >', 'ns3::SampleRate')
     typehandlers.add_type_alias('std::vector< std::vector< unsigned int, std::allocator< unsigned int > >, std::allocator< std::vector< unsigned int, std::allocator< unsigned int > > > >*', 'ns3::SampleRate*')
     typehandlers.add_type_alias('std::vector< std::vector< unsigned int, std::allocator< unsigned int > >, std::allocator< std::vector< unsigned int, std::allocator< unsigned int > > > >&', 'ns3::SampleRate&')
--- a/bindings/python/apidefs/gcc-LP64/ns3modulegen_generated.py	Mon Aug 09 23:40:31 2010 -0700
+++ b/bindings/python/apidefs/gcc-LP64/ns3modulegen_generated.py	Tue Aug 10 00:13:34 2010 -0700
@@ -500,10 +500,10 @@
         ns3_module_flame__local.register_types(module)
     
     root_module.end_section('ns3_module_flame')
+    ## device-energy-model-container.h: ns3::DeviceEnergyModelContainer [class]
+    module.add_class('DeviceEnergyModelContainer')
     ## energy-model-helper.h: ns3::DeviceEnergyModelHelper [class]
     module.add_class('DeviceEnergyModelHelper', allow_subclassing=True)
-    ## energy-model-helper.h: ns3::EnergyModelHelper [class]
-    module.add_class('EnergyModelHelper')
     ## energy-model-helper.h: ns3::EnergySourceHelper [class]
     module.add_class('EnergySourceHelper', allow_subclassing=True)
     ## uan-mac-rc.h: ns3::Reservation [class]
@@ -530,10 +530,10 @@
     module.add_enum('ModulationType', ['PSK', 'QAM', 'FSK', 'OTHER'], outer_class=root_module['ns3::UanTxMode'])
     ## uan-tx-mode.h: ns3::UanTxModeFactory [class]
     module.add_class('UanTxModeFactory')
+    ## wifi-radio-energy-model-helper.h: ns3::WifiRadioEnergyModelHelper [class]
+    module.add_class('WifiRadioEnergyModelHelper', parent=root_module['ns3::DeviceEnergyModelHelper'])
     ## basic-energy-source-helper.h: ns3::BasicEnergySourceHelper [class]
     module.add_class('BasicEnergySourceHelper', parent=root_module['ns3::EnergySourceHelper'])
-    ## basic-radio-energy-model-helper.h: ns3::BasicRadioEnergyModelHelper [class]
-    module.add_class('BasicRadioEnergyModelHelper', parent=root_module['ns3::DeviceEnergyModelHelper'])
     ## uan-header-common.h: ns3::UanHeaderCommon [class]
     module.add_class('UanHeaderCommon', parent=root_module['ns3::Header'])
     ## uan-header-rc.h: ns3::UanHeaderRcAck [class]
@@ -600,10 +600,8 @@
     module.add_class('DeviceEnergyModel', parent=root_module['ns3::Object'])
     ## energy-source.h: ns3::EnergySource [class]
     module.add_class('EnergySource', parent=root_module['ns3::Object'])
-    ## radio-energy-model.h: ns3::RadioEnergyModel [class]
-    module.add_class('RadioEnergyModel', parent=root_module['ns3::DeviceEnergyModel'])
-    ## radio-energy-model.h: ns3::RadioEnergyModel::RadioState [enumeration]
-    module.add_enum('RadioState', ['TX', 'RX', 'IDLE', 'SLEEP'], outer_class=root_module['ns3::RadioEnergyModel'])
+    ## energy-source-container.h: ns3::EnergySourceContainer [class]
+    module.add_class('EnergySourceContainer', parent=root_module['ns3::Object'])
     ## uan-channel.h: ns3::UanChannel [class]
     module.add_class('UanChannel', parent=root_module['ns3::Channel'])
     ## uan-tx-mode.h: ns3::UanModesListChecker [class]
@@ -612,10 +610,12 @@
     module.add_class('UanModesListValue', parent=root_module['ns3::AttributeValue'])
     ## uan-net-device.h: ns3::UanNetDevice [class]
     module.add_class('UanNetDevice', parent=root_module['ns3::NetDevice'])
+    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModel [class]
+    module.add_class('WifiRadioEnergyModel', parent=root_module['ns3::DeviceEnergyModel'])
+    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModel::WifiRadioState [enumeration]
+    module.add_enum('WifiRadioState', ['TX', 'RX', 'IDLE', 'SLEEP'], outer_class=root_module['ns3::WifiRadioEnergyModel'])
     ## basic-energy-source.h: ns3::BasicEnergySource [class]
     module.add_class('BasicEnergySource', parent=root_module['ns3::EnergySource'])
-    ## basic-radio-energy-model.h: ns3::BasicRadioEnergyModel [class]
-    module.add_class('BasicRadioEnergyModel', parent=root_module['ns3::RadioEnergyModel'])
     module.add_container('std::vector< unsigned int >', 'unsigned int', container_type='vector')
     module.add_container('std::vector< bool >', 'bool', container_type='vector')
     module.add_container('std::list< std::pair< ns3::Ptr< ns3::Packet >, ns3::UanAddress > >', 'std::pair< ns3::Ptr< ns3::Packet >, ns3::UanAddress >', container_type='list')
@@ -718,8 +718,8 @@
     module.add_container('std::set< unsigned int >', 'unsigned int', container_type='set')
 
 def register_methods(root_module):
+    register_Ns3DeviceEnergyModelContainer_methods(root_module, root_module['ns3::DeviceEnergyModelContainer'])
     register_Ns3DeviceEnergyModelHelper_methods(root_module, root_module['ns3::DeviceEnergyModelHelper'])
-    register_Ns3EnergyModelHelper_methods(root_module, root_module['ns3::EnergyModelHelper'])
     register_Ns3EnergySourceHelper_methods(root_module, root_module['ns3::EnergySourceHelper'])
     register_Ns3Reservation_methods(root_module, root_module['ns3::Reservation'])
     register_Ns3Tap_methods(root_module, root_module['ns3::Tap'])
@@ -731,8 +731,8 @@
     register_Ns3UanPhyListener_methods(root_module, root_module['ns3::UanPhyListener'])
     register_Ns3UanTxMode_methods(root_module, root_module['ns3::UanTxMode'])
     register_Ns3UanTxModeFactory_methods(root_module, root_module['ns3::UanTxModeFactory'])
+    register_Ns3WifiRadioEnergyModelHelper_methods(root_module, root_module['ns3::WifiRadioEnergyModelHelper'])
     register_Ns3BasicEnergySourceHelper_methods(root_module, root_module['ns3::BasicEnergySourceHelper'])
-    register_Ns3BasicRadioEnergyModelHelper_methods(root_module, root_module['ns3::BasicRadioEnergyModelHelper'])
     register_Ns3UanHeaderCommon_methods(root_module, root_module['ns3::UanHeaderCommon'])
     register_Ns3UanHeaderRcAck_methods(root_module, root_module['ns3::UanHeaderRcAck'])
     register_Ns3UanHeaderRcCts_methods(root_module, root_module['ns3::UanHeaderRcCts'])
@@ -763,13 +763,13 @@
     register_Ns3UanTransducerHd_methods(root_module, root_module['ns3::UanTransducerHd'])
     register_Ns3DeviceEnergyModel_methods(root_module, root_module['ns3::DeviceEnergyModel'])
     register_Ns3EnergySource_methods(root_module, root_module['ns3::EnergySource'])
-    register_Ns3RadioEnergyModel_methods(root_module, root_module['ns3::RadioEnergyModel'])
+    register_Ns3EnergySourceContainer_methods(root_module, root_module['ns3::EnergySourceContainer'])
     register_Ns3UanChannel_methods(root_module, root_module['ns3::UanChannel'])
     register_Ns3UanModesListChecker_methods(root_module, root_module['ns3::UanModesListChecker'])
     register_Ns3UanModesListValue_methods(root_module, root_module['ns3::UanModesListValue'])
     register_Ns3UanNetDevice_methods(root_module, root_module['ns3::UanNetDevice'])
+    register_Ns3WifiRadioEnergyModel_methods(root_module, root_module['ns3::WifiRadioEnergyModel'])
     register_Ns3BasicEnergySource_methods(root_module, root_module['ns3::BasicEnergySource'])
-    register_Ns3BasicRadioEnergyModel_methods(root_module, root_module['ns3::BasicRadioEnergyModel'])
     root_module.begin_section('ns3_module_core')
     ns3_module_core.register_methods(root_module)
     
@@ -1212,90 +1212,117 @@
     root_module.end_section('ns3_module_flame')
     return
 
+def register_Ns3DeviceEnergyModelContainer_methods(root_module, cls):
+    ## device-energy-model-container.h: ns3::DeviceEnergyModelContainer::DeviceEnergyModelContainer(ns3::DeviceEnergyModelContainer const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::DeviceEnergyModelContainer const &', 'arg0')])
+    ## device-energy-model-container.h: ns3::DeviceEnergyModelContainer::DeviceEnergyModelContainer() [constructor]
+    cls.add_constructor([])
+    ## device-energy-model-container.h: ns3::DeviceEnergyModelContainer::DeviceEnergyModelContainer(ns3::Ptr<ns3::DeviceEnergyModel> model) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::DeviceEnergyModel >', 'model')])
+    ## device-energy-model-container.h: ns3::DeviceEnergyModelContainer::DeviceEnergyModelContainer(std::string modelName) [constructor]
+    cls.add_constructor([param('std::string', 'modelName')])
+    ## device-energy-model-container.h: ns3::DeviceEnergyModelContainer::DeviceEnergyModelContainer(ns3::DeviceEnergyModelContainer const & a, ns3::DeviceEnergyModelContainer const & b) [constructor]
+    cls.add_constructor([param('ns3::DeviceEnergyModelContainer const &', 'a'), param('ns3::DeviceEnergyModelContainer const &', 'b')])
+    ## device-energy-model-container.h: void ns3::DeviceEnergyModelContainer::Add(ns3::DeviceEnergyModelContainer container) [member function]
+    cls.add_method('Add', 
+                   'void', 
+                   [param('ns3::DeviceEnergyModelContainer', 'container')])
+    ## device-energy-model-container.h: void ns3::DeviceEnergyModelContainer::Add(ns3::Ptr<ns3::DeviceEnergyModel> model) [member function]
+    cls.add_method('Add', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::DeviceEnergyModel >', 'model')])
+    ## device-energy-model-container.h: void ns3::DeviceEnergyModelContainer::Add(std::string modelName) [member function]
+    cls.add_method('Add', 
+                   'void', 
+                   [param('std::string', 'modelName')])
+    ## device-energy-model-container.h: __gnu_cxx::__normal_iterator<const ns3::Ptr<ns3::DeviceEnergyModel>*,std::vector<ns3::Ptr<ns3::DeviceEnergyModel>, std::allocator<ns3::Ptr<ns3::DeviceEnergyModel> > > > ns3::DeviceEnergyModelContainer::Begin() const [member function]
+    cls.add_method('Begin', 
+                   '__gnu_cxx::__normal_iterator< ns3::Ptr< ns3::DeviceEnergyModel > const, std::vector< ns3::Ptr< ns3::DeviceEnergyModel > > >', 
+                   [], 
+                   is_const=True)
+    ## device-energy-model-container.h: void ns3::DeviceEnergyModelContainer::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [])
+    ## device-energy-model-container.h: __gnu_cxx::__normal_iterator<const ns3::Ptr<ns3::DeviceEnergyModel>*,std::vector<ns3::Ptr<ns3::DeviceEnergyModel>, std::allocator<ns3::Ptr<ns3::DeviceEnergyModel> > > > ns3::DeviceEnergyModelContainer::End() const [member function]
+    cls.add_method('End', 
+                   '__gnu_cxx::__normal_iterator< ns3::Ptr< ns3::DeviceEnergyModel > const, std::vector< ns3::Ptr< ns3::DeviceEnergyModel > > >', 
+                   [], 
+                   is_const=True)
+    ## device-energy-model-container.h: ns3::Ptr<ns3::DeviceEnergyModel> ns3::DeviceEnergyModelContainer::Get(uint32_t i) const [member function]
+    cls.add_method('Get', 
+                   'ns3::Ptr< ns3::DeviceEnergyModel >', 
+                   [param('uint32_t', 'i')], 
+                   is_const=True)
+    ## device-energy-model-container.h: uint32_t ns3::DeviceEnergyModelContainer::GetN() const [member function]
+    cls.add_method('GetN', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    return
+
 def register_Ns3DeviceEnergyModelHelper_methods(root_module, cls):
     ## energy-model-helper.h: ns3::DeviceEnergyModelHelper::DeviceEnergyModelHelper() [constructor]
     cls.add_constructor([])
     ## energy-model-helper.h: ns3::DeviceEnergyModelHelper::DeviceEnergyModelHelper(ns3::DeviceEnergyModelHelper const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::DeviceEnergyModelHelper const &', 'arg0')])
-    ## energy-model-helper.h: ns3::Ptr<ns3::DeviceEnergyModel> ns3::DeviceEnergyModelHelper::Create() const [member function]
-    cls.add_method('Create', 
-                   'ns3::Ptr< ns3::DeviceEnergyModel >', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## energy-model-helper.h: void ns3::DeviceEnergyModelHelper::Install(ns3::Ptr<ns3::Node> node) const [member function]
-    cls.add_method('Install', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_const=True)
-    ## energy-model-helper.h: void ns3::DeviceEnergyModelHelper::Install(ns3::NodeContainer c) const [member function]
+    ## energy-model-helper.h: ns3::DeviceEnergyModelContainer ns3::DeviceEnergyModelHelper::Install(ns3::Ptr<ns3::NetDevice> device, ns3::Ptr<ns3::EnergySource> source) const [member function]
     cls.add_method('Install', 
-                   'void', 
-                   [param('ns3::NodeContainer', 'c')], 
+                   'ns3::DeviceEnergyModelContainer', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'device'), param('ns3::Ptr< ns3::EnergySource >', 'source')], 
                    is_const=True)
-    ## energy-model-helper.h: void ns3::DeviceEnergyModelHelper::Install(std::string nodeName) const [member function]
+    ## energy-model-helper.h: ns3::DeviceEnergyModelContainer ns3::DeviceEnergyModelHelper::Install(ns3::NetDeviceContainer deviceContainer, ns3::EnergySourceContainer sourceContainer) const [member function]
     cls.add_method('Install', 
-                   'void', 
-                   [param('std::string', 'nodeName')], 
-                   is_const=True)
-    ## energy-model-helper.h: void ns3::DeviceEnergyModelHelper::InstallAll() const [member function]
-    cls.add_method('InstallAll', 
-                   'void', 
-                   [], 
+                   'ns3::DeviceEnergyModelContainer', 
+                   [param('ns3::NetDeviceContainer', 'deviceContainer'), param('ns3::EnergySourceContainer', 'sourceContainer')], 
                    is_const=True)
     ## energy-model-helper.h: void ns3::DeviceEnergyModelHelper::Set(std::string name, ns3::AttributeValue const & v) [member function]
     cls.add_method('Set', 
                    'void', 
                    [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')], 
                    is_pure_virtual=True, is_virtual=True)
-    ## energy-model-helper.h: void ns3::DeviceEnergyModelHelper::DoInstall(ns3::Ptr<ns3::Node> node) const [member function]
+    ## energy-model-helper.h: ns3::Ptr<ns3::DeviceEnergyModel> ns3::DeviceEnergyModelHelper::DoInstall(ns3::Ptr<ns3::NetDevice> device, ns3::Ptr<ns3::EnergySource> source) const [member function]
     cls.add_method('DoInstall', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   'ns3::Ptr< ns3::DeviceEnergyModel >', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'device'), param('ns3::Ptr< ns3::EnergySource >', 'source')], 
                    is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
     return
 
-def register_Ns3EnergyModelHelper_methods(root_module, cls):
-    ## energy-model-helper.h: ns3::EnergyModelHelper::EnergyModelHelper(ns3::EnergyModelHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::EnergyModelHelper const &', 'arg0')])
-    ## energy-model-helper.h: ns3::EnergyModelHelper::EnergyModelHelper() [constructor]
-    cls.add_constructor([])
-    ## energy-model-helper.h: void ns3::EnergyModelHelper::Install(ns3::EnergySourceHelper const & sourceHelper, ns3::DeviceEnergyModelHelper const & modelHelper, ns3::Ptr<ns3::Node> node) const [member function]
-    cls.add_method('Install', 
-                   'void', 
-                   [param('ns3::EnergySourceHelper const &', 'sourceHelper'), param('ns3::DeviceEnergyModelHelper const &', 'modelHelper'), param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_const=True)
-    ## energy-model-helper.h: void ns3::EnergyModelHelper::Install(ns3::EnergySourceHelper const & sourceHelper, ns3::DeviceEnergyModelHelper const & modelHelper, ns3::NodeContainer c) const [member function]
-    cls.add_method('Install', 
-                   'void', 
-                   [param('ns3::EnergySourceHelper const &', 'sourceHelper'), param('ns3::DeviceEnergyModelHelper const &', 'modelHelper'), param('ns3::NodeContainer', 'c')], 
-                   is_const=True)
-    ## energy-model-helper.h: void ns3::EnergyModelHelper::Install(ns3::EnergySourceHelper const & sourceHelper, ns3::DeviceEnergyModelHelper const & modelHelper, std::string nodeName) const [member function]
-    cls.add_method('Install', 
-                   'void', 
-                   [param('ns3::EnergySourceHelper const &', 'sourceHelper'), param('ns3::DeviceEnergyModelHelper const &', 'modelHelper'), param('std::string', 'nodeName')], 
-                   is_const=True)
-    ## energy-model-helper.h: void ns3::EnergyModelHelper::InstallAll(ns3::EnergySourceHelper const & sourceHelper, ns3::DeviceEnergyModelHelper const & modelHelper) const [member function]
-    cls.add_method('InstallAll', 
-                   'void', 
-                   [param('ns3::EnergySourceHelper const &', 'sourceHelper'), param('ns3::DeviceEnergyModelHelper const &', 'modelHelper')], 
-                   is_const=True)
-    return
-
 def register_Ns3EnergySourceHelper_methods(root_module, cls):
     ## energy-model-helper.h: ns3::EnergySourceHelper::EnergySourceHelper() [constructor]
     cls.add_constructor([])
     ## energy-model-helper.h: ns3::EnergySourceHelper::EnergySourceHelper(ns3::EnergySourceHelper const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::EnergySourceHelper const &', 'arg0')])
-    ## energy-model-helper.h: ns3::Ptr<ns3::EnergySource> ns3::EnergySourceHelper::Create() const [member function]
-    cls.add_method('Create', 
+    ## energy-model-helper.h: ns3::EnergySourceContainer ns3::EnergySourceHelper::Install(ns3::Ptr<ns3::Node> node) const [member function]
+    cls.add_method('Install', 
+                   'ns3::EnergySourceContainer', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_const=True)
+    ## energy-model-helper.h: ns3::EnergySourceContainer ns3::EnergySourceHelper::Install(ns3::NodeContainer c) const [member function]
+    cls.add_method('Install', 
+                   'ns3::EnergySourceContainer', 
+                   [param('ns3::NodeContainer', 'c')], 
+                   is_const=True)
+    ## energy-model-helper.h: ns3::EnergySourceContainer ns3::EnergySourceHelper::Install(std::string nodeName) const [member function]
+    cls.add_method('Install', 
+                   'ns3::EnergySourceContainer', 
+                   [param('std::string', 'nodeName')], 
+                   is_const=True)
+    ## energy-model-helper.h: ns3::EnergySourceContainer ns3::EnergySourceHelper::InstallAll() const [member function]
+    cls.add_method('InstallAll', 
+                   'ns3::EnergySourceContainer', 
+                   [], 
+                   is_const=True)
+    ## energy-model-helper.h: void ns3::EnergySourceHelper::Set(std::string name, ns3::AttributeValue const & v) [member function]
+    cls.add_method('Set', 
+                   'void', 
+                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## energy-model-helper.h: ns3::Ptr<ns3::EnergySource> ns3::EnergySourceHelper::DoInstall(ns3::Ptr<ns3::Node> node) const [member function]
+    cls.add_method('DoInstall', 
                    'ns3::Ptr< ns3::EnergySource >', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## energy-model-helper.h: void ns3::EnergySourceHelper::Install(ns3::Ptr<ns3::Node> node) const [member function]
-    cls.add_method('Install', 
-                   'void', 
                    [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
+                   is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
     return
 
 def register_Ns3Reservation_methods(root_module, cls):
@@ -1379,9 +1406,9 @@
 
 def register_Ns3UanAddress_methods(root_module, cls):
     cls.add_binary_comparison_operator('!=')
-    cls.add_binary_comparison_operator('<')
     cls.add_output_stream_operator()
     cls.add_binary_comparison_operator('==')
+    cls.add_binary_comparison_operator('<')
     ## uan-address.h: ns3::UanAddress::UanAddress(ns3::UanAddress const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::UanAddress const &', 'arg0')])
     ## uan-address.h: ns3::UanAddress::UanAddress() [constructor]
@@ -1710,49 +1737,40 @@
                    is_static=True)
     return
 
+def register_Ns3WifiRadioEnergyModelHelper_methods(root_module, cls):
+    ## wifi-radio-energy-model-helper.h: ns3::WifiRadioEnergyModelHelper::WifiRadioEnergyModelHelper(ns3::WifiRadioEnergyModelHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::WifiRadioEnergyModelHelper const &', 'arg0')])
+    ## wifi-radio-energy-model-helper.h: ns3::WifiRadioEnergyModelHelper::WifiRadioEnergyModelHelper() [constructor]
+    cls.add_constructor([])
+    ## wifi-radio-energy-model-helper.h: void ns3::WifiRadioEnergyModelHelper::Set(std::string name, ns3::AttributeValue const & v) [member function]
+    cls.add_method('Set', 
+                   'void', 
+                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')], 
+                   is_virtual=True)
+    ## wifi-radio-energy-model-helper.h: void ns3::WifiRadioEnergyModelHelper::SetDepletionCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
+    cls.add_method('SetDepletionCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')])
+    ## wifi-radio-energy-model-helper.h: ns3::Ptr<ns3::DeviceEnergyModel> ns3::WifiRadioEnergyModelHelper::DoInstall(ns3::Ptr<ns3::NetDevice> device, ns3::Ptr<ns3::EnergySource> source) const [member function]
+    cls.add_method('DoInstall', 
+                   'ns3::Ptr< ns3::DeviceEnergyModel >', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'device'), param('ns3::Ptr< ns3::EnergySource >', 'source')], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
 def register_Ns3BasicEnergySourceHelper_methods(root_module, cls):
     ## basic-energy-source-helper.h: ns3::BasicEnergySourceHelper::BasicEnergySourceHelper(ns3::BasicEnergySourceHelper const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::BasicEnergySourceHelper const &', 'arg0')])
     ## basic-energy-source-helper.h: ns3::BasicEnergySourceHelper::BasicEnergySourceHelper() [constructor]
     cls.add_constructor([])
-    ## basic-energy-source-helper.h: ns3::Ptr<ns3::EnergySource> ns3::BasicEnergySourceHelper::Create() const [member function]
-    cls.add_method('Create', 
-                   'ns3::Ptr< ns3::EnergySource >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## basic-energy-source-helper.h: void ns3::BasicEnergySourceHelper::Install(ns3::Ptr<ns3::Node> node) const [member function]
-    cls.add_method('Install', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_const=True, is_virtual=True)
     ## basic-energy-source-helper.h: void ns3::BasicEnergySourceHelper::Set(std::string name, ns3::AttributeValue const & v) [member function]
     cls.add_method('Set', 
                    'void', 
-                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')])
-    return
-
-def register_Ns3BasicRadioEnergyModelHelper_methods(root_module, cls):
-    ## basic-radio-energy-model-helper.h: ns3::BasicRadioEnergyModelHelper::BasicRadioEnergyModelHelper(ns3::BasicRadioEnergyModelHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::BasicRadioEnergyModelHelper const &', 'arg0')])
-    ## basic-radio-energy-model-helper.h: ns3::BasicRadioEnergyModelHelper::BasicRadioEnergyModelHelper() [constructor]
-    cls.add_constructor([])
-    ## basic-radio-energy-model-helper.h: ns3::Ptr<ns3::DeviceEnergyModel> ns3::BasicRadioEnergyModelHelper::Create() const [member function]
-    cls.add_method('Create', 
-                   'ns3::Ptr< ns3::DeviceEnergyModel >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## basic-radio-energy-model-helper.h: void ns3::BasicRadioEnergyModelHelper::Set(std::string name, ns3::AttributeValue const & v) [member function]
-    cls.add_method('Set', 
-                   'void', 
                    [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')], 
                    is_virtual=True)
-    ## basic-radio-energy-model-helper.h: void ns3::BasicRadioEnergyModelHelper::SetDepletionCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
-    cls.add_method('SetDepletionCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')])
-    ## basic-radio-energy-model-helper.h: void ns3::BasicRadioEnergyModelHelper::DoInstall(ns3::Ptr<ns3::Node> node) const [member function]
+    ## basic-energy-source-helper.h: ns3::Ptr<ns3::EnergySource> ns3::BasicEnergySourceHelper::DoInstall(ns3::Ptr<ns3::Node> node) const [member function]
     cls.add_method('DoInstall', 
-                   'void', 
+                   'ns3::Ptr< ns3::EnergySource >', 
                    [param('ns3::Ptr< ns3::Node >', 'node')], 
                    is_const=True, visibility='private', is_virtual=True)
     return
@@ -3539,6 +3557,26 @@
     cls.add_constructor([param('ns3::DeviceEnergyModel const &', 'arg0')])
     ## device-energy-model.h: ns3::DeviceEnergyModel::DeviceEnergyModel() [constructor]
     cls.add_constructor([])
+    ## device-energy-model.h: void ns3::DeviceEnergyModel::ChangeState(int newState) [member function]
+    cls.add_method('ChangeState', 
+                   'void', 
+                   [param('int', 'newState')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## device-energy-model.h: double ns3::DeviceEnergyModel::GetCurrentA() const [member function]
+    cls.add_method('GetCurrentA', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## device-energy-model.h: ns3::Ptr<ns3::Node> ns3::DeviceEnergyModel::GetNode() const [member function]
+    cls.add_method('GetNode', 
+                   'ns3::Ptr< ns3::Node >', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## device-energy-model.h: double ns3::DeviceEnergyModel::GetTotalEnergyConsumption() const [member function]
+    cls.add_method('GetTotalEnergyConsumption', 
+                   'double', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
     ## device-energy-model.h: static ns3::TypeId ns3::DeviceEnergyModel::GetTypeId() [member function]
     cls.add_method('GetTypeId', 
                    'ns3::TypeId', 
@@ -3547,36 +3585,23 @@
     ## device-energy-model.h: void ns3::DeviceEnergyModel::HandleEnergyDepletion() [member function]
     cls.add_method('HandleEnergyDepletion', 
                    'void', 
-                   [])
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
     ## device-energy-model.h: void ns3::DeviceEnergyModel::SetEnergySource(ns3::Ptr<ns3::EnergySource> source) [member function]
     cls.add_method('SetEnergySource', 
                    'void', 
-                   [param('ns3::Ptr< ns3::EnergySource >', 'source')])
-    ## device-energy-model.h: void ns3::DeviceEnergyModel::BreakSourceRefCycle() [member function]
-    cls.add_method('BreakSourceRefCycle', 
-                   'void', 
-                   [], 
-                   visibility='protected')
-    ## device-energy-model.h: void ns3::DeviceEnergyModel::DecreaseRemainingEnergy(double energyJ) [member function]
-    cls.add_method('DecreaseRemainingEnergy', 
-                   'void', 
-                   [param('double', 'energyJ')], 
-                   visibility='protected')
-    ## device-energy-model.h: void ns3::DeviceEnergyModel::IncreaseRemainingEnergy(double energyJ) [member function]
-    cls.add_method('IncreaseRemainingEnergy', 
-                   'void', 
-                   [param('double', 'energyJ')], 
-                   visibility='protected')
-    ## device-energy-model.h: void ns3::DeviceEnergyModel::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    ## device-energy-model.h: void ns3::DeviceEnergyModel::DoHandleEnergyDepletion() [member function]
-    cls.add_method('DoHandleEnergyDepletion', 
-                   'void', 
-                   [], 
-                   is_pure_virtual=True, visibility='private', is_virtual=True)
+                   [param('ns3::Ptr< ns3::EnergySource >', 'source')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## device-energy-model.h: void ns3::DeviceEnergyModel::SetNode(ns3::Ptr<ns3::Node> node) [member function]
+    cls.add_method('SetNode', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## device-energy-model.h: double ns3::DeviceEnergyModel::DoGetCurrentA() const [member function]
+    cls.add_method('DoGetCurrentA', 
+                   'double', 
+                   [], 
+                   is_const=True, visibility='private', is_virtual=True)
     return
 
 def register_Ns3EnergySource_methods(root_module, cls):
@@ -3591,30 +3616,41 @@
     ## energy-source.h: void ns3::EnergySource::DecreaseRemainingEnergy(double energyJ) [member function]
     cls.add_method('DecreaseRemainingEnergy', 
                    'void', 
-                   [param('double', 'energyJ')])
-    ## energy-source.h: std::vector<ns3::Ptr<ns3::DeviceEnergyModel>, std::allocator<ns3::Ptr<ns3::DeviceEnergyModel> > > ns3::EnergySource::FindDeviceEnergyModels(ns3::TypeId tid) [member function]
+                   [param('double', 'energyJ')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## energy-source.h: ns3::DeviceEnergyModelContainer ns3::EnergySource::FindDeviceEnergyModels(ns3::TypeId tid) [member function]
     cls.add_method('FindDeviceEnergyModels', 
-                   'std::vector< ns3::Ptr< ns3::DeviceEnergyModel > >', 
+                   'ns3::DeviceEnergyModelContainer', 
                    [param('ns3::TypeId', 'tid')])
-    ## energy-source.h: std::vector<ns3::Ptr<ns3::DeviceEnergyModel>, std::allocator<ns3::Ptr<ns3::DeviceEnergyModel> > > ns3::EnergySource::FindDeviceEnergyModels(std::string name) [member function]
+    ## energy-source.h: ns3::DeviceEnergyModelContainer ns3::EnergySource::FindDeviceEnergyModels(std::string name) [member function]
     cls.add_method('FindDeviceEnergyModels', 
-                   'std::vector< ns3::Ptr< ns3::DeviceEnergyModel > >', 
+                   'ns3::DeviceEnergyModelContainer', 
                    [param('std::string', 'name')])
-    ## energy-source.h: double ns3::EnergySource::GetEnergyFraction() const [member function]
+    ## energy-source.h: double ns3::EnergySource::GetEnergyFraction() [member function]
     cls.add_method('GetEnergyFraction', 
                    'double', 
                    [], 
-                   is_const=True)
+                   is_pure_virtual=True, is_virtual=True)
     ## energy-source.h: double ns3::EnergySource::GetInitialEnergy() const [member function]
     cls.add_method('GetInitialEnergy', 
                    'double', 
                    [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## energy-source.h: ns3::Ptr<ns3::Node> ns3::EnergySource::GetNode() const [member function]
+    cls.add_method('GetNode', 
+                   'ns3::Ptr< ns3::Node >', 
+                   [], 
                    is_const=True)
-    ## energy-source.h: double ns3::EnergySource::GetRemainingEnergy() const [member function]
+    ## energy-source.h: double ns3::EnergySource::GetRemainingEnergy() [member function]
     cls.add_method('GetRemainingEnergy', 
                    'double', 
                    [], 
-                   is_const=True)
+                   is_pure_virtual=True, is_virtual=True)
+    ## energy-source.h: double ns3::EnergySource::GetSupplyVoltage() const [member function]
+    cls.add_method('GetSupplyVoltage', 
+                   'double', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
     ## energy-source.h: static ns3::TypeId ns3::EnergySource::GetTypeId() [member function]
     cls.add_method('GetTypeId', 
                    'ns3::TypeId', 
@@ -3623,144 +3659,97 @@
     ## energy-source.h: void ns3::EnergySource::IncreaseRemainingEnergy(double energyJ) [member function]
     cls.add_method('IncreaseRemainingEnergy', 
                    'void', 
-                   [param('double', 'energyJ')])
+                   [param('double', 'energyJ')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## energy-source.h: void ns3::EnergySource::SetNode(ns3::Ptr<ns3::Node> node) [member function]
+    cls.add_method('SetNode', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')])
+    ## energy-source.h: void ns3::EnergySource::UpdateEnergySource() [member function]
+    cls.add_method('UpdateEnergySource', 
+                   'void', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
     ## energy-source.h: void ns3::EnergySource::BreakDeviceEnergyModelRefCycle() [member function]
     cls.add_method('BreakDeviceEnergyModelRefCycle', 
                    'void', 
                    [], 
                    visibility='protected')
+    ## energy-source.h: double ns3::EnergySource::CalculateTotalCurrent() [member function]
+    cls.add_method('CalculateTotalCurrent', 
+                   'double', 
+                   [], 
+                   visibility='protected')
     ## energy-source.h: void ns3::EnergySource::NotifyEnergyDrained() [member function]
     cls.add_method('NotifyEnergyDrained', 
                    'void', 
                    [], 
                    visibility='protected')
-    ## energy-source.h: void ns3::EnergySource::DoDecreaseRemainingEnergy(double energyJ) [member function]
-    cls.add_method('DoDecreaseRemainingEnergy', 
-                   'void', 
-                   [param('double', 'energyJ')], 
-                   is_pure_virtual=True, visibility='private', is_virtual=True)
     ## energy-source.h: void ns3::EnergySource::DoDispose() [member function]
     cls.add_method('DoDispose', 
                    'void', 
                    [], 
                    visibility='private', is_virtual=True)
-    ## energy-source.h: double ns3::EnergySource::DoGetEnergyFraction() const [member function]
-    cls.add_method('DoGetEnergyFraction', 
-                   'double', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
-    ## energy-source.h: double ns3::EnergySource::DoGetInitialEnergy() const [member function]
-    cls.add_method('DoGetInitialEnergy', 
-                   'double', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
-    ## energy-source.h: double ns3::EnergySource::DoGetRemainingEnergy() const [member function]
-    cls.add_method('DoGetRemainingEnergy', 
-                   'double', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
-    ## energy-source.h: void ns3::EnergySource::DoIncreaseRemainingEnergy(double energyJ) [member function]
-    cls.add_method('DoIncreaseRemainingEnergy', 
-                   'void', 
-                   [param('double', 'energyJ')], 
-                   is_pure_virtual=True, visibility='private', is_virtual=True)
     return
 
-def register_Ns3RadioEnergyModel_methods(root_module, cls):
-    ## radio-energy-model.h: ns3::RadioEnergyModel::RadioEnergyModel(ns3::RadioEnergyModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::RadioEnergyModel const &', 'arg0')])
-    ## radio-energy-model.h: ns3::RadioEnergyModel::RadioEnergyModel() [constructor]
+def register_Ns3EnergySourceContainer_methods(root_module, cls):
+    ## energy-source-container.h: ns3::EnergySourceContainer::EnergySourceContainer(ns3::EnergySourceContainer const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::EnergySourceContainer const &', 'arg0')])
+    ## energy-source-container.h: ns3::EnergySourceContainer::EnergySourceContainer() [constructor]
     cls.add_constructor([])
-    ## radio-energy-model.h: double ns3::RadioEnergyModel::GetIdlePowerW() const [member function]
-    cls.add_method('GetIdlePowerW', 
-                   'double', 
+    ## energy-source-container.h: ns3::EnergySourceContainer::EnergySourceContainer(ns3::Ptr<ns3::EnergySource> source) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::EnergySource >', 'source')])
+    ## energy-source-container.h: ns3::EnergySourceContainer::EnergySourceContainer(std::string sourceName) [constructor]
+    cls.add_constructor([param('std::string', 'sourceName')])
+    ## energy-source-container.h: ns3::EnergySourceContainer::EnergySourceContainer(ns3::EnergySourceContainer const & a, ns3::EnergySourceContainer const & b) [constructor]
+    cls.add_constructor([param('ns3::EnergySourceContainer const &', 'a'), param('ns3::EnergySourceContainer const &', 'b')])
+    ## energy-source-container.h: void ns3::EnergySourceContainer::Add(ns3::EnergySourceContainer container) [member function]
+    cls.add_method('Add', 
+                   'void', 
+                   [param('ns3::EnergySourceContainer', 'container')])
+    ## energy-source-container.h: void ns3::EnergySourceContainer::Add(ns3::Ptr<ns3::EnergySource> source) [member function]
+    cls.add_method('Add', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::EnergySource >', 'source')])
+    ## energy-source-container.h: void ns3::EnergySourceContainer::Add(std::string sourceName) [member function]
+    cls.add_method('Add', 
+                   'void', 
+                   [param('std::string', 'sourceName')])
+    ## energy-source-container.h: __gnu_cxx::__normal_iterator<const ns3::Ptr<ns3::EnergySource>*,std::vector<ns3::Ptr<ns3::EnergySource>, std::allocator<ns3::Ptr<ns3::EnergySource> > > > ns3::EnergySourceContainer::Begin() const [member function]
+    cls.add_method('Begin', 
+                   '__gnu_cxx::__normal_iterator< ns3::Ptr< ns3::EnergySource > const, std::vector< ns3::Ptr< ns3::EnergySource > > >', 
                    [], 
                    is_const=True)
-    ## radio-energy-model.h: double ns3::RadioEnergyModel::GetRxPowerW() const [member function]
-    cls.add_method('GetRxPowerW', 
-                   'double', 
+    ## energy-source-container.h: __gnu_cxx::__normal_iterator<const ns3::Ptr<ns3::EnergySource>*,std::vector<ns3::Ptr<ns3::EnergySource>, std::allocator<ns3::Ptr<ns3::EnergySource> > > > ns3::EnergySourceContainer::End() const [member function]
+    cls.add_method('End', 
+                   '__gnu_cxx::__normal_iterator< ns3::Ptr< ns3::EnergySource > const, std::vector< ns3::Ptr< ns3::EnergySource > > >', 
                    [], 
                    is_const=True)
-    ## radio-energy-model.h: double ns3::RadioEnergyModel::GetSleepPowerW() const [member function]
-    cls.add_method('GetSleepPowerW', 
-                   'double', 
+    ## energy-source-container.h: ns3::Ptr<ns3::EnergySource> ns3::EnergySourceContainer::Get(uint32_t i) const [member function]
+    cls.add_method('Get', 
+                   'ns3::Ptr< ns3::EnergySource >', 
+                   [param('uint32_t', 'i')], 
+                   is_const=True)
+    ## energy-source-container.h: uint32_t ns3::EnergySourceContainer::GetN() const [member function]
+    cls.add_method('GetN', 
+                   'uint32_t', 
                    [], 
                    is_const=True)
-    ## radio-energy-model.h: double ns3::RadioEnergyModel::GetTxPowerW() const [member function]
-    cls.add_method('GetTxPowerW', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## radio-energy-model.h: static ns3::TypeId ns3::RadioEnergyModel::GetTypeId() [member function]
+    ## energy-source-container.h: static ns3::TypeId ns3::EnergySourceContainer::GetTypeId() [member function]
     cls.add_method('GetTypeId', 
                    'ns3::TypeId', 
                    [], 
                    is_static=True)
-    ## radio-energy-model.h: void ns3::RadioEnergyModel::SetIdlePowerW(double idlePowerW) [member function]
-    cls.add_method('SetIdlePowerW', 
-                   'void', 
-                   [param('double', 'idlePowerW')])
-    ## radio-energy-model.h: void ns3::RadioEnergyModel::SetRxPowerW(double rxPowerW) [member function]
-    cls.add_method('SetRxPowerW', 
-                   'void', 
-                   [param('double', 'rxPowerW')])
-    ## radio-energy-model.h: void ns3::RadioEnergyModel::SetSleepPowerW(double sleepPowerW) [member function]
-    cls.add_method('SetSleepPowerW', 
-                   'void', 
-                   [param('double', 'sleepPowerW')])
-    ## radio-energy-model.h: void ns3::RadioEnergyModel::SetTxPowerW(double txPowerW) [member function]
-    cls.add_method('SetTxPowerW', 
-                   'void', 
-                   [param('double', 'txPowerW')])
-    ## radio-energy-model.h: void ns3::RadioEnergyModel::UpdateRemainingEnergy(ns3::RadioEnergyModel::RadioState const destState) [member function]
-    cls.add_method('UpdateRemainingEnergy', 
-                   'void', 
-                   [param('ns3::RadioEnergyModel::RadioState const', 'destState')])
-    ## radio-energy-model.h: double ns3::RadioEnergyModel::DoGetIdlePowerW() const [member function]
-    cls.add_method('DoGetIdlePowerW', 
-                   'double', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
-    ## radio-energy-model.h: double ns3::RadioEnergyModel::DoGetRxPowerW() const [member function]
-    cls.add_method('DoGetRxPowerW', 
-                   'double', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
-    ## radio-energy-model.h: double ns3::RadioEnergyModel::DoGetSleepPowerW() const [member function]
-    cls.add_method('DoGetSleepPowerW', 
-                   'double', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
-    ## radio-energy-model.h: double ns3::RadioEnergyModel::DoGetTxPowerW() const [member function]
-    cls.add_method('DoGetTxPowerW', 
-                   'double', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
-    ## radio-energy-model.h: void ns3::RadioEnergyModel::DoSetIdlePowerW(double idlePowerW) [member function]
-    cls.add_method('DoSetIdlePowerW', 
-                   'void', 
-                   [param('double', 'idlePowerW')], 
-                   is_pure_virtual=True, visibility='private', is_virtual=True)
-    ## radio-energy-model.h: void ns3::RadioEnergyModel::DoSetRxPowerW(double rxPowerW) [member function]
-    cls.add_method('DoSetRxPowerW', 
-                   'void', 
-                   [param('double', 'rxPowerW')], 
-                   is_pure_virtual=True, visibility='private', is_virtual=True)
-    ## radio-energy-model.h: void ns3::RadioEnergyModel::DoSetSleepPowerW(double sleepPowerW) [member function]
-    cls.add_method('DoSetSleepPowerW', 
-                   'void', 
-                   [param('double', 'sleepPowerW')], 
-                   is_pure_virtual=True, visibility='private', is_virtual=True)
-    ## radio-energy-model.h: void ns3::RadioEnergyModel::DoSetTxPowerW(double txPowerW) [member function]
-    cls.add_method('DoSetTxPowerW', 
-                   'void', 
-                   [param('double', 'txPowerW')], 
-                   is_pure_virtual=True, visibility='private', is_virtual=True)
-    ## radio-energy-model.h: void ns3::RadioEnergyModel::DoUpdateRemainingEnergy(ns3::RadioEnergyModel::RadioState const destState) [member function]
-    cls.add_method('DoUpdateRemainingEnergy', 
-                   'void', 
-                   [param('ns3::RadioEnergyModel::RadioState const', 'destState')], 
-                   is_pure_virtual=True, visibility='private', is_virtual=True)
+    ## energy-source-container.h: void ns3::EnergySourceContainer::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
+    ## energy-source-container.h: void ns3::EnergySourceContainer::DoStart() [member function]
+    cls.add_method('DoStart', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
     return
 
 def register_Ns3UanChannel_methods(root_module, cls):
@@ -4031,138 +4020,174 @@
                    visibility='private', is_virtual=True)
     return
 
+def register_Ns3WifiRadioEnergyModel_methods(root_module, cls):
+    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModel::WifiRadioEnergyModel(ns3::WifiRadioEnergyModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::WifiRadioEnergyModel const &', 'arg0')])
+    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModel::WifiRadioEnergyModel() [constructor]
+    cls.add_constructor([])
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::ChangeState(int newState) [member function]
+    cls.add_method('ChangeState', 
+                   'void', 
+                   [param('int', 'newState')], 
+                   is_virtual=True)
+    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModel::WifiRadioState ns3::WifiRadioEnergyModel::GetCurrentState() const [member function]
+    cls.add_method('GetCurrentState', 
+                   'ns3::WifiRadioEnergyModel::WifiRadioState', 
+                   [], 
+                   is_const=True)
+    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::GetIdleCurrentA() const [member function]
+    cls.add_method('GetIdleCurrentA', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## wifi-radio-energy-model.h: ns3::Ptr<ns3::Node> ns3::WifiRadioEnergyModel::GetNode() const [member function]
+    cls.add_method('GetNode', 
+                   'ns3::Ptr< ns3::Node >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::GetRxCurrentA() const [member function]
+    cls.add_method('GetRxCurrentA', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::GetSleepCurrentA() const [member function]
+    cls.add_method('GetSleepCurrentA', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::GetTotalEnergyConsumption() const [member function]
+    cls.add_method('GetTotalEnergyConsumption', 
+                   'double', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::GetTxCurrentA() const [member function]
+    cls.add_method('GetTxCurrentA', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## wifi-radio-energy-model.h: static ns3::TypeId ns3::WifiRadioEnergyModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::HandleEnergyDepletion() [member function]
+    cls.add_method('HandleEnergyDepletion', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetEnergyDepletionCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
+    cls.add_method('SetEnergyDepletionCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')])
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetEnergySource(ns3::Ptr<ns3::EnergySource> source) [member function]
+    cls.add_method('SetEnergySource', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::EnergySource >', 'source')], 
+                   is_virtual=True)
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetIdleCurrentA(double idleCurrentA) [member function]
+    cls.add_method('SetIdleCurrentA', 
+                   'void', 
+                   [param('double', 'idleCurrentA')])
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetNode(ns3::Ptr<ns3::Node> node) [member function]
+    cls.add_method('SetNode', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_virtual=True)
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetRxCurrentA(double rxCurrentA) [member function]
+    cls.add_method('SetRxCurrentA', 
+                   'void', 
+                   [param('double', 'rxCurrentA')])
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetSleepCurrentA(double sleepCurrentA) [member function]
+    cls.add_method('SetSleepCurrentA', 
+                   'void', 
+                   [param('double', 'sleepCurrentA')])
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetTxCurrentA(double txCurrentA) [member function]
+    cls.add_method('SetTxCurrentA', 
+                   'void', 
+                   [param('double', 'txCurrentA')])
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
+    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::DoGetCurrentA() const [member function]
+    cls.add_method('DoGetCurrentA', 
+                   'double', 
+                   [], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
 def register_Ns3BasicEnergySource_methods(root_module, cls):
     ## basic-energy-source.h: ns3::BasicEnergySource::BasicEnergySource(ns3::BasicEnergySource const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::BasicEnergySource const &', 'arg0')])
     ## basic-energy-source.h: ns3::BasicEnergySource::BasicEnergySource() [constructor]
     cls.add_constructor([])
+    ## basic-energy-source.h: void ns3::BasicEnergySource::DecreaseRemainingEnergy(double energyJ) [member function]
+    cls.add_method('DecreaseRemainingEnergy', 
+                   'void', 
+                   [param('double', 'energyJ')], 
+                   is_virtual=True)
+    ## basic-energy-source.h: double ns3::BasicEnergySource::GetEnergyFraction() [member function]
+    cls.add_method('GetEnergyFraction', 
+                   'double', 
+                   [], 
+                   is_virtual=True)
+    ## basic-energy-source.h: ns3::Time ns3::BasicEnergySource::GetEnergyUpdateInterval() const [member function]
+    cls.add_method('GetEnergyUpdateInterval', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## basic-energy-source.h: double ns3::BasicEnergySource::GetInitialEnergy() const [member function]
+    cls.add_method('GetInitialEnergy', 
+                   'double', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## basic-energy-source.h: double ns3::BasicEnergySource::GetRemainingEnergy() [member function]
+    cls.add_method('GetRemainingEnergy', 
+                   'double', 
+                   [], 
+                   is_virtual=True)
+    ## basic-energy-source.h: double ns3::BasicEnergySource::GetSupplyVoltage() const [member function]
+    cls.add_method('GetSupplyVoltage', 
+                   'double', 
+                   [], 
+                   is_const=True, is_virtual=True)
     ## basic-energy-source.h: static ns3::TypeId ns3::BasicEnergySource::GetTypeId() [member function]
     cls.add_method('GetTypeId', 
                    'ns3::TypeId', 
                    [], 
                    is_static=True)
+    ## basic-energy-source.h: void ns3::BasicEnergySource::IncreaseRemainingEnergy(double energyJ) [member function]
+    cls.add_method('IncreaseRemainingEnergy', 
+                   'void', 
+                   [param('double', 'energyJ')], 
+                   is_virtual=True)
+    ## basic-energy-source.h: void ns3::BasicEnergySource::SetEnergyUpdateInterval(ns3::Time interval) [member function]
+    cls.add_method('SetEnergyUpdateInterval', 
+                   'void', 
+                   [param('ns3::Time', 'interval')])
     ## basic-energy-source.h: void ns3::BasicEnergySource::SetInitialEnergy(double initialEnergyJ) [member function]
     cls.add_method('SetInitialEnergy', 
                    'void', 
                    [param('double', 'initialEnergyJ')])
-    ## basic-energy-source.h: void ns3::BasicEnergySource::DoDecreaseRemainingEnergy(double energyJ) [member function]
-    cls.add_method('DoDecreaseRemainingEnergy', 
-                   'void', 
-                   [param('double', 'energyJ')], 
-                   visibility='private', is_virtual=True)
+    ## basic-energy-source.h: void ns3::BasicEnergySource::SetSupplyVoltage(double supplyVoltageV) [member function]
+    cls.add_method('SetSupplyVoltage', 
+                   'void', 
+                   [param('double', 'supplyVoltageV')])
+    ## basic-energy-source.h: void ns3::BasicEnergySource::UpdateEnergySource() [member function]
+    cls.add_method('UpdateEnergySource', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
     ## basic-energy-source.h: void ns3::BasicEnergySource::DoDispose() [member function]
     cls.add_method('DoDispose', 
                    'void', 
                    [], 
                    visibility='private', is_virtual=True)
-    ## basic-energy-source.h: double ns3::BasicEnergySource::DoGetEnergyFraction() const [member function]
-    cls.add_method('DoGetEnergyFraction', 
-                   'double', 
-                   [], 
-                   is_const=True, visibility='private', is_virtual=True)
-    ## basic-energy-source.h: double ns3::BasicEnergySource::DoGetInitialEnergy() const [member function]
-    cls.add_method('DoGetInitialEnergy', 
-                   'double', 
-                   [], 
-                   is_const=True, visibility='private', is_virtual=True)
-    ## basic-energy-source.h: double ns3::BasicEnergySource::DoGetRemainingEnergy() const [member function]
-    cls.add_method('DoGetRemainingEnergy', 
-                   'double', 
-                   [], 
-                   is_const=True, visibility='private', is_virtual=True)
-    ## basic-energy-source.h: void ns3::BasicEnergySource::DoIncreaseRemainingEnergy(double energyJ) [member function]
-    cls.add_method('DoIncreaseRemainingEnergy', 
-                   'void', 
-                   [param('double', 'energyJ')], 
-                   visibility='private', is_virtual=True)
-    return
-
-def register_Ns3BasicRadioEnergyModel_methods(root_module, cls):
-    ## basic-radio-energy-model.h: ns3::BasicRadioEnergyModel::BasicRadioEnergyModel(ns3::BasicRadioEnergyModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::BasicRadioEnergyModel const &', 'arg0')])
-    ## basic-radio-energy-model.h: ns3::BasicRadioEnergyModel::BasicRadioEnergyModel() [constructor]
-    cls.add_constructor([])
-    ## basic-radio-energy-model.h: ns3::RadioEnergyModel::RadioState ns3::BasicRadioEnergyModel::GetCurrentState() const [member function]
-    cls.add_method('GetCurrentState', 
-                   'ns3::RadioEnergyModel::RadioState', 
-                   [], 
-                   is_const=True)
-    ## basic-radio-energy-model.h: ns3::Time ns3::BasicRadioEnergyModel::GetEnergyUpdateInterval() const [member function]
-    cls.add_method('GetEnergyUpdateInterval', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## basic-radio-energy-model.h: static ns3::TypeId ns3::BasicRadioEnergyModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## basic-radio-energy-model.h: bool ns3::BasicRadioEnergyModel::IsStateTransitionValid(ns3::RadioEnergyModel::RadioState const destState) [member function]
-    cls.add_method('IsStateTransitionValid', 
-                   'bool', 
-                   [param('ns3::RadioEnergyModel::RadioState const', 'destState')])
-    ## basic-radio-energy-model.h: void ns3::BasicRadioEnergyModel::SetEnergyDepletionCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
-    cls.add_method('SetEnergyDepletionCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')])
-    ## basic-radio-energy-model.h: void ns3::BasicRadioEnergyModel::SetEnergyUpdateInterval(ns3::Time const interval) [member function]
-    cls.add_method('SetEnergyUpdateInterval', 
-                   'void', 
-                   [param('ns3::Time const', 'interval')])
-    ## basic-radio-energy-model.h: void ns3::BasicRadioEnergyModel::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    ## basic-radio-energy-model.h: double ns3::BasicRadioEnergyModel::DoGetIdlePowerW() const [member function]
-    cls.add_method('DoGetIdlePowerW', 
-                   'double', 
-                   [], 
-                   is_const=True, visibility='private', is_virtual=True)
-    ## basic-radio-energy-model.h: double ns3::BasicRadioEnergyModel::DoGetRxPowerW() const [member function]
-    cls.add_method('DoGetRxPowerW', 
-                   'double', 
-                   [], 
-                   is_const=True, visibility='private', is_virtual=True)
-    ## basic-radio-energy-model.h: double ns3::BasicRadioEnergyModel::DoGetSleepPowerW() const [member function]
-    cls.add_method('DoGetSleepPowerW', 
-                   'double', 
-                   [], 
-                   is_const=True, visibility='private', is_virtual=True)
-    ## basic-radio-energy-model.h: double ns3::BasicRadioEnergyModel::DoGetTxPowerW() const [member function]
-    cls.add_method('DoGetTxPowerW', 
-                   'double', 
-                   [], 
-                   is_const=True, visibility='private', is_virtual=True)
-    ## basic-radio-energy-model.h: void ns3::BasicRadioEnergyModel::DoHandleEnergyDepletion() [member function]
-    cls.add_method('DoHandleEnergyDepletion', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    ## basic-radio-energy-model.h: void ns3::BasicRadioEnergyModel::DoSetIdlePowerW(double idlePowerW) [member function]
-    cls.add_method('DoSetIdlePowerW', 
-                   'void', 
-                   [param('double', 'idlePowerW')], 
-                   visibility='private', is_virtual=True)
-    ## basic-radio-energy-model.h: void ns3::BasicRadioEnergyModel::DoSetRxPowerW(double rxPowerW) [member function]
-    cls.add_method('DoSetRxPowerW', 
-                   'void', 
-                   [param('double', 'rxPowerW')], 
-                   visibility='private', is_virtual=True)
-    ## basic-radio-energy-model.h: void ns3::BasicRadioEnergyModel::DoSetSleepPowerW(double sleepPowerW) [member function]
-    cls.add_method('DoSetSleepPowerW', 
-                   'void', 
-                   [param('double', 'sleepPowerW')], 
-                   visibility='private', is_virtual=True)
-    ## basic-radio-energy-model.h: void ns3::BasicRadioEnergyModel::DoSetTxPowerW(double txPowerW) [member function]
-    cls.add_method('DoSetTxPowerW', 
-                   'void', 
-                   [param('double', 'txPowerW')], 
-                   visibility='private', is_virtual=True)
-    ## basic-radio-energy-model.h: void ns3::BasicRadioEnergyModel::DoUpdateRemainingEnergy(ns3::RadioEnergyModel::RadioState const destState) [member function]
-    cls.add_method('DoUpdateRemainingEnergy', 
-                   'void', 
-                   [param('ns3::RadioEnergyModel::RadioState const', 'destState')], 
+    ## basic-energy-source.h: void ns3::BasicEnergySource::DoStart() [member function]
+    cls.add_method('DoStart', 
+                   'void', 
+                   [], 
                    visibility='private', is_virtual=True)
     return