Make Python examples use new modular bindings
authorMitch Watrous <watrous@u.washington.edu>
Fri, 29 Apr 2011 16:59:33 -0700
changeset 7101 cbdd99081786
parent 7100 c3796788794a
child 7102 e51a52cb627a
Make Python examples use new modular bindings
examples/routing/simple-routing-ping6.py
examples/routing/wscript
examples/tutorial/first.py
examples/tutorial/wscript
examples/wireless/wifi-ap.py
examples/wireless/wscript
src/config-store/bindings/modulegen__gcc_ILP32.py
src/config-store/bindings/modulegen__gcc_LP64.py
src/lte/bindings/modulegen__gcc_ILP32.py
src/lte/bindings/modulegen__gcc_LP64.py
src/network/bindings/modulegen__gcc_ILP32.py
src/network/bindings/modulegen__gcc_LP64.py
src/spectrum/bindings/modulegen__gcc_ILP32.py
src/spectrum/bindings/modulegen__gcc_LP64.py
--- a/examples/routing/simple-routing-ping6.py	Fri Apr 29 12:10:45 2011 -0700
+++ b/examples/routing/simple-routing-ping6.py	Fri Apr 29 16:59:33 2011 -0700
@@ -27,49 +27,53 @@
 #                router
 #
 
-import ns3;
+from ns.applications import *
+from ns.core import *
+from ns.csma import *
+from ns.internet import *
+from ns.network import *
 
 def main(argv):
 
-    cmd = ns3.CommandLine();
+    cmd = CommandLine();
 
     cmd.Parse(argv);
 
     # Create nodes
     print "Create nodes"
-    n0 = ns3.Node();
-    r = ns3.Node();
-    n1 = ns3.Node();
+    n0 = Node();
+    r = Node();
+    n1 = Node();
 
-    net1 = ns3.NodeContainer();
+    net1 = NodeContainer();
     net1.Add(n0);
     net1.Add(r);
-    net2 = ns3.NodeContainer();
+    net2 = NodeContainer();
     net2.Add(r);
     net2.Add(n1);
-    all = ns3.NodeContainer();
+    all = NodeContainer();
     all.Add(n0);
     all.Add(r);
     all.Add(n1);
 
     # Create IPv6 Internet Stack
-    internetv6 = ns3.InternetStackHelper();
+    internetv6 = InternetStackHelper();
     internetv6.Install(all);
 
     # Create channels
-    csma = ns3.CsmaHelper();
-    csma.SetChannelAttribute("DataRate", ns3.DataRateValue(ns3.DataRate(5000000)));
-    csma.SetChannelAttribute("Delay", ns3.TimeValue(ns3.MilliSeconds(2)));
+    csma = CsmaHelper();
+    csma.SetChannelAttribute("DataRate", DataRateValue(DataRate(5000000)));
+    csma.SetChannelAttribute("Delay", TimeValue(MilliSeconds(2)));
     d1 = csma.Install(net1);
     d2 = csma.Install(net2);
 
     # Create networks and assign IPv6 Addresses
     print "Addressing"
-    ipv6 = ns3.Ipv6AddressHelper();
-    ipv6.NewNetwork(ns3.Ipv6Address("2001:1::"), ns3.Ipv6Prefix(64));
+    ipv6 = Ipv6AddressHelper();
+    ipv6.NewNetwork(Ipv6Address("2001:1::"), Ipv6Prefix(64));
     i1 = ipv6.Assign(d1);
     i1.SetRouter(1, True);
-    ipv6.NewNetwork(ns3.Ipv6Address("2001:2::"), ns3.Ipv6Prefix(64));
+    ipv6.NewNetwork(Ipv6Address("2001:2::"), Ipv6Prefix(64));
     i2 = ipv6.Assign(d2);
     i2.SetRouter(0, True);
 
@@ -77,28 +81,28 @@
     print "Application"
     packetSize = 1024;
     maxPacketCount = 5;
-    interPacketInterval = ns3.Seconds(1.);
-    ping6 = ns3.Ping6Helper();
+    interPacketInterval = Seconds(1.);
+    ping6 = Ping6Helper();
 
     ping6.SetLocal(i1.GetAddress(0, 1));
     ping6.SetRemote(i2.GetAddress(1, 1)); 
 
-    ping6.SetAttribute("MaxPackets", ns3.UintegerValue(maxPacketCount));
-    ping6.SetAttribute("Interval", ns3.TimeValue(interPacketInterval));
-    ping6.SetAttribute("PacketSize", ns3.UintegerValue(packetSize));
+    ping6.SetAttribute("MaxPackets", UintegerValue(maxPacketCount));
+    ping6.SetAttribute("Interval", TimeValue(interPacketInterval));
+    ping6.SetAttribute("PacketSize", UintegerValue(packetSize));
 
-    apps = ping6.Install(ns3.NodeContainer(net1.Get(0)));
-    apps.Start(ns3.Seconds(2.0));
-    apps.Stop(ns3.Seconds(20.0));
+    apps = ping6.Install(NodeContainer(net1.Get(0)));
+    apps.Start(Seconds(2.0));
+    apps.Stop(Seconds(20.0));
 
     print "Tracing"
-    ascii = ns3.AsciiTraceHelper()
+    ascii = AsciiTraceHelper()
     csma.EnableAsciiAll(ascii.CreateFileStream("simple-routing-ping6.tr"))
     csma.EnablePcapAll("simple-routing-ping6", True)
 
     # Run Simulation     
-    ns3.Simulator.Run()
-    ns3.Simulator.Destroy()
+    Simulator.Run()
+    Simulator.Destroy()
 
 if __name__ == '__main__':
     import sys
--- a/examples/routing/wscript	Fri Apr 29 12:10:45 2011 -0700
+++ b/examples/routing/wscript	Fri Apr 29 16:59:33 2011 -0700
@@ -33,4 +33,4 @@
       ['csma', 'internet'])
     obj.source = 'simple-routing-ping6.cc'
 
-    bld.register_ns3_script('simple-routing-ping6.py', ['csma', 'internet', 'applications', 'tools', 'config-store', 'mobility', 'wifi', 'olsr'])
+    bld.register_ns3_script('simple-routing-ping6.py', ['csma', 'internet', 'applications'])
--- a/examples/tutorial/first.py	Fri Apr 29 12:10:45 2011 -0700
+++ b/examples/tutorial/first.py	Fri Apr 29 16:59:33 2011 -0700
@@ -13,43 +13,47 @@
 #  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 #  */
 
-import ns3
+from ns.applications import *
+from ns.core import *
+from ns.internet import *
+from ns.network import *
+from ns.point_to_point import *
 
-ns3.LogComponentEnable("UdpEchoClientApplication", ns3.LOG_LEVEL_INFO)
-ns3.LogComponentEnable("UdpEchoServerApplication", ns3.LOG_LEVEL_INFO)
+LogComponentEnable("UdpEchoClientApplication", LOG_LEVEL_INFO)
+LogComponentEnable("UdpEchoServerApplication", LOG_LEVEL_INFO)
 
-nodes = ns3.NodeContainer()
+nodes = NodeContainer()
 nodes.Create(2)
 
-pointToPoint = ns3.PointToPointHelper()
-pointToPoint.SetDeviceAttribute("DataRate", ns3.StringValue("5Mbps"))
-pointToPoint.SetChannelAttribute("Delay", ns3.StringValue("2ms"))
+pointToPoint = PointToPointHelper()
+pointToPoint.SetDeviceAttribute("DataRate", StringValue("5Mbps"))
+pointToPoint.SetChannelAttribute("Delay", StringValue("2ms"))
 
 devices = pointToPoint.Install(nodes)
 
-stack = ns3.InternetStackHelper()
+stack = InternetStackHelper()
 stack.Install(nodes)
 
-address = ns3.Ipv4AddressHelper()
-address.SetBase(ns3.Ipv4Address("10.1.1.0"), ns3.Ipv4Mask("255.255.255.0"))
+address = Ipv4AddressHelper()
+address.SetBase(Ipv4Address("10.1.1.0"), Ipv4Mask("255.255.255.0"))
 
 interfaces = address.Assign (devices);
 
-echoServer = ns3.UdpEchoServerHelper(9)
+echoServer = UdpEchoServerHelper(9)
 
 serverApps = echoServer.Install(nodes.Get(1))
-serverApps.Start(ns3.Seconds(1.0))
-serverApps.Stop(ns3.Seconds(10.0))
+serverApps.Start(Seconds(1.0))
+serverApps.Stop(Seconds(10.0))
 
-echoClient = ns3.UdpEchoClientHelper(interfaces.GetAddress(1), 9)
-echoClient.SetAttribute("MaxPackets", ns3.UintegerValue(1))
-echoClient.SetAttribute("Interval", ns3.TimeValue(ns3.Seconds (1.0)))
-echoClient.SetAttribute("PacketSize", ns3.UintegerValue(1024))
+echoClient = UdpEchoClientHelper(interfaces.GetAddress(1), 9)
+echoClient.SetAttribute("MaxPackets", UintegerValue(1))
+echoClient.SetAttribute("Interval", TimeValue(Seconds (1.0)))
+echoClient.SetAttribute("PacketSize", UintegerValue(1024))
 
 clientApps = echoClient.Install(nodes.Get(0))
-clientApps.Start(ns3.Seconds(2.0))
-clientApps.Stop(ns3.Seconds(10.0))
+clientApps.Start(Seconds(2.0))
+clientApps.Stop(Seconds(10.0))
 
-ns3.Simulator.Run()
-ns3.Simulator.Destroy()
+Simulator.Run()
+Simulator.Destroy()
 
--- a/examples/tutorial/wscript	Fri Apr 29 12:10:45 2011 -0700
+++ b/examples/tutorial/wscript	Fri Apr 29 16:59:33 2011 -0700
@@ -7,7 +7,7 @@
     obj = bld.create_ns3_program('first', ['core', 'point-to-point', 'internet', 'applications'])
     obj.source = 'first.cc'
 
-    bld.register_ns3_script('first.py', ['internet', 'point-to-point', 'applications', 'tools', 'config-store', 'csma', 'mobility', 'wifi'])
+    bld.register_ns3_script('first.py', ['internet', 'point-to-point', 'applications'])
         
     obj = bld.create_ns3_program('second', ['core', 'point-to-point', 'csma', 'internet', 'applications'])
     obj.source = 'second.cc'
--- a/examples/wireless/wifi-ap.py	Fri Apr 29 12:10:45 2011 -0700
+++ b/examples/wireless/wifi-ap.py	Fri Apr 29 16:59:33 2011 -0700
@@ -21,7 +21,15 @@
 #  */
 
 import sys
-import ns3
+
+from ns.applications import *
+from ns.core import *
+from ns.internet import *
+from ns.mobility import *
+from ns.network import *
+from ns.point_to_point import *
+from ns.wifi import *
+
 
 # void
 # DevTxTrace (std::string context, Ptr<const Packet> p, Mac48Address address)
@@ -70,12 +78,12 @@
 # }
 
 def SetPosition(node, position):
-    mobility = node.GetObject(ns3.MobilityModel.GetTypeId())
+    mobility = node.GetObject(MobilityModel.GetTypeId())
     mobility.SetPosition(position)
 
 
 def GetPosition(node):
-    mobility = node.GetObject(ns3.MobilityModel.GetTypeId())
+    mobility = node.GetObject(MobilityModel.GetTypeId())
     return mobility.GetPosition()
 
 def AdvancePosition(node):
@@ -84,23 +92,23 @@
     if pos.x >= 210.0:
       return
     SetPosition(node, pos)
-    ns3.Simulator.Schedule(ns3.Seconds(1.0), AdvancePosition, node)
+    Simulator.Schedule(Seconds(1.0), AdvancePosition, node)
 
 
 def main(argv):
-    ns3.Packet.EnablePrinting();
+    Packet.EnablePrinting();
 
     # enable rts cts all the time.
-    ns3.Config.SetDefault("ns3::WifiRemoteStationManager::RtsCtsThreshold", ns3.StringValue("0"))
+    Config.SetDefault("ns3::WifiRemoteStationManager::RtsCtsThreshold", StringValue("0"))
     # disable fragmentation
-    ns3.Config.SetDefault("ns3::WifiRemoteStationManager::FragmentationThreshold", ns3.StringValue("2200"))
+    Config.SetDefault("ns3::WifiRemoteStationManager::FragmentationThreshold", StringValue("2200"))
 
-    wifi = ns3.WifiHelper.Default()
-    mobility = ns3.MobilityHelper()
-    stas = ns3.NodeContainer()
-    ap = ns3.NodeContainer()
+    wifi = WifiHelper.Default()
+    mobility = MobilityHelper()
+    stas = NodeContainer()
+    ap = NodeContainer()
     #NetDeviceContainer staDevs;
-    packetSocket = ns3.PacketSocketHelper()
+    packetSocket = PacketSocketHelper()
 
     stas.Create(2)
     ap.Create(1)
@@ -109,46 +117,46 @@
     packetSocket.Install(stas)
     packetSocket.Install(ap)
 
-    wifiPhy = ns3.YansWifiPhyHelper.Default()
-    wifiChannel = ns3.YansWifiChannelHelper.Default()
+    wifiPhy = YansWifiPhyHelper.Default()
+    wifiChannel = YansWifiChannelHelper.Default()
     wifiPhy.SetChannel(wifiChannel.Create())
 
-    ssid = ns3.Ssid("wifi-default")
+    ssid = Ssid("wifi-default")
     wifi.SetRemoteStationManager("ns3::ArfWifiManager")
-    wifiMac = ns3.NqosWifiMacHelper.Default()
+    wifiMac = NqosWifiMacHelper.Default()
 
     # setup stas.
     wifiMac.SetType("ns3::StaWifiMac",
-                    "Ssid", ns3.SsidValue(ssid),
-                    "ActiveProbing", ns3.BooleanValue(False))
+                    "Ssid", SsidValue(ssid),
+                    "ActiveProbing", BooleanValue(False))
     staDevs = wifi.Install(wifiPhy, wifiMac, stas)
     # setup ap.
     wifiMac.SetType("ns3::ApWifiMac",
-                    "Ssid", ns3.SsidValue(ssid),
-                    "BeaconGeneration", ns3.BooleanValue(True),
-                    "BeaconInterval", ns3.TimeValue(ns3.Seconds(2.5)))
+                    "Ssid", SsidValue(ssid),
+                    "BeaconGeneration", BooleanValue(True),
+                    "BeaconInterval", TimeValue(Seconds(2.5)))
     wifi.Install(wifiPhy, wifiMac, ap)
 
     # mobility.
     mobility.Install(stas)
     mobility.Install(ap)
 
-    ns3.Simulator.Schedule(ns3.Seconds(1.0), AdvancePosition, ap.Get(0))
+    Simulator.Schedule(Seconds(1.0), AdvancePosition, ap.Get(0))
 
-    socket = ns3.PacketSocketAddress()
+    socket = PacketSocketAddress()
     socket.SetSingleDevice(staDevs.Get(0).GetIfIndex())
     socket.SetPhysicalAddress(staDevs.Get(1).GetAddress())
     socket.SetProtocol(1)
 
-    onoff = ns3.OnOffHelper("ns3::PacketSocketFactory", ns3.Address(socket))
-    onoff.SetAttribute("OnTime", ns3.RandomVariableValue(ns3.ConstantVariable(42)))
-    onoff.SetAttribute("OffTime", ns3.RandomVariableValue(ns3.ConstantVariable(0)))
+    onoff = OnOffHelper("ns3::PacketSocketFactory", Address(socket))
+    onoff.SetAttribute("OnTime", RandomVariableValue(ConstantVariable(42)))
+    onoff.SetAttribute("OffTime", RandomVariableValue(ConstantVariable(0)))
 
-    apps = onoff.Install(ns3.NodeContainer(stas.Get(0)))
-    apps.Start(ns3.Seconds(0.5))
-    apps.Stop(ns3.Seconds(43.0))
+    apps = onoff.Install(NodeContainer(stas.Get(0)))
+    apps.Start(Seconds(0.5))
+    apps.Stop(Seconds(43.0))
 
-    ns3.Simulator.Stop(ns3.Seconds(44.0))
+    Simulator.Stop(Seconds(44.0))
 
   #   Config::Connect("/NodeList/*/DeviceList/*/Tx", MakeCallback(&DevTxTrace));
   #   Config::Connect("/NodeList/*/DeviceList/*/Rx", MakeCallback(&DevRxTrace));
@@ -158,8 +166,8 @@
   #   Config::Connect("/NodeList/*/DeviceList/*/Phy/State", MakeCallback(&PhyStateTrace));
 
 
-    ns3.Simulator.Run()
-    ns3.Simulator.Destroy()
+    Simulator.Run()
+    Simulator.Destroy()
 
     return 0
 
--- a/examples/wireless/wscript	Fri Apr 29 12:10:45 2011 -0700
+++ b/examples/wireless/wscript	Fri Apr 29 16:59:33 2011 -0700
@@ -17,7 +17,7 @@
     obj = bld.create_ns3_program('wifi-ap', ['core', 'mobility', 'wifi', 'applications', 'config-store', 'tools'])
     obj.source = 'wifi-ap.cc'
 
-    bld.register_ns3_script('wifi-ap.py', ['internet', 'mobility', 'wifi', 'applications', 'config-store', 'tools', 'csma', 'point-to-point'])
+    bld.register_ns3_script('wifi-ap.py', ['internet', 'mobility', 'wifi', 'applications', 'point-to-point'])
 
     obj = bld.create_ns3_program('wifi-wired-bridging', ['internet', 'mobility', 'wifi', 'csma', 'bridge', 'applications'])
     obj.source = 'wifi-wired-bridging.cc'
--- a/src/config-store/bindings/modulegen__gcc_ILP32.py	Fri Apr 29 12:10:45 2011 -0700
+++ b/src/config-store/bindings/modulegen__gcc_ILP32.py	Fri Apr 29 16:59:33 2011 -0700
@@ -24,6 +24,8 @@
     module.add_class('CallbackBase', import_from_module='ns.core')
     ## file-config.h (module 'config-store'): ns3::FileConfig [class]
     module.add_class('FileConfig', allow_subclassing=True)
+    ## gtk-config-store.h (module 'config-store'): ns3::GtkConfigStore [class]
+    module.add_class('GtkConfigStore')
     ## file-config.h (module 'config-store'): ns3::NoneFileConfig [class]
     module.add_class('NoneFileConfig', parent=root_module['ns3::FileConfig'])
     ## object-base.h (module 'core'): ns3::ObjectBase [class]
@@ -82,6 +84,7 @@
 def register_methods(root_module):
     register_Ns3CallbackBase_methods(root_module, root_module['ns3::CallbackBase'])
     register_Ns3FileConfig_methods(root_module, root_module['ns3::FileConfig'])
+    register_Ns3GtkConfigStore_methods(root_module, root_module['ns3::GtkConfigStore'])
     register_Ns3NoneFileConfig_methods(root_module, root_module['ns3::NoneFileConfig'])
     register_Ns3ObjectBase_methods(root_module, root_module['ns3::ObjectBase'])
     register_Ns3TypeId_methods(root_module, root_module['ns3::TypeId'])
@@ -150,6 +153,21 @@
                    is_pure_virtual=True, is_virtual=True)
     return
 
+def register_Ns3GtkConfigStore_methods(root_module, cls):
+    ## gtk-config-store.h (module 'config-store'): ns3::GtkConfigStore::GtkConfigStore(ns3::GtkConfigStore const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::GtkConfigStore const &', 'arg0')])
+    ## gtk-config-store.h (module 'config-store'): ns3::GtkConfigStore::GtkConfigStore() [constructor]
+    cls.add_constructor([])
+    ## gtk-config-store.h (module 'config-store'): void ns3::GtkConfigStore::ConfigureAttributes() [member function]
+    cls.add_method('ConfigureAttributes', 
+                   'void', 
+                   [])
+    ## gtk-config-store.h (module 'config-store'): void ns3::GtkConfigStore::ConfigureDefaults() [member function]
+    cls.add_method('ConfigureDefaults', 
+                   'void', 
+                   [])
+    return
+
 def register_Ns3NoneFileConfig_methods(root_module, cls):
     ## file-config.h (module 'config-store'): ns3::NoneFileConfig::NoneFileConfig(ns3::NoneFileConfig const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::NoneFileConfig const &', 'arg0')])
--- a/src/config-store/bindings/modulegen__gcc_LP64.py	Fri Apr 29 12:10:45 2011 -0700
+++ b/src/config-store/bindings/modulegen__gcc_LP64.py	Fri Apr 29 16:59:33 2011 -0700
@@ -24,6 +24,8 @@
     module.add_class('CallbackBase', import_from_module='ns.core')
     ## file-config.h (module 'config-store'): ns3::FileConfig [class]
     module.add_class('FileConfig', allow_subclassing=True)
+    ## gtk-config-store.h (module 'config-store'): ns3::GtkConfigStore [class]
+    module.add_class('GtkConfigStore')
     ## file-config.h (module 'config-store'): ns3::NoneFileConfig [class]
     module.add_class('NoneFileConfig', parent=root_module['ns3::FileConfig'])
     ## object-base.h (module 'core'): ns3::ObjectBase [class]
@@ -82,6 +84,7 @@
 def register_methods(root_module):
     register_Ns3CallbackBase_methods(root_module, root_module['ns3::CallbackBase'])
     register_Ns3FileConfig_methods(root_module, root_module['ns3::FileConfig'])
+    register_Ns3GtkConfigStore_methods(root_module, root_module['ns3::GtkConfigStore'])
     register_Ns3NoneFileConfig_methods(root_module, root_module['ns3::NoneFileConfig'])
     register_Ns3ObjectBase_methods(root_module, root_module['ns3::ObjectBase'])
     register_Ns3TypeId_methods(root_module, root_module['ns3::TypeId'])
@@ -150,6 +153,21 @@
                    is_pure_virtual=True, is_virtual=True)
     return
 
+def register_Ns3GtkConfigStore_methods(root_module, cls):
+    ## gtk-config-store.h (module 'config-store'): ns3::GtkConfigStore::GtkConfigStore(ns3::GtkConfigStore const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::GtkConfigStore const &', 'arg0')])
+    ## gtk-config-store.h (module 'config-store'): ns3::GtkConfigStore::GtkConfigStore() [constructor]
+    cls.add_constructor([])
+    ## gtk-config-store.h (module 'config-store'): void ns3::GtkConfigStore::ConfigureAttributes() [member function]
+    cls.add_method('ConfigureAttributes', 
+                   'void', 
+                   [])
+    ## gtk-config-store.h (module 'config-store'): void ns3::GtkConfigStore::ConfigureDefaults() [member function]
+    cls.add_method('ConfigureDefaults', 
+                   'void', 
+                   [])
+    return
+
 def register_Ns3NoneFileConfig_methods(root_module, cls):
     ## file-config.h (module 'config-store'): ns3::NoneFileConfig::NoneFileConfig(ns3::NoneFileConfig const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::NoneFileConfig const &', 'arg0')])
--- a/src/lte/bindings/modulegen__gcc_ILP32.py	Fri Apr 29 12:10:45 2011 -0700
+++ b/src/lte/bindings/modulegen__gcc_ILP32.py	Fri Apr 29 16:59:33 2011 -0700
@@ -470,15 +470,15 @@
     typehandlers.add_type_alias('void ( * ) ( std::ostream & ) *', 'ns3::LogTimePrinter')
     typehandlers.add_type_alias('void ( * ) ( std::ostream & ) **', 'ns3::LogTimePrinter*')
     typehandlers.add_type_alias('void ( * ) ( std::ostream & ) *&', 'ns3::LogTimePrinter&')
+    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::GenericPhyTxStartCallback')
+    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::GenericPhyTxStartCallback*')
+    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::GenericPhyTxStartCallback&')
     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::GenericPhyRxEndErrorCallback')
     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::GenericPhyRxEndErrorCallback*')
     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::GenericPhyRxEndErrorCallback&')
     typehandlers.add_type_alias('std::vector< double, std::allocator< double > >', 'ns3::Values')
     typehandlers.add_type_alias('std::vector< double, std::allocator< double > >*', 'ns3::Values*')
     typehandlers.add_type_alias('std::vector< double, std::allocator< double > >&', 'ns3::Values&')
-    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::GenericPhyTxStartCallback')
-    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::GenericPhyTxStartCallback*')
-    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::GenericPhyTxStartCallback&')
     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::GenericPhyTxEndCallback')
     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::GenericPhyTxEndCallback*')
     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::GenericPhyTxEndCallback&')
--- a/src/lte/bindings/modulegen__gcc_LP64.py	Fri Apr 29 12:10:45 2011 -0700
+++ b/src/lte/bindings/modulegen__gcc_LP64.py	Fri Apr 29 16:59:33 2011 -0700
@@ -470,15 +470,15 @@
     typehandlers.add_type_alias('void ( * ) ( std::ostream & ) *', 'ns3::LogTimePrinter')
     typehandlers.add_type_alias('void ( * ) ( std::ostream & ) **', 'ns3::LogTimePrinter*')
     typehandlers.add_type_alias('void ( * ) ( std::ostream & ) *&', 'ns3::LogTimePrinter&')
+    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::GenericPhyTxStartCallback')
+    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::GenericPhyTxStartCallback*')
+    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::GenericPhyTxStartCallback&')
     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::GenericPhyRxEndErrorCallback')
     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::GenericPhyRxEndErrorCallback*')
     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::GenericPhyRxEndErrorCallback&')
     typehandlers.add_type_alias('std::vector< double, std::allocator< double > >', 'ns3::Values')
     typehandlers.add_type_alias('std::vector< double, std::allocator< double > >*', 'ns3::Values*')
     typehandlers.add_type_alias('std::vector< double, std::allocator< double > >&', 'ns3::Values&')
-    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::GenericPhyTxStartCallback')
-    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::GenericPhyTxStartCallback*')
-    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::GenericPhyTxStartCallback&')
     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::GenericPhyTxEndCallback')
     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::GenericPhyTxEndCallback*')
     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::GenericPhyTxEndCallback&')
--- a/src/network/bindings/modulegen__gcc_ILP32.py	Fri Apr 29 12:10:45 2011 -0700
+++ b/src/network/bindings/modulegen__gcc_ILP32.py	Fri Apr 29 16:59:33 2011 -0700
@@ -396,12 +396,12 @@
     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::GenericPhyRxStartCallback')
     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::GenericPhyRxStartCallback*')
     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::GenericPhyRxStartCallback&')
+    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::GenericPhyTxStartCallback')
+    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::GenericPhyTxStartCallback*')
+    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::GenericPhyTxStartCallback&')
     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::GenericPhyRxEndErrorCallback')
     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::GenericPhyRxEndErrorCallback*')
     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::GenericPhyRxEndErrorCallback&')
-    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::GenericPhyTxStartCallback')
-    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::GenericPhyTxStartCallback*')
-    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::GenericPhyTxStartCallback&')
     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::GenericPhyTxEndCallback')
     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::GenericPhyTxEndCallback*')
     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::GenericPhyTxEndCallback&')
--- a/src/network/bindings/modulegen__gcc_LP64.py	Fri Apr 29 12:10:45 2011 -0700
+++ b/src/network/bindings/modulegen__gcc_LP64.py	Fri Apr 29 16:59:33 2011 -0700
@@ -396,12 +396,12 @@
     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::GenericPhyRxStartCallback')
     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::GenericPhyRxStartCallback*')
     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::GenericPhyRxStartCallback&')
+    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::GenericPhyTxStartCallback')
+    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::GenericPhyTxStartCallback*')
+    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::GenericPhyTxStartCallback&')
     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::GenericPhyRxEndErrorCallback')
     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::GenericPhyRxEndErrorCallback*')
     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::GenericPhyRxEndErrorCallback&')
-    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::GenericPhyTxStartCallback')
-    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::GenericPhyTxStartCallback*')
-    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::GenericPhyTxStartCallback&')
     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::GenericPhyTxEndCallback')
     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::GenericPhyTxEndCallback*')
     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::GenericPhyTxEndCallback&')
--- a/src/spectrum/bindings/modulegen__gcc_ILP32.py	Fri Apr 29 12:10:45 2011 -0700
+++ b/src/spectrum/bindings/modulegen__gcc_ILP32.py	Fri Apr 29 16:59:33 2011 -0700
@@ -387,15 +387,15 @@
     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::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::GenericPhyTxStartCallback')
+    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::GenericPhyTxStartCallback*')
+    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::GenericPhyTxStartCallback&')
     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::GenericPhyRxEndErrorCallback')
     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::GenericPhyRxEndErrorCallback*')
     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::GenericPhyRxEndErrorCallback&')
     typehandlers.add_type_alias('std::vector< double, std::allocator< double > >', 'ns3::Values')
     typehandlers.add_type_alias('std::vector< double, std::allocator< double > >*', 'ns3::Values*')
     typehandlers.add_type_alias('std::vector< double, std::allocator< double > >&', 'ns3::Values&')
-    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::GenericPhyTxStartCallback')
-    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::GenericPhyTxStartCallback*')
-    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::GenericPhyTxStartCallback&')
     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::GenericPhyTxEndCallback')
     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::GenericPhyTxEndCallback*')
     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::GenericPhyTxEndCallback&')
--- a/src/spectrum/bindings/modulegen__gcc_LP64.py	Fri Apr 29 12:10:45 2011 -0700
+++ b/src/spectrum/bindings/modulegen__gcc_LP64.py	Fri Apr 29 16:59:33 2011 -0700
@@ -387,15 +387,15 @@
     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::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::GenericPhyTxStartCallback')
+    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::GenericPhyTxStartCallback*')
+    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::GenericPhyTxStartCallback&')
     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::GenericPhyRxEndErrorCallback')
     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::GenericPhyRxEndErrorCallback*')
     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::GenericPhyRxEndErrorCallback&')
     typehandlers.add_type_alias('std::vector< double, std::allocator< double > >', 'ns3::Values')
     typehandlers.add_type_alias('std::vector< double, std::allocator< double > >*', 'ns3::Values*')
     typehandlers.add_type_alias('std::vector< double, std::allocator< double > >&', 'ns3::Values&')
-    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::GenericPhyTxStartCallback')
-    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::GenericPhyTxStartCallback*')
-    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::GenericPhyTxStartCallback&')
     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::GenericPhyTxEndCallback')
     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::GenericPhyTxEndCallback*')
     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::GenericPhyTxEndCallback&')