From c61053c448db64e6494f08832e6ba1ff21544f27 Mon Sep 17 00:00:00 2001 From: Craig Dowell Date: Mon, 1 Mar 2010 18:15:36 -0800 Subject: [PATCH] plumb explicitFilename everywhere and update manual and tutorial --- .../apidefs/gcc-ILP32/ns3_module_aodv.py | 4 + .../apidefs/gcc-ILP32/ns3_module_helper.py | 144 ++++++++--------- .../apidefs/gcc-LP64/ns3_module_aodv.py | 4 + .../apidefs/gcc-LP64/ns3_module_helper.py | 144 ++++++++--------- doc/tutorial/tracing.texi | 76 ++++++--- src/helper/csma-helper.cc | 18 ++- src/helper/csma-helper.h | 5 +- src/helper/emu-helper.cc | 18 ++- src/helper/emu-helper.h | 5 +- src/helper/internet-stack-helper.cc | 58 ++++++- src/helper/internet-stack-helper.h | 22 ++- src/helper/point-to-point-helper.cc | 18 ++- src/helper/point-to-point-helper.h | 6 +- src/helper/trace-helper.cc | 143 +++++++++-------- src/helper/trace-helper.h | 145 +++++++++++++----- src/helper/yans-wifi-helper.cc | 19 ++- src/helper/yans-wifi-helper.h | 10 +- 17 files changed, 540 insertions(+), 299 deletions(-) diff --git a/bindings/python/apidefs/gcc-ILP32/ns3_module_aodv.py b/bindings/python/apidefs/gcc-ILP32/ns3_module_aodv.py index 6e192ecda..25c82f305 100644 --- a/bindings/python/apidefs/gcc-ILP32/ns3_module_aodv.py +++ b/bindings/python/apidefs/gcc-ILP32/ns3_module_aodv.py @@ -540,6 +540,10 @@ def register_Ns3AodvRoutingTable_methods(root_module, cls): cls.add_method('LookupRoute', 'bool', [param('ns3::Ipv4Address', 'dst'), param('ns3::aodv::RoutingTableEntry &', 'rt')]) + ## aodv-rtable.h: bool ns3::aodv::RoutingTable::LookupValidRoute(ns3::Ipv4Address dst, ns3::aodv::RoutingTableEntry & rt) [member function] + cls.add_method('LookupValidRoute', + 'bool', + [param('ns3::Ipv4Address', 'dst'), param('ns3::aodv::RoutingTableEntry &', 'rt')]) ## aodv-rtable.h: bool ns3::aodv::RoutingTable::MarkLinkAsUnidirectional(ns3::Ipv4Address neighbor, ns3::Time blacklistTimeout) [member function] cls.add_method('MarkLinkAsUnidirectional', 'bool', diff --git a/bindings/python/apidefs/gcc-ILP32/ns3_module_helper.py b/bindings/python/apidefs/gcc-ILP32/ns3_module_helper.py index 8076e0b70..29b20b333 100644 --- a/bindings/python/apidefs/gcc-ILP32/ns3_module_helper.py +++ b/bindings/python/apidefs/gcc-ILP32/ns3_module_helper.py @@ -420,18 +420,18 @@ def register_Ns3AsciiTraceHelperForDevice_methods(root_module, cls): cls.add_constructor([param('ns3::AsciiTraceHelperForDevice const &', 'arg0')]) ## trace-helper.h: ns3::AsciiTraceHelperForDevice::AsciiTraceHelperForDevice() [constructor] cls.add_constructor([]) - ## trace-helper.h: void ns3::AsciiTraceHelperForDevice::EnableAscii(std::string prefix, ns3::Ptr nd) [member function] + ## trace-helper.h: void ns3::AsciiTraceHelperForDevice::EnableAscii(std::string prefix, ns3::Ptr nd, bool explicitFilename=false) [member function] cls.add_method('EnableAscii', 'void', - [param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd')]) + [param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'explicitFilename', default_value='false')]) ## trace-helper.h: void ns3::AsciiTraceHelperForDevice::EnableAscii(ns3::Ptr stream, ns3::Ptr nd) [member function] cls.add_method('EnableAscii', 'void', [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('ns3::Ptr< ns3::NetDevice >', 'nd')]) - ## trace-helper.h: void ns3::AsciiTraceHelperForDevice::EnableAscii(std::string prefix, std::string ndName) [member function] + ## trace-helper.h: void ns3::AsciiTraceHelperForDevice::EnableAscii(std::string prefix, std::string ndName, bool explicitFilename=false) [member function] cls.add_method('EnableAscii', 'void', - [param('std::string', 'prefix'), param('std::string', 'ndName')]) + [param('std::string', 'prefix'), param('std::string', 'ndName'), param('bool', 'explicitFilename', default_value='false')]) ## trace-helper.h: void ns3::AsciiTraceHelperForDevice::EnableAscii(ns3::Ptr stream, std::string ndName) [member function] cls.add_method('EnableAscii', 'void', @@ -452,10 +452,10 @@ def register_Ns3AsciiTraceHelperForDevice_methods(root_module, cls): cls.add_method('EnableAscii', 'void', [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('ns3::NodeContainer', 'n')]) - ## trace-helper.h: void ns3::AsciiTraceHelperForDevice::EnableAscii(std::string prefix, uint32_t nodeid, uint32_t deviceid) [member function] + ## trace-helper.h: void ns3::AsciiTraceHelperForDevice::EnableAscii(std::string prefix, uint32_t nodeid, uint32_t deviceid, bool explicitFilename) [member function] cls.add_method('EnableAscii', 'void', - [param('std::string', 'prefix'), param('uint32_t', 'nodeid'), param('uint32_t', 'deviceid')]) + [param('std::string', 'prefix'), param('uint32_t', 'nodeid'), param('uint32_t', 'deviceid'), param('bool', 'explicitFilename')]) ## trace-helper.h: void ns3::AsciiTraceHelperForDevice::EnableAscii(ns3::Ptr stream, uint32_t nodeid, uint32_t deviceid) [member function] cls.add_method('EnableAscii', 'void', @@ -468,10 +468,10 @@ def register_Ns3AsciiTraceHelperForDevice_methods(root_module, cls): cls.add_method('EnableAsciiAll', 'void', [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream')]) - ## trace-helper.h: void ns3::AsciiTraceHelperForDevice::EnableAsciiInternal(ns3::Ptr stream, std::string prefix, ns3::Ptr nd) [member function] + ## trace-helper.h: void ns3::AsciiTraceHelperForDevice::EnableAsciiInternal(ns3::Ptr stream, std::string prefix, ns3::Ptr nd, bool explicitFilename) [member function] cls.add_method('EnableAsciiInternal', 'void', - [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd')], + [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'explicitFilename')], is_pure_virtual=True, is_virtual=True) return @@ -480,18 +480,18 @@ def register_Ns3AsciiTraceHelperForIpv4_methods(root_module, cls): cls.add_constructor([param('ns3::AsciiTraceHelperForIpv4 const &', 'arg0')]) ## trace-helper.h: ns3::AsciiTraceHelperForIpv4::AsciiTraceHelperForIpv4() [constructor] cls.add_constructor([]) - ## trace-helper.h: void ns3::AsciiTraceHelperForIpv4::EnableAsciiIpv4(std::string prefix, ns3::Ptr ipv4, uint32_t interface) [member function] + ## trace-helper.h: void ns3::AsciiTraceHelperForIpv4::EnableAsciiIpv4(std::string prefix, ns3::Ptr ipv4, uint32_t interface, bool explicitFilename=false) [member function] cls.add_method('EnableAsciiIpv4', 'void', - [param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv4 >', 'ipv4'), param('uint32_t', 'interface')]) + [param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv4 >', 'ipv4'), param('uint32_t', 'interface'), param('bool', 'explicitFilename', default_value='false')]) ## trace-helper.h: void ns3::AsciiTraceHelperForIpv4::EnableAsciiIpv4(ns3::Ptr stream, ns3::Ptr ipv4, uint32_t interface) [member function] cls.add_method('EnableAsciiIpv4', 'void', [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('ns3::Ptr< ns3::Ipv4 >', 'ipv4'), param('uint32_t', 'interface')]) - ## trace-helper.h: void ns3::AsciiTraceHelperForIpv4::EnableAsciiIpv4(std::string prefix, std::string ipv4Name, uint32_t interface) [member function] + ## trace-helper.h: void ns3::AsciiTraceHelperForIpv4::EnableAsciiIpv4(std::string prefix, std::string ipv4Name, uint32_t interface, bool explicitFilename=false) [member function] cls.add_method('EnableAsciiIpv4', 'void', - [param('std::string', 'prefix'), param('std::string', 'ipv4Name'), param('uint32_t', 'interface')]) + [param('std::string', 'prefix'), param('std::string', 'ipv4Name'), param('uint32_t', 'interface'), param('bool', 'explicitFilename', default_value='false')]) ## trace-helper.h: void ns3::AsciiTraceHelperForIpv4::EnableAsciiIpv4(ns3::Ptr stream, std::string ipv4Name, uint32_t interface) [member function] cls.add_method('EnableAsciiIpv4', 'void', @@ -512,14 +512,14 @@ def register_Ns3AsciiTraceHelperForIpv4_methods(root_module, cls): cls.add_method('EnableAsciiIpv4', 'void', [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('ns3::NodeContainer', 'n')]) - ## trace-helper.h: void ns3::AsciiTraceHelperForIpv4::EnableAsciiIpv4(std::string prefix, uint32_t nodeid, uint32_t deviceid) [member function] + ## trace-helper.h: void ns3::AsciiTraceHelperForIpv4::EnableAsciiIpv4(std::string prefix, uint32_t nodeid, uint32_t deviceid, bool explicitFilename) [member function] cls.add_method('EnableAsciiIpv4', 'void', - [param('std::string', 'prefix'), param('uint32_t', 'nodeid'), param('uint32_t', 'deviceid')]) - ## trace-helper.h: void ns3::AsciiTraceHelperForIpv4::EnableAsciiIpv4(ns3::Ptr stream, uint32_t nodeid, uint32_t interface) [member function] + [param('std::string', 'prefix'), param('uint32_t', 'nodeid'), param('uint32_t', 'deviceid'), param('bool', 'explicitFilename')]) + ## trace-helper.h: void ns3::AsciiTraceHelperForIpv4::EnableAsciiIpv4(ns3::Ptr stream, uint32_t nodeid, uint32_t interface, bool explicitFilename) [member function] cls.add_method('EnableAsciiIpv4', 'void', - [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('uint32_t', 'nodeid'), param('uint32_t', 'interface')]) + [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('uint32_t', 'nodeid'), param('uint32_t', 'interface'), param('bool', 'explicitFilename')]) ## trace-helper.h: void ns3::AsciiTraceHelperForIpv4::EnableAsciiIpv4All(std::string prefix) [member function] cls.add_method('EnableAsciiIpv4All', 'void', @@ -528,10 +528,10 @@ def register_Ns3AsciiTraceHelperForIpv4_methods(root_module, cls): cls.add_method('EnableAsciiIpv4All', 'void', [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream')]) - ## trace-helper.h: void ns3::AsciiTraceHelperForIpv4::EnableAsciiIpv4Internal(ns3::Ptr stream, std::string prefix, ns3::Ptr ipv4, uint32_t interface) [member function] + ## trace-helper.h: void ns3::AsciiTraceHelperForIpv4::EnableAsciiIpv4Internal(ns3::Ptr stream, std::string prefix, ns3::Ptr ipv4, uint32_t interface, bool explicitFilename) [member function] cls.add_method('EnableAsciiIpv4Internal', 'void', - [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv4 >', 'ipv4'), param('uint32_t', 'interface')], + [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv4 >', 'ipv4'), param('uint32_t', 'interface'), param('bool', 'explicitFilename')], is_pure_virtual=True, is_virtual=True) return @@ -540,18 +540,18 @@ def register_Ns3AsciiTraceHelperForIpv6_methods(root_module, cls): cls.add_constructor([param('ns3::AsciiTraceHelperForIpv6 const &', 'arg0')]) ## trace-helper.h: ns3::AsciiTraceHelperForIpv6::AsciiTraceHelperForIpv6() [constructor] cls.add_constructor([]) - ## trace-helper.h: void ns3::AsciiTraceHelperForIpv6::EnableAsciiIpv6(std::string prefix, ns3::Ptr ipv6, uint32_t interface) [member function] + ## trace-helper.h: void ns3::AsciiTraceHelperForIpv6::EnableAsciiIpv6(std::string prefix, ns3::Ptr ipv6, uint32_t interface, bool explicitFilename=false) [member function] cls.add_method('EnableAsciiIpv6', 'void', - [param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv6 >', 'ipv6'), param('uint32_t', 'interface')]) + [param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv6 >', 'ipv6'), param('uint32_t', 'interface'), param('bool', 'explicitFilename', default_value='false')]) ## trace-helper.h: void ns3::AsciiTraceHelperForIpv6::EnableAsciiIpv6(ns3::Ptr stream, ns3::Ptr ipv6, uint32_t interface) [member function] cls.add_method('EnableAsciiIpv6', 'void', [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('ns3::Ptr< ns3::Ipv6 >', 'ipv6'), param('uint32_t', 'interface')]) - ## trace-helper.h: void ns3::AsciiTraceHelperForIpv6::EnableAsciiIpv6(std::string prefix, std::string ipv6Name, uint32_t interface) [member function] + ## trace-helper.h: void ns3::AsciiTraceHelperForIpv6::EnableAsciiIpv6(std::string prefix, std::string ipv6Name, uint32_t interface, bool explicitFilename=false) [member function] cls.add_method('EnableAsciiIpv6', 'void', - [param('std::string', 'prefix'), param('std::string', 'ipv6Name'), param('uint32_t', 'interface')]) + [param('std::string', 'prefix'), param('std::string', 'ipv6Name'), param('uint32_t', 'interface'), param('bool', 'explicitFilename', default_value='false')]) ## trace-helper.h: void ns3::AsciiTraceHelperForIpv6::EnableAsciiIpv6(ns3::Ptr stream, std::string ipv6Name, uint32_t interface) [member function] cls.add_method('EnableAsciiIpv6', 'void', @@ -572,10 +572,10 @@ def register_Ns3AsciiTraceHelperForIpv6_methods(root_module, cls): cls.add_method('EnableAsciiIpv6', 'void', [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('ns3::NodeContainer', 'n')]) - ## trace-helper.h: void ns3::AsciiTraceHelperForIpv6::EnableAsciiIpv6(std::string prefix, uint32_t nodeid, uint32_t deviceid) [member function] + ## trace-helper.h: void ns3::AsciiTraceHelperForIpv6::EnableAsciiIpv6(std::string prefix, uint32_t nodeid, uint32_t interface, bool explicitFilename) [member function] cls.add_method('EnableAsciiIpv6', 'void', - [param('std::string', 'prefix'), param('uint32_t', 'nodeid'), param('uint32_t', 'deviceid')]) + [param('std::string', 'prefix'), param('uint32_t', 'nodeid'), param('uint32_t', 'interface'), param('bool', 'explicitFilename')]) ## trace-helper.h: void ns3::AsciiTraceHelperForIpv6::EnableAsciiIpv6(ns3::Ptr stream, uint32_t nodeid, uint32_t interface) [member function] cls.add_method('EnableAsciiIpv6', 'void', @@ -588,10 +588,10 @@ def register_Ns3AsciiTraceHelperForIpv6_methods(root_module, cls): cls.add_method('EnableAsciiIpv6All', 'void', [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream')]) - ## trace-helper.h: void ns3::AsciiTraceHelperForIpv6::EnableAsciiIpv6Internal(ns3::Ptr stream, std::string prefix, ns3::Ptr ipv6, uint32_t interface) [member function] + ## trace-helper.h: void ns3::AsciiTraceHelperForIpv6::EnableAsciiIpv6Internal(ns3::Ptr stream, std::string prefix, ns3::Ptr ipv6, uint32_t interface, bool explicitFilename) [member function] cls.add_method('EnableAsciiIpv6Internal', 'void', - [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv6 >', 'ipv6'), param('uint32_t', 'interface')], + [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv6 >', 'ipv6'), param('uint32_t', 'interface'), param('bool', 'explicitFilename')], is_pure_virtual=True, is_virtual=True) return @@ -1355,14 +1355,14 @@ def register_Ns3PcapHelperForDevice_methods(root_module, cls): cls.add_constructor([param('ns3::PcapHelperForDevice const &', 'arg0')]) ## trace-helper.h: ns3::PcapHelperForDevice::PcapHelperForDevice() [constructor] cls.add_constructor([]) - ## trace-helper.h: void ns3::PcapHelperForDevice::EnablePcap(std::string prefix, ns3::Ptr nd, bool explicitFilename=false, bool promiscuous=false) [member function] + ## trace-helper.h: void ns3::PcapHelperForDevice::EnablePcap(std::string prefix, ns3::Ptr nd, bool promiscuous=false, bool explicitFilename=false) [member function] cls.add_method('EnablePcap', 'void', - [param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'explicitFilename', default_value='false'), param('bool', 'promiscuous', default_value='false')]) - ## trace-helper.h: void ns3::PcapHelperForDevice::EnablePcap(std::string prefix, std::string ndName, bool explicitFilename=false, bool promiscuous=false) [member function] + [param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'promiscuous', default_value='false'), param('bool', 'explicitFilename', default_value='false')]) + ## trace-helper.h: void ns3::PcapHelperForDevice::EnablePcap(std::string prefix, std::string ndName, bool promiscuous=false, bool explicitFilename=false) [member function] cls.add_method('EnablePcap', 'void', - [param('std::string', 'prefix'), param('std::string', 'ndName'), param('bool', 'explicitFilename', default_value='false'), param('bool', 'promiscuous', default_value='false')]) + [param('std::string', 'prefix'), param('std::string', 'ndName'), param('bool', 'promiscuous', default_value='false'), param('bool', 'explicitFilename', default_value='false')]) ## trace-helper.h: void ns3::PcapHelperForDevice::EnablePcap(std::string prefix, ns3::NetDeviceContainer d, bool promiscuous=false) [member function] cls.add_method('EnablePcap', 'void', @@ -1379,10 +1379,10 @@ def register_Ns3PcapHelperForDevice_methods(root_module, cls): cls.add_method('EnablePcapAll', 'void', [param('std::string', 'prefix'), param('bool', 'promiscuous', default_value='false')]) - ## trace-helper.h: void ns3::PcapHelperForDevice::EnablePcapInternal(std::string prefix, ns3::Ptr nd, bool explicitFilename, bool promiscuous) [member function] + ## trace-helper.h: void ns3::PcapHelperForDevice::EnablePcapInternal(std::string prefix, ns3::Ptr nd, bool promiscuous, bool explicitFilename) [member function] cls.add_method('EnablePcapInternal', 'void', - [param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'explicitFilename'), param('bool', 'promiscuous')], + [param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'promiscuous'), param('bool', 'explicitFilename')], is_pure_virtual=True, is_virtual=True) return @@ -1391,14 +1391,14 @@ def register_Ns3PcapHelperForIpv4_methods(root_module, cls): cls.add_constructor([param('ns3::PcapHelperForIpv4 const &', 'arg0')]) ## trace-helper.h: ns3::PcapHelperForIpv4::PcapHelperForIpv4() [constructor] cls.add_constructor([]) - ## trace-helper.h: void ns3::PcapHelperForIpv4::EnablePcapIpv4(std::string prefix, ns3::Ptr ipv4, uint32_t interface) [member function] + ## trace-helper.h: void ns3::PcapHelperForIpv4::EnablePcapIpv4(std::string prefix, ns3::Ptr ipv4, uint32_t interface, bool explicitFilename=false) [member function] cls.add_method('EnablePcapIpv4', 'void', - [param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv4 >', 'ipv4'), param('uint32_t', 'interface')]) - ## trace-helper.h: void ns3::PcapHelperForIpv4::EnablePcapIpv4(std::string prefix, std::string ipv4Name, uint32_t interface) [member function] + [param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv4 >', 'ipv4'), param('uint32_t', 'interface'), param('bool', 'explicitFilename', default_value='false')]) + ## trace-helper.h: void ns3::PcapHelperForIpv4::EnablePcapIpv4(std::string prefix, std::string ipv4Name, uint32_t interface, bool explicitFilename=false) [member function] cls.add_method('EnablePcapIpv4', 'void', - [param('std::string', 'prefix'), param('std::string', 'ipv4Name'), param('uint32_t', 'interface')]) + [param('std::string', 'prefix'), param('std::string', 'ipv4Name'), param('uint32_t', 'interface'), param('bool', 'explicitFilename', default_value='false')]) ## trace-helper.h: void ns3::PcapHelperForIpv4::EnablePcapIpv4(std::string prefix, ns3::Ipv4InterfaceContainer c) [member function] cls.add_method('EnablePcapIpv4', 'void', @@ -1407,18 +1407,18 @@ def register_Ns3PcapHelperForIpv4_methods(root_module, cls): cls.add_method('EnablePcapIpv4', 'void', [param('std::string', 'prefix'), param('ns3::NodeContainer', 'n')]) - ## trace-helper.h: void ns3::PcapHelperForIpv4::EnablePcapIpv4(std::string prefix, uint32_t nodeid, uint32_t interface) [member function] + ## trace-helper.h: void ns3::PcapHelperForIpv4::EnablePcapIpv4(std::string prefix, uint32_t nodeid, uint32_t interface, bool explicitFilename) [member function] cls.add_method('EnablePcapIpv4', 'void', - [param('std::string', 'prefix'), param('uint32_t', 'nodeid'), param('uint32_t', 'interface')]) + [param('std::string', 'prefix'), param('uint32_t', 'nodeid'), param('uint32_t', 'interface'), param('bool', 'explicitFilename')]) ## trace-helper.h: void ns3::PcapHelperForIpv4::EnablePcapIpv4All(std::string prefix) [member function] cls.add_method('EnablePcapIpv4All', 'void', [param('std::string', 'prefix')]) - ## trace-helper.h: void ns3::PcapHelperForIpv4::EnablePcapIpv4Internal(std::string prefix, ns3::Ptr ipv4, uint32_t interface) [member function] + ## trace-helper.h: void ns3::PcapHelperForIpv4::EnablePcapIpv4Internal(std::string prefix, ns3::Ptr ipv4, uint32_t interface, bool explicitFilename) [member function] cls.add_method('EnablePcapIpv4Internal', 'void', - [param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv4 >', 'ipv4'), param('uint32_t', 'interface')], + [param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv4 >', 'ipv4'), param('uint32_t', 'interface'), param('bool', 'explicitFilename')], is_pure_virtual=True, is_virtual=True) return @@ -1427,14 +1427,14 @@ def register_Ns3PcapHelperForIpv6_methods(root_module, cls): cls.add_constructor([param('ns3::PcapHelperForIpv6 const &', 'arg0')]) ## trace-helper.h: ns3::PcapHelperForIpv6::PcapHelperForIpv6() [constructor] cls.add_constructor([]) - ## trace-helper.h: void ns3::PcapHelperForIpv6::EnablePcapIpv6(std::string prefix, ns3::Ptr ipv6, uint32_t interface) [member function] + ## trace-helper.h: void ns3::PcapHelperForIpv6::EnablePcapIpv6(std::string prefix, ns3::Ptr ipv6, uint32_t interface, bool explicitFilename=false) [member function] cls.add_method('EnablePcapIpv6', 'void', - [param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv6 >', 'ipv6'), param('uint32_t', 'interface')]) - ## trace-helper.h: void ns3::PcapHelperForIpv6::EnablePcapIpv6(std::string prefix, std::string ipv6Name, uint32_t interface) [member function] + [param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv6 >', 'ipv6'), param('uint32_t', 'interface'), param('bool', 'explicitFilename', default_value='false')]) + ## trace-helper.h: void ns3::PcapHelperForIpv6::EnablePcapIpv6(std::string prefix, std::string ipv6Name, uint32_t interface, bool explicitFilename=false) [member function] cls.add_method('EnablePcapIpv6', 'void', - [param('std::string', 'prefix'), param('std::string', 'ipv6Name'), param('uint32_t', 'interface')]) + [param('std::string', 'prefix'), param('std::string', 'ipv6Name'), param('uint32_t', 'interface'), param('bool', 'explicitFilename', default_value='false')]) ## trace-helper.h: void ns3::PcapHelperForIpv6::EnablePcapIpv6(std::string prefix, ns3::Ipv6InterfaceContainer c) [member function] cls.add_method('EnablePcapIpv6', 'void', @@ -1443,18 +1443,18 @@ def register_Ns3PcapHelperForIpv6_methods(root_module, cls): cls.add_method('EnablePcapIpv6', 'void', [param('std::string', 'prefix'), param('ns3::NodeContainer', 'n')]) - ## trace-helper.h: void ns3::PcapHelperForIpv6::EnablePcapIpv6(std::string prefix, uint32_t nodeid, uint32_t interface) [member function] + ## trace-helper.h: void ns3::PcapHelperForIpv6::EnablePcapIpv6(std::string prefix, uint32_t nodeid, uint32_t interface, bool explicitFilename) [member function] cls.add_method('EnablePcapIpv6', 'void', - [param('std::string', 'prefix'), param('uint32_t', 'nodeid'), param('uint32_t', 'interface')]) + [param('std::string', 'prefix'), param('uint32_t', 'nodeid'), param('uint32_t', 'interface'), param('bool', 'explicitFilename')]) ## trace-helper.h: void ns3::PcapHelperForIpv6::EnablePcapIpv6All(std::string prefix) [member function] cls.add_method('EnablePcapIpv6All', 'void', [param('std::string', 'prefix')]) - ## trace-helper.h: void ns3::PcapHelperForIpv6::EnablePcapIpv6Internal(std::string prefix, ns3::Ptr ipv6, uint32_t interface) [member function] + ## trace-helper.h: void ns3::PcapHelperForIpv6::EnablePcapIpv6Internal(std::string prefix, ns3::Ptr ipv6, uint32_t interface, bool explicitFilename) [member function] cls.add_method('EnablePcapIpv6Internal', 'void', - [param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv6 >', 'ipv6'), param('uint32_t', 'interface')], + [param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv6 >', 'ipv6'), param('uint32_t', 'interface'), param('bool', 'explicitFilename')], is_pure_virtual=True, is_virtual=True) return @@ -1612,15 +1612,15 @@ def register_Ns3PointToPointHelper_methods(root_module, cls): cls.add_method('SetQueue', 'void', [param('std::string', 'type'), param('std::string', 'n1', default_value='""'), param('ns3::AttributeValue const &', 'v1', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n2', default_value='""'), param('ns3::AttributeValue const &', 'v2', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n3', default_value='""'), param('ns3::AttributeValue const &', 'v3', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n4', default_value='""'), param('ns3::AttributeValue const &', 'v4', default_value='ns3::EmptyAttributeValue()')]) - ## point-to-point-helper.h: void ns3::PointToPointHelper::EnableAsciiInternal(ns3::Ptr stream, std::string prefix, ns3::Ptr nd) [member function] + ## point-to-point-helper.h: void ns3::PointToPointHelper::EnableAsciiInternal(ns3::Ptr stream, std::string prefix, ns3::Ptr nd, bool explicitFilename) [member function] cls.add_method('EnableAsciiInternal', 'void', - [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd')], + [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'explicitFilename')], visibility='private', is_virtual=True) - ## point-to-point-helper.h: void ns3::PointToPointHelper::EnablePcapInternal(std::string prefix, ns3::Ptr nd, bool implicitFilename, bool promiscuous) [member function] + ## point-to-point-helper.h: void ns3::PointToPointHelper::EnablePcapInternal(std::string prefix, ns3::Ptr nd, bool promiscuous, bool explicitFilename) [member function] cls.add_method('EnablePcapInternal', 'void', - [param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'implicitFilename'), param('bool', 'promiscuous')], + [param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'promiscuous'), param('bool', 'explicitFilename')], visibility='private', is_virtual=True) return @@ -1970,15 +1970,15 @@ def register_Ns3YansWifiPhyHelper_methods(root_module, cls): 'ns3::Ptr< ns3::WifiPhy >', [param('ns3::Ptr< ns3::Node >', 'node'), param('ns3::Ptr< ns3::WifiNetDevice >', 'device')], is_const=True, visibility='private', is_virtual=True) - ## yans-wifi-helper.h: void ns3::YansWifiPhyHelper::EnableAsciiInternal(ns3::Ptr stream, std::string prefix, ns3::Ptr nd) [member function] + ## yans-wifi-helper.h: void ns3::YansWifiPhyHelper::EnableAsciiInternal(ns3::Ptr stream, std::string prefix, ns3::Ptr nd, bool explicitFilename) [member function] cls.add_method('EnableAsciiInternal', 'void', - [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd')], + [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'explicitFilename')], visibility='private', is_virtual=True) - ## yans-wifi-helper.h: void ns3::YansWifiPhyHelper::EnablePcapInternal(std::string prefix, ns3::Ptr nd, bool explicitFilename, bool promiscuous) [member function] + ## yans-wifi-helper.h: void ns3::YansWifiPhyHelper::EnablePcapInternal(std::string prefix, ns3::Ptr nd, bool promiscuous, bool explicitFilename) [member function] cls.add_method('EnablePcapInternal', 'void', - [param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'explicitFilename'), param('bool', 'promiscuous')], + [param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'promiscuous'), param('bool', 'explicitFilename')], visibility='private', is_virtual=True) return @@ -2065,15 +2065,15 @@ def register_Ns3CsmaHelper_methods(root_module, cls): cls.add_method('SetQueue', 'void', [param('std::string', 'type'), param('std::string', 'n1', default_value='""'), param('ns3::AttributeValue const &', 'v1', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n2', default_value='""'), param('ns3::AttributeValue const &', 'v2', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n3', default_value='""'), param('ns3::AttributeValue const &', 'v3', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n4', default_value='""'), param('ns3::AttributeValue const &', 'v4', default_value='ns3::EmptyAttributeValue()')]) - ## csma-helper.h: void ns3::CsmaHelper::EnableAsciiInternal(ns3::Ptr stream, std::string prefix, ns3::Ptr nd) [member function] + ## csma-helper.h: void ns3::CsmaHelper::EnableAsciiInternal(ns3::Ptr stream, std::string prefix, ns3::Ptr nd, bool explicitFilename) [member function] cls.add_method('EnableAsciiInternal', 'void', - [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd')], + [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'explicitFilename')], visibility='private', is_virtual=True) - ## csma-helper.h: void ns3::CsmaHelper::EnablePcapInternal(std::string prefix, ns3::Ptr nd, bool explicitFilename, bool promiscuous) [member function] + ## csma-helper.h: void ns3::CsmaHelper::EnablePcapInternal(std::string prefix, ns3::Ptr nd, bool promiscuous, bool explicitFilename) [member function] cls.add_method('EnablePcapInternal', 'void', - [param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'explicitFilename'), param('bool', 'promiscuous')], + [param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'promiscuous'), param('bool', 'explicitFilename')], visibility='private', is_virtual=True) return @@ -2105,15 +2105,15 @@ def register_Ns3EmuHelper_methods(root_module, cls): cls.add_method('SetQueue', 'void', [param('std::string', 'type'), param('std::string', 'n1', default_value='""'), param('ns3::AttributeValue const &', 'v1', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n2', default_value='""'), param('ns3::AttributeValue const &', 'v2', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n3', default_value='""'), param('ns3::AttributeValue const &', 'v3', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n4', default_value='""'), param('ns3::AttributeValue const &', 'v4', default_value='ns3::EmptyAttributeValue()')]) - ## emu-helper.h: void ns3::EmuHelper::EnableAsciiInternal(ns3::Ptr stream, std::string prefix, ns3::Ptr nd) [member function] + ## emu-helper.h: void ns3::EmuHelper::EnableAsciiInternal(ns3::Ptr stream, std::string prefix, ns3::Ptr nd, bool explicitFilename) [member function] cls.add_method('EnableAsciiInternal', 'void', - [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd')], + [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'explicitFilename')], visibility='private', is_virtual=True) - ## emu-helper.h: void ns3::EmuHelper::EnablePcapInternal(std::string prefix, ns3::Ptr nd, bool explicitFilename, bool promiscuous) [member function] + ## emu-helper.h: void ns3::EmuHelper::EnablePcapInternal(std::string prefix, ns3::Ptr nd, bool promiscuous, bool explicitFilename) [member function] cls.add_method('EnablePcapInternal', 'void', - [param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'explicitFilename'), param('bool', 'promiscuous')], + [param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'promiscuous'), param('bool', 'explicitFilename')], visibility='private', is_virtual=True) return @@ -2170,25 +2170,25 @@ def register_Ns3InternetStackHelper_methods(root_module, cls): cls.add_method('SetTcp', 'void', [param('std::string', 'tid'), param('std::string', 'attr'), param('ns3::AttributeValue const &', 'val')]) - ## internet-stack-helper.h: void ns3::InternetStackHelper::EnableAsciiIpv4Internal(ns3::Ptr stream, std::string prefix, ns3::Ptr ipv4, uint32_t interface) [member function] + ## internet-stack-helper.h: void ns3::InternetStackHelper::EnableAsciiIpv4Internal(ns3::Ptr stream, std::string prefix, ns3::Ptr ipv4, uint32_t interface, bool explicitFilename) [member function] cls.add_method('EnableAsciiIpv4Internal', 'void', - [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv4 >', 'ipv4'), param('uint32_t', 'interface')], + [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv4 >', 'ipv4'), param('uint32_t', 'interface'), param('bool', 'explicitFilename')], visibility='private', is_virtual=True) - ## internet-stack-helper.h: void ns3::InternetStackHelper::EnableAsciiIpv6Internal(ns3::Ptr stream, std::string prefix, ns3::Ptr ipv6, uint32_t interface) [member function] + ## internet-stack-helper.h: void ns3::InternetStackHelper::EnableAsciiIpv6Internal(ns3::Ptr stream, std::string prefix, ns3::Ptr ipv6, uint32_t interface, bool explicitFilename) [member function] cls.add_method('EnableAsciiIpv6Internal', 'void', - [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv6 >', 'ipv6'), param('uint32_t', 'interface')], + [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv6 >', 'ipv6'), param('uint32_t', 'interface'), param('bool', 'explicitFilename')], visibility='private', is_virtual=True) - ## internet-stack-helper.h: void ns3::InternetStackHelper::EnablePcapIpv4Internal(std::string prefix, ns3::Ptr ipv4, uint32_t interface) [member function] + ## internet-stack-helper.h: void ns3::InternetStackHelper::EnablePcapIpv4Internal(std::string prefix, ns3::Ptr ipv4, uint32_t interface, bool explicitFilename) [member function] cls.add_method('EnablePcapIpv4Internal', 'void', - [param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv4 >', 'ipv4'), param('uint32_t', 'interface')], + [param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv4 >', 'ipv4'), param('uint32_t', 'interface'), param('bool', 'explicitFilename')], visibility='private', is_virtual=True) - ## internet-stack-helper.h: void ns3::InternetStackHelper::EnablePcapIpv6Internal(std::string prefix, ns3::Ptr ipv6, uint32_t interface) [member function] + ## internet-stack-helper.h: void ns3::InternetStackHelper::EnablePcapIpv6Internal(std::string prefix, ns3::Ptr ipv6, uint32_t interface, bool explicitFilename) [member function] cls.add_method('EnablePcapIpv6Internal', 'void', - [param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv6 >', 'ipv6'), param('uint32_t', 'interface')], + [param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv6 >', 'ipv6'), param('uint32_t', 'interface'), param('bool', 'explicitFilename')], visibility='private', is_virtual=True) return diff --git a/bindings/python/apidefs/gcc-LP64/ns3_module_aodv.py b/bindings/python/apidefs/gcc-LP64/ns3_module_aodv.py index 6e192ecda..25c82f305 100644 --- a/bindings/python/apidefs/gcc-LP64/ns3_module_aodv.py +++ b/bindings/python/apidefs/gcc-LP64/ns3_module_aodv.py @@ -540,6 +540,10 @@ def register_Ns3AodvRoutingTable_methods(root_module, cls): cls.add_method('LookupRoute', 'bool', [param('ns3::Ipv4Address', 'dst'), param('ns3::aodv::RoutingTableEntry &', 'rt')]) + ## aodv-rtable.h: bool ns3::aodv::RoutingTable::LookupValidRoute(ns3::Ipv4Address dst, ns3::aodv::RoutingTableEntry & rt) [member function] + cls.add_method('LookupValidRoute', + 'bool', + [param('ns3::Ipv4Address', 'dst'), param('ns3::aodv::RoutingTableEntry &', 'rt')]) ## aodv-rtable.h: bool ns3::aodv::RoutingTable::MarkLinkAsUnidirectional(ns3::Ipv4Address neighbor, ns3::Time blacklistTimeout) [member function] cls.add_method('MarkLinkAsUnidirectional', 'bool', diff --git a/bindings/python/apidefs/gcc-LP64/ns3_module_helper.py b/bindings/python/apidefs/gcc-LP64/ns3_module_helper.py index 8076e0b70..29b20b333 100644 --- a/bindings/python/apidefs/gcc-LP64/ns3_module_helper.py +++ b/bindings/python/apidefs/gcc-LP64/ns3_module_helper.py @@ -420,18 +420,18 @@ def register_Ns3AsciiTraceHelperForDevice_methods(root_module, cls): cls.add_constructor([param('ns3::AsciiTraceHelperForDevice const &', 'arg0')]) ## trace-helper.h: ns3::AsciiTraceHelperForDevice::AsciiTraceHelperForDevice() [constructor] cls.add_constructor([]) - ## trace-helper.h: void ns3::AsciiTraceHelperForDevice::EnableAscii(std::string prefix, ns3::Ptr nd) [member function] + ## trace-helper.h: void ns3::AsciiTraceHelperForDevice::EnableAscii(std::string prefix, ns3::Ptr nd, bool explicitFilename=false) [member function] cls.add_method('EnableAscii', 'void', - [param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd')]) + [param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'explicitFilename', default_value='false')]) ## trace-helper.h: void ns3::AsciiTraceHelperForDevice::EnableAscii(ns3::Ptr stream, ns3::Ptr nd) [member function] cls.add_method('EnableAscii', 'void', [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('ns3::Ptr< ns3::NetDevice >', 'nd')]) - ## trace-helper.h: void ns3::AsciiTraceHelperForDevice::EnableAscii(std::string prefix, std::string ndName) [member function] + ## trace-helper.h: void ns3::AsciiTraceHelperForDevice::EnableAscii(std::string prefix, std::string ndName, bool explicitFilename=false) [member function] cls.add_method('EnableAscii', 'void', - [param('std::string', 'prefix'), param('std::string', 'ndName')]) + [param('std::string', 'prefix'), param('std::string', 'ndName'), param('bool', 'explicitFilename', default_value='false')]) ## trace-helper.h: void ns3::AsciiTraceHelperForDevice::EnableAscii(ns3::Ptr stream, std::string ndName) [member function] cls.add_method('EnableAscii', 'void', @@ -452,10 +452,10 @@ def register_Ns3AsciiTraceHelperForDevice_methods(root_module, cls): cls.add_method('EnableAscii', 'void', [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('ns3::NodeContainer', 'n')]) - ## trace-helper.h: void ns3::AsciiTraceHelperForDevice::EnableAscii(std::string prefix, uint32_t nodeid, uint32_t deviceid) [member function] + ## trace-helper.h: void ns3::AsciiTraceHelperForDevice::EnableAscii(std::string prefix, uint32_t nodeid, uint32_t deviceid, bool explicitFilename) [member function] cls.add_method('EnableAscii', 'void', - [param('std::string', 'prefix'), param('uint32_t', 'nodeid'), param('uint32_t', 'deviceid')]) + [param('std::string', 'prefix'), param('uint32_t', 'nodeid'), param('uint32_t', 'deviceid'), param('bool', 'explicitFilename')]) ## trace-helper.h: void ns3::AsciiTraceHelperForDevice::EnableAscii(ns3::Ptr stream, uint32_t nodeid, uint32_t deviceid) [member function] cls.add_method('EnableAscii', 'void', @@ -468,10 +468,10 @@ def register_Ns3AsciiTraceHelperForDevice_methods(root_module, cls): cls.add_method('EnableAsciiAll', 'void', [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream')]) - ## trace-helper.h: void ns3::AsciiTraceHelperForDevice::EnableAsciiInternal(ns3::Ptr stream, std::string prefix, ns3::Ptr nd) [member function] + ## trace-helper.h: void ns3::AsciiTraceHelperForDevice::EnableAsciiInternal(ns3::Ptr stream, std::string prefix, ns3::Ptr nd, bool explicitFilename) [member function] cls.add_method('EnableAsciiInternal', 'void', - [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd')], + [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'explicitFilename')], is_pure_virtual=True, is_virtual=True) return @@ -480,18 +480,18 @@ def register_Ns3AsciiTraceHelperForIpv4_methods(root_module, cls): cls.add_constructor([param('ns3::AsciiTraceHelperForIpv4 const &', 'arg0')]) ## trace-helper.h: ns3::AsciiTraceHelperForIpv4::AsciiTraceHelperForIpv4() [constructor] cls.add_constructor([]) - ## trace-helper.h: void ns3::AsciiTraceHelperForIpv4::EnableAsciiIpv4(std::string prefix, ns3::Ptr ipv4, uint32_t interface) [member function] + ## trace-helper.h: void ns3::AsciiTraceHelperForIpv4::EnableAsciiIpv4(std::string prefix, ns3::Ptr ipv4, uint32_t interface, bool explicitFilename=false) [member function] cls.add_method('EnableAsciiIpv4', 'void', - [param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv4 >', 'ipv4'), param('uint32_t', 'interface')]) + [param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv4 >', 'ipv4'), param('uint32_t', 'interface'), param('bool', 'explicitFilename', default_value='false')]) ## trace-helper.h: void ns3::AsciiTraceHelperForIpv4::EnableAsciiIpv4(ns3::Ptr stream, ns3::Ptr ipv4, uint32_t interface) [member function] cls.add_method('EnableAsciiIpv4', 'void', [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('ns3::Ptr< ns3::Ipv4 >', 'ipv4'), param('uint32_t', 'interface')]) - ## trace-helper.h: void ns3::AsciiTraceHelperForIpv4::EnableAsciiIpv4(std::string prefix, std::string ipv4Name, uint32_t interface) [member function] + ## trace-helper.h: void ns3::AsciiTraceHelperForIpv4::EnableAsciiIpv4(std::string prefix, std::string ipv4Name, uint32_t interface, bool explicitFilename=false) [member function] cls.add_method('EnableAsciiIpv4', 'void', - [param('std::string', 'prefix'), param('std::string', 'ipv4Name'), param('uint32_t', 'interface')]) + [param('std::string', 'prefix'), param('std::string', 'ipv4Name'), param('uint32_t', 'interface'), param('bool', 'explicitFilename', default_value='false')]) ## trace-helper.h: void ns3::AsciiTraceHelperForIpv4::EnableAsciiIpv4(ns3::Ptr stream, std::string ipv4Name, uint32_t interface) [member function] cls.add_method('EnableAsciiIpv4', 'void', @@ -512,14 +512,14 @@ def register_Ns3AsciiTraceHelperForIpv4_methods(root_module, cls): cls.add_method('EnableAsciiIpv4', 'void', [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('ns3::NodeContainer', 'n')]) - ## trace-helper.h: void ns3::AsciiTraceHelperForIpv4::EnableAsciiIpv4(std::string prefix, uint32_t nodeid, uint32_t deviceid) [member function] + ## trace-helper.h: void ns3::AsciiTraceHelperForIpv4::EnableAsciiIpv4(std::string prefix, uint32_t nodeid, uint32_t deviceid, bool explicitFilename) [member function] cls.add_method('EnableAsciiIpv4', 'void', - [param('std::string', 'prefix'), param('uint32_t', 'nodeid'), param('uint32_t', 'deviceid')]) - ## trace-helper.h: void ns3::AsciiTraceHelperForIpv4::EnableAsciiIpv4(ns3::Ptr stream, uint32_t nodeid, uint32_t interface) [member function] + [param('std::string', 'prefix'), param('uint32_t', 'nodeid'), param('uint32_t', 'deviceid'), param('bool', 'explicitFilename')]) + ## trace-helper.h: void ns3::AsciiTraceHelperForIpv4::EnableAsciiIpv4(ns3::Ptr stream, uint32_t nodeid, uint32_t interface, bool explicitFilename) [member function] cls.add_method('EnableAsciiIpv4', 'void', - [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('uint32_t', 'nodeid'), param('uint32_t', 'interface')]) + [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('uint32_t', 'nodeid'), param('uint32_t', 'interface'), param('bool', 'explicitFilename')]) ## trace-helper.h: void ns3::AsciiTraceHelperForIpv4::EnableAsciiIpv4All(std::string prefix) [member function] cls.add_method('EnableAsciiIpv4All', 'void', @@ -528,10 +528,10 @@ def register_Ns3AsciiTraceHelperForIpv4_methods(root_module, cls): cls.add_method('EnableAsciiIpv4All', 'void', [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream')]) - ## trace-helper.h: void ns3::AsciiTraceHelperForIpv4::EnableAsciiIpv4Internal(ns3::Ptr stream, std::string prefix, ns3::Ptr ipv4, uint32_t interface) [member function] + ## trace-helper.h: void ns3::AsciiTraceHelperForIpv4::EnableAsciiIpv4Internal(ns3::Ptr stream, std::string prefix, ns3::Ptr ipv4, uint32_t interface, bool explicitFilename) [member function] cls.add_method('EnableAsciiIpv4Internal', 'void', - [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv4 >', 'ipv4'), param('uint32_t', 'interface')], + [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv4 >', 'ipv4'), param('uint32_t', 'interface'), param('bool', 'explicitFilename')], is_pure_virtual=True, is_virtual=True) return @@ -540,18 +540,18 @@ def register_Ns3AsciiTraceHelperForIpv6_methods(root_module, cls): cls.add_constructor([param('ns3::AsciiTraceHelperForIpv6 const &', 'arg0')]) ## trace-helper.h: ns3::AsciiTraceHelperForIpv6::AsciiTraceHelperForIpv6() [constructor] cls.add_constructor([]) - ## trace-helper.h: void ns3::AsciiTraceHelperForIpv6::EnableAsciiIpv6(std::string prefix, ns3::Ptr ipv6, uint32_t interface) [member function] + ## trace-helper.h: void ns3::AsciiTraceHelperForIpv6::EnableAsciiIpv6(std::string prefix, ns3::Ptr ipv6, uint32_t interface, bool explicitFilename=false) [member function] cls.add_method('EnableAsciiIpv6', 'void', - [param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv6 >', 'ipv6'), param('uint32_t', 'interface')]) + [param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv6 >', 'ipv6'), param('uint32_t', 'interface'), param('bool', 'explicitFilename', default_value='false')]) ## trace-helper.h: void ns3::AsciiTraceHelperForIpv6::EnableAsciiIpv6(ns3::Ptr stream, ns3::Ptr ipv6, uint32_t interface) [member function] cls.add_method('EnableAsciiIpv6', 'void', [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('ns3::Ptr< ns3::Ipv6 >', 'ipv6'), param('uint32_t', 'interface')]) - ## trace-helper.h: void ns3::AsciiTraceHelperForIpv6::EnableAsciiIpv6(std::string prefix, std::string ipv6Name, uint32_t interface) [member function] + ## trace-helper.h: void ns3::AsciiTraceHelperForIpv6::EnableAsciiIpv6(std::string prefix, std::string ipv6Name, uint32_t interface, bool explicitFilename=false) [member function] cls.add_method('EnableAsciiIpv6', 'void', - [param('std::string', 'prefix'), param('std::string', 'ipv6Name'), param('uint32_t', 'interface')]) + [param('std::string', 'prefix'), param('std::string', 'ipv6Name'), param('uint32_t', 'interface'), param('bool', 'explicitFilename', default_value='false')]) ## trace-helper.h: void ns3::AsciiTraceHelperForIpv6::EnableAsciiIpv6(ns3::Ptr stream, std::string ipv6Name, uint32_t interface) [member function] cls.add_method('EnableAsciiIpv6', 'void', @@ -572,10 +572,10 @@ def register_Ns3AsciiTraceHelperForIpv6_methods(root_module, cls): cls.add_method('EnableAsciiIpv6', 'void', [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('ns3::NodeContainer', 'n')]) - ## trace-helper.h: void ns3::AsciiTraceHelperForIpv6::EnableAsciiIpv6(std::string prefix, uint32_t nodeid, uint32_t deviceid) [member function] + ## trace-helper.h: void ns3::AsciiTraceHelperForIpv6::EnableAsciiIpv6(std::string prefix, uint32_t nodeid, uint32_t interface, bool explicitFilename) [member function] cls.add_method('EnableAsciiIpv6', 'void', - [param('std::string', 'prefix'), param('uint32_t', 'nodeid'), param('uint32_t', 'deviceid')]) + [param('std::string', 'prefix'), param('uint32_t', 'nodeid'), param('uint32_t', 'interface'), param('bool', 'explicitFilename')]) ## trace-helper.h: void ns3::AsciiTraceHelperForIpv6::EnableAsciiIpv6(ns3::Ptr stream, uint32_t nodeid, uint32_t interface) [member function] cls.add_method('EnableAsciiIpv6', 'void', @@ -588,10 +588,10 @@ def register_Ns3AsciiTraceHelperForIpv6_methods(root_module, cls): cls.add_method('EnableAsciiIpv6All', 'void', [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream')]) - ## trace-helper.h: void ns3::AsciiTraceHelperForIpv6::EnableAsciiIpv6Internal(ns3::Ptr stream, std::string prefix, ns3::Ptr ipv6, uint32_t interface) [member function] + ## trace-helper.h: void ns3::AsciiTraceHelperForIpv6::EnableAsciiIpv6Internal(ns3::Ptr stream, std::string prefix, ns3::Ptr ipv6, uint32_t interface, bool explicitFilename) [member function] cls.add_method('EnableAsciiIpv6Internal', 'void', - [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv6 >', 'ipv6'), param('uint32_t', 'interface')], + [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv6 >', 'ipv6'), param('uint32_t', 'interface'), param('bool', 'explicitFilename')], is_pure_virtual=True, is_virtual=True) return @@ -1355,14 +1355,14 @@ def register_Ns3PcapHelperForDevice_methods(root_module, cls): cls.add_constructor([param('ns3::PcapHelperForDevice const &', 'arg0')]) ## trace-helper.h: ns3::PcapHelperForDevice::PcapHelperForDevice() [constructor] cls.add_constructor([]) - ## trace-helper.h: void ns3::PcapHelperForDevice::EnablePcap(std::string prefix, ns3::Ptr nd, bool explicitFilename=false, bool promiscuous=false) [member function] + ## trace-helper.h: void ns3::PcapHelperForDevice::EnablePcap(std::string prefix, ns3::Ptr nd, bool promiscuous=false, bool explicitFilename=false) [member function] cls.add_method('EnablePcap', 'void', - [param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'explicitFilename', default_value='false'), param('bool', 'promiscuous', default_value='false')]) - ## trace-helper.h: void ns3::PcapHelperForDevice::EnablePcap(std::string prefix, std::string ndName, bool explicitFilename=false, bool promiscuous=false) [member function] + [param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'promiscuous', default_value='false'), param('bool', 'explicitFilename', default_value='false')]) + ## trace-helper.h: void ns3::PcapHelperForDevice::EnablePcap(std::string prefix, std::string ndName, bool promiscuous=false, bool explicitFilename=false) [member function] cls.add_method('EnablePcap', 'void', - [param('std::string', 'prefix'), param('std::string', 'ndName'), param('bool', 'explicitFilename', default_value='false'), param('bool', 'promiscuous', default_value='false')]) + [param('std::string', 'prefix'), param('std::string', 'ndName'), param('bool', 'promiscuous', default_value='false'), param('bool', 'explicitFilename', default_value='false')]) ## trace-helper.h: void ns3::PcapHelperForDevice::EnablePcap(std::string prefix, ns3::NetDeviceContainer d, bool promiscuous=false) [member function] cls.add_method('EnablePcap', 'void', @@ -1379,10 +1379,10 @@ def register_Ns3PcapHelperForDevice_methods(root_module, cls): cls.add_method('EnablePcapAll', 'void', [param('std::string', 'prefix'), param('bool', 'promiscuous', default_value='false')]) - ## trace-helper.h: void ns3::PcapHelperForDevice::EnablePcapInternal(std::string prefix, ns3::Ptr nd, bool explicitFilename, bool promiscuous) [member function] + ## trace-helper.h: void ns3::PcapHelperForDevice::EnablePcapInternal(std::string prefix, ns3::Ptr nd, bool promiscuous, bool explicitFilename) [member function] cls.add_method('EnablePcapInternal', 'void', - [param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'explicitFilename'), param('bool', 'promiscuous')], + [param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'promiscuous'), param('bool', 'explicitFilename')], is_pure_virtual=True, is_virtual=True) return @@ -1391,14 +1391,14 @@ def register_Ns3PcapHelperForIpv4_methods(root_module, cls): cls.add_constructor([param('ns3::PcapHelperForIpv4 const &', 'arg0')]) ## trace-helper.h: ns3::PcapHelperForIpv4::PcapHelperForIpv4() [constructor] cls.add_constructor([]) - ## trace-helper.h: void ns3::PcapHelperForIpv4::EnablePcapIpv4(std::string prefix, ns3::Ptr ipv4, uint32_t interface) [member function] + ## trace-helper.h: void ns3::PcapHelperForIpv4::EnablePcapIpv4(std::string prefix, ns3::Ptr ipv4, uint32_t interface, bool explicitFilename=false) [member function] cls.add_method('EnablePcapIpv4', 'void', - [param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv4 >', 'ipv4'), param('uint32_t', 'interface')]) - ## trace-helper.h: void ns3::PcapHelperForIpv4::EnablePcapIpv4(std::string prefix, std::string ipv4Name, uint32_t interface) [member function] + [param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv4 >', 'ipv4'), param('uint32_t', 'interface'), param('bool', 'explicitFilename', default_value='false')]) + ## trace-helper.h: void ns3::PcapHelperForIpv4::EnablePcapIpv4(std::string prefix, std::string ipv4Name, uint32_t interface, bool explicitFilename=false) [member function] cls.add_method('EnablePcapIpv4', 'void', - [param('std::string', 'prefix'), param('std::string', 'ipv4Name'), param('uint32_t', 'interface')]) + [param('std::string', 'prefix'), param('std::string', 'ipv4Name'), param('uint32_t', 'interface'), param('bool', 'explicitFilename', default_value='false')]) ## trace-helper.h: void ns3::PcapHelperForIpv4::EnablePcapIpv4(std::string prefix, ns3::Ipv4InterfaceContainer c) [member function] cls.add_method('EnablePcapIpv4', 'void', @@ -1407,18 +1407,18 @@ def register_Ns3PcapHelperForIpv4_methods(root_module, cls): cls.add_method('EnablePcapIpv4', 'void', [param('std::string', 'prefix'), param('ns3::NodeContainer', 'n')]) - ## trace-helper.h: void ns3::PcapHelperForIpv4::EnablePcapIpv4(std::string prefix, uint32_t nodeid, uint32_t interface) [member function] + ## trace-helper.h: void ns3::PcapHelperForIpv4::EnablePcapIpv4(std::string prefix, uint32_t nodeid, uint32_t interface, bool explicitFilename) [member function] cls.add_method('EnablePcapIpv4', 'void', - [param('std::string', 'prefix'), param('uint32_t', 'nodeid'), param('uint32_t', 'interface')]) + [param('std::string', 'prefix'), param('uint32_t', 'nodeid'), param('uint32_t', 'interface'), param('bool', 'explicitFilename')]) ## trace-helper.h: void ns3::PcapHelperForIpv4::EnablePcapIpv4All(std::string prefix) [member function] cls.add_method('EnablePcapIpv4All', 'void', [param('std::string', 'prefix')]) - ## trace-helper.h: void ns3::PcapHelperForIpv4::EnablePcapIpv4Internal(std::string prefix, ns3::Ptr ipv4, uint32_t interface) [member function] + ## trace-helper.h: void ns3::PcapHelperForIpv4::EnablePcapIpv4Internal(std::string prefix, ns3::Ptr ipv4, uint32_t interface, bool explicitFilename) [member function] cls.add_method('EnablePcapIpv4Internal', 'void', - [param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv4 >', 'ipv4'), param('uint32_t', 'interface')], + [param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv4 >', 'ipv4'), param('uint32_t', 'interface'), param('bool', 'explicitFilename')], is_pure_virtual=True, is_virtual=True) return @@ -1427,14 +1427,14 @@ def register_Ns3PcapHelperForIpv6_methods(root_module, cls): cls.add_constructor([param('ns3::PcapHelperForIpv6 const &', 'arg0')]) ## trace-helper.h: ns3::PcapHelperForIpv6::PcapHelperForIpv6() [constructor] cls.add_constructor([]) - ## trace-helper.h: void ns3::PcapHelperForIpv6::EnablePcapIpv6(std::string prefix, ns3::Ptr ipv6, uint32_t interface) [member function] + ## trace-helper.h: void ns3::PcapHelperForIpv6::EnablePcapIpv6(std::string prefix, ns3::Ptr ipv6, uint32_t interface, bool explicitFilename=false) [member function] cls.add_method('EnablePcapIpv6', 'void', - [param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv6 >', 'ipv6'), param('uint32_t', 'interface')]) - ## trace-helper.h: void ns3::PcapHelperForIpv6::EnablePcapIpv6(std::string prefix, std::string ipv6Name, uint32_t interface) [member function] + [param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv6 >', 'ipv6'), param('uint32_t', 'interface'), param('bool', 'explicitFilename', default_value='false')]) + ## trace-helper.h: void ns3::PcapHelperForIpv6::EnablePcapIpv6(std::string prefix, std::string ipv6Name, uint32_t interface, bool explicitFilename=false) [member function] cls.add_method('EnablePcapIpv6', 'void', - [param('std::string', 'prefix'), param('std::string', 'ipv6Name'), param('uint32_t', 'interface')]) + [param('std::string', 'prefix'), param('std::string', 'ipv6Name'), param('uint32_t', 'interface'), param('bool', 'explicitFilename', default_value='false')]) ## trace-helper.h: void ns3::PcapHelperForIpv6::EnablePcapIpv6(std::string prefix, ns3::Ipv6InterfaceContainer c) [member function] cls.add_method('EnablePcapIpv6', 'void', @@ -1443,18 +1443,18 @@ def register_Ns3PcapHelperForIpv6_methods(root_module, cls): cls.add_method('EnablePcapIpv6', 'void', [param('std::string', 'prefix'), param('ns3::NodeContainer', 'n')]) - ## trace-helper.h: void ns3::PcapHelperForIpv6::EnablePcapIpv6(std::string prefix, uint32_t nodeid, uint32_t interface) [member function] + ## trace-helper.h: void ns3::PcapHelperForIpv6::EnablePcapIpv6(std::string prefix, uint32_t nodeid, uint32_t interface, bool explicitFilename) [member function] cls.add_method('EnablePcapIpv6', 'void', - [param('std::string', 'prefix'), param('uint32_t', 'nodeid'), param('uint32_t', 'interface')]) + [param('std::string', 'prefix'), param('uint32_t', 'nodeid'), param('uint32_t', 'interface'), param('bool', 'explicitFilename')]) ## trace-helper.h: void ns3::PcapHelperForIpv6::EnablePcapIpv6All(std::string prefix) [member function] cls.add_method('EnablePcapIpv6All', 'void', [param('std::string', 'prefix')]) - ## trace-helper.h: void ns3::PcapHelperForIpv6::EnablePcapIpv6Internal(std::string prefix, ns3::Ptr ipv6, uint32_t interface) [member function] + ## trace-helper.h: void ns3::PcapHelperForIpv6::EnablePcapIpv6Internal(std::string prefix, ns3::Ptr ipv6, uint32_t interface, bool explicitFilename) [member function] cls.add_method('EnablePcapIpv6Internal', 'void', - [param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv6 >', 'ipv6'), param('uint32_t', 'interface')], + [param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv6 >', 'ipv6'), param('uint32_t', 'interface'), param('bool', 'explicitFilename')], is_pure_virtual=True, is_virtual=True) return @@ -1612,15 +1612,15 @@ def register_Ns3PointToPointHelper_methods(root_module, cls): cls.add_method('SetQueue', 'void', [param('std::string', 'type'), param('std::string', 'n1', default_value='""'), param('ns3::AttributeValue const &', 'v1', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n2', default_value='""'), param('ns3::AttributeValue const &', 'v2', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n3', default_value='""'), param('ns3::AttributeValue const &', 'v3', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n4', default_value='""'), param('ns3::AttributeValue const &', 'v4', default_value='ns3::EmptyAttributeValue()')]) - ## point-to-point-helper.h: void ns3::PointToPointHelper::EnableAsciiInternal(ns3::Ptr stream, std::string prefix, ns3::Ptr nd) [member function] + ## point-to-point-helper.h: void ns3::PointToPointHelper::EnableAsciiInternal(ns3::Ptr stream, std::string prefix, ns3::Ptr nd, bool explicitFilename) [member function] cls.add_method('EnableAsciiInternal', 'void', - [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd')], + [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'explicitFilename')], visibility='private', is_virtual=True) - ## point-to-point-helper.h: void ns3::PointToPointHelper::EnablePcapInternal(std::string prefix, ns3::Ptr nd, bool implicitFilename, bool promiscuous) [member function] + ## point-to-point-helper.h: void ns3::PointToPointHelper::EnablePcapInternal(std::string prefix, ns3::Ptr nd, bool promiscuous, bool explicitFilename) [member function] cls.add_method('EnablePcapInternal', 'void', - [param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'implicitFilename'), param('bool', 'promiscuous')], + [param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'promiscuous'), param('bool', 'explicitFilename')], visibility='private', is_virtual=True) return @@ -1970,15 +1970,15 @@ def register_Ns3YansWifiPhyHelper_methods(root_module, cls): 'ns3::Ptr< ns3::WifiPhy >', [param('ns3::Ptr< ns3::Node >', 'node'), param('ns3::Ptr< ns3::WifiNetDevice >', 'device')], is_const=True, visibility='private', is_virtual=True) - ## yans-wifi-helper.h: void ns3::YansWifiPhyHelper::EnableAsciiInternal(ns3::Ptr stream, std::string prefix, ns3::Ptr nd) [member function] + ## yans-wifi-helper.h: void ns3::YansWifiPhyHelper::EnableAsciiInternal(ns3::Ptr stream, std::string prefix, ns3::Ptr nd, bool explicitFilename) [member function] cls.add_method('EnableAsciiInternal', 'void', - [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd')], + [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'explicitFilename')], visibility='private', is_virtual=True) - ## yans-wifi-helper.h: void ns3::YansWifiPhyHelper::EnablePcapInternal(std::string prefix, ns3::Ptr nd, bool explicitFilename, bool promiscuous) [member function] + ## yans-wifi-helper.h: void ns3::YansWifiPhyHelper::EnablePcapInternal(std::string prefix, ns3::Ptr nd, bool promiscuous, bool explicitFilename) [member function] cls.add_method('EnablePcapInternal', 'void', - [param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'explicitFilename'), param('bool', 'promiscuous')], + [param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'promiscuous'), param('bool', 'explicitFilename')], visibility='private', is_virtual=True) return @@ -2065,15 +2065,15 @@ def register_Ns3CsmaHelper_methods(root_module, cls): cls.add_method('SetQueue', 'void', [param('std::string', 'type'), param('std::string', 'n1', default_value='""'), param('ns3::AttributeValue const &', 'v1', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n2', default_value='""'), param('ns3::AttributeValue const &', 'v2', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n3', default_value='""'), param('ns3::AttributeValue const &', 'v3', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n4', default_value='""'), param('ns3::AttributeValue const &', 'v4', default_value='ns3::EmptyAttributeValue()')]) - ## csma-helper.h: void ns3::CsmaHelper::EnableAsciiInternal(ns3::Ptr stream, std::string prefix, ns3::Ptr nd) [member function] + ## csma-helper.h: void ns3::CsmaHelper::EnableAsciiInternal(ns3::Ptr stream, std::string prefix, ns3::Ptr nd, bool explicitFilename) [member function] cls.add_method('EnableAsciiInternal', 'void', - [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd')], + [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'explicitFilename')], visibility='private', is_virtual=True) - ## csma-helper.h: void ns3::CsmaHelper::EnablePcapInternal(std::string prefix, ns3::Ptr nd, bool explicitFilename, bool promiscuous) [member function] + ## csma-helper.h: void ns3::CsmaHelper::EnablePcapInternal(std::string prefix, ns3::Ptr nd, bool promiscuous, bool explicitFilename) [member function] cls.add_method('EnablePcapInternal', 'void', - [param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'explicitFilename'), param('bool', 'promiscuous')], + [param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'promiscuous'), param('bool', 'explicitFilename')], visibility='private', is_virtual=True) return @@ -2105,15 +2105,15 @@ def register_Ns3EmuHelper_methods(root_module, cls): cls.add_method('SetQueue', 'void', [param('std::string', 'type'), param('std::string', 'n1', default_value='""'), param('ns3::AttributeValue const &', 'v1', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n2', default_value='""'), param('ns3::AttributeValue const &', 'v2', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n3', default_value='""'), param('ns3::AttributeValue const &', 'v3', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n4', default_value='""'), param('ns3::AttributeValue const &', 'v4', default_value='ns3::EmptyAttributeValue()')]) - ## emu-helper.h: void ns3::EmuHelper::EnableAsciiInternal(ns3::Ptr stream, std::string prefix, ns3::Ptr nd) [member function] + ## emu-helper.h: void ns3::EmuHelper::EnableAsciiInternal(ns3::Ptr stream, std::string prefix, ns3::Ptr nd, bool explicitFilename) [member function] cls.add_method('EnableAsciiInternal', 'void', - [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd')], + [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'explicitFilename')], visibility='private', is_virtual=True) - ## emu-helper.h: void ns3::EmuHelper::EnablePcapInternal(std::string prefix, ns3::Ptr nd, bool explicitFilename, bool promiscuous) [member function] + ## emu-helper.h: void ns3::EmuHelper::EnablePcapInternal(std::string prefix, ns3::Ptr nd, bool promiscuous, bool explicitFilename) [member function] cls.add_method('EnablePcapInternal', 'void', - [param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'explicitFilename'), param('bool', 'promiscuous')], + [param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'promiscuous'), param('bool', 'explicitFilename')], visibility='private', is_virtual=True) return @@ -2170,25 +2170,25 @@ def register_Ns3InternetStackHelper_methods(root_module, cls): cls.add_method('SetTcp', 'void', [param('std::string', 'tid'), param('std::string', 'attr'), param('ns3::AttributeValue const &', 'val')]) - ## internet-stack-helper.h: void ns3::InternetStackHelper::EnableAsciiIpv4Internal(ns3::Ptr stream, std::string prefix, ns3::Ptr ipv4, uint32_t interface) [member function] + ## internet-stack-helper.h: void ns3::InternetStackHelper::EnableAsciiIpv4Internal(ns3::Ptr stream, std::string prefix, ns3::Ptr ipv4, uint32_t interface, bool explicitFilename) [member function] cls.add_method('EnableAsciiIpv4Internal', 'void', - [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv4 >', 'ipv4'), param('uint32_t', 'interface')], + [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv4 >', 'ipv4'), param('uint32_t', 'interface'), param('bool', 'explicitFilename')], visibility='private', is_virtual=True) - ## internet-stack-helper.h: void ns3::InternetStackHelper::EnableAsciiIpv6Internal(ns3::Ptr stream, std::string prefix, ns3::Ptr ipv6, uint32_t interface) [member function] + ## internet-stack-helper.h: void ns3::InternetStackHelper::EnableAsciiIpv6Internal(ns3::Ptr stream, std::string prefix, ns3::Ptr ipv6, uint32_t interface, bool explicitFilename) [member function] cls.add_method('EnableAsciiIpv6Internal', 'void', - [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv6 >', 'ipv6'), param('uint32_t', 'interface')], + [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv6 >', 'ipv6'), param('uint32_t', 'interface'), param('bool', 'explicitFilename')], visibility='private', is_virtual=True) - ## internet-stack-helper.h: void ns3::InternetStackHelper::EnablePcapIpv4Internal(std::string prefix, ns3::Ptr ipv4, uint32_t interface) [member function] + ## internet-stack-helper.h: void ns3::InternetStackHelper::EnablePcapIpv4Internal(std::string prefix, ns3::Ptr ipv4, uint32_t interface, bool explicitFilename) [member function] cls.add_method('EnablePcapIpv4Internal', 'void', - [param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv4 >', 'ipv4'), param('uint32_t', 'interface')], + [param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv4 >', 'ipv4'), param('uint32_t', 'interface'), param('bool', 'explicitFilename')], visibility='private', is_virtual=True) - ## internet-stack-helper.h: void ns3::InternetStackHelper::EnablePcapIpv6Internal(std::string prefix, ns3::Ptr ipv6, uint32_t interface) [member function] + ## internet-stack-helper.h: void ns3::InternetStackHelper::EnablePcapIpv6Internal(std::string prefix, ns3::Ptr ipv6, uint32_t interface, bool explicitFilename) [member function] cls.add_method('EnablePcapIpv6Internal', 'void', - [param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv6 >', 'ipv6'), param('uint32_t', 'interface')], + [param('std::string', 'prefix'), param('ns3::Ptr< ns3::Ipv6 >', 'ipv6'), param('uint32_t', 'interface'), param('bool', 'explicitFilename')], visibility='private', is_virtual=True) return diff --git a/doc/tutorial/tracing.texi b/doc/tutorial/tracing.texi index 4c9b30284..d397a953b 100644 --- a/doc/tutorial/tracing.texi +++ b/doc/tutorial/tracing.texi @@ -2241,7 +2241,7 @@ functionality for using pcap tracing in an @code{ns-3} device. Every device must implement a single virtual method inherited from this class. @verbatim - virtual void EnablePcapInternal (std::string prefix, Ptr nd, bool promiscuous) = 0; + virtual void EnablePcapInternal (std::string prefix, Ptr nd, bool promiscuous, bool explicitFilename) = 0; @end verbatim The signature of this method reflects the device-centric view of the situation @@ -2264,7 +2264,7 @@ implements @code{EnablePcapInternal} correctly. @verbatim void EnablePcap (std::string prefix, Ptr nd, bool promiscuous = false, bool explicitFilename = false); - void EnablePcap (std::string prefix, std::string ndName, bool promiscuous = false, bool explicitFilenaqme = false); + void EnablePcap (std::string prefix, std::string ndName, bool promiscuous = false, bool explicitFilename = false); void EnablePcap (std::string prefix, NetDeviceContainer d, bool promiscuous = false); void EnablePcap (std::string prefix, NodeContainer n, bool promiscuous = false); void EnablePcap (std::string prefix, uint32_t nodeid, uint32_t deviceid, bool promiscuous = false); @@ -2411,7 +2411,11 @@ using ascii tracing to a device helper class. As in the pcap case, every device must implement a single virtual method inherited from the ascii trace @code{mixin}. @verbatim - virtual void EnableAsciiInternal (Ptr stream, std::string prefix, Ptr nd) = 0; + virtual void EnableAsciiInternal (Ptr stream, + std::string prefix, + Ptr nd, + bool explicitFilename) = 0; + @end verbatim The signature of this method reflects the device-centric view of the situation @@ -2422,7 +2426,7 @@ dependent implementation method. For example, the lowest level ascii trace methods, @verbatim - void EnableAscii (std::string prefix, Ptr nd); + void EnableAscii (std::string prefix, Ptr nd, bool explicitFilename = false); void EnableAscii (Ptr stream, Ptr nd); @verbatim @@ -2437,10 +2441,10 @@ will all work in the same way across devices if the devices implement @subsubsection Ascii Tracing Device Helper Methods @verbatim - void EnableAscii (std::string prefix, Ptr nd); + void EnableAscii (std::string prefix, Ptr nd, bool explicitFilename = false); void EnableAscii (Ptr stream, Ptr nd); - void EnableAscii (std::string prefix, std::string ndName); + void EnableAscii (std::string prefix, std::string ndName, bool explicitFilename = false); void EnableAscii (Ptr stream, std::string ndName); void EnableAscii (std::string prefix, NetDeviceContainer d); @@ -2449,11 +2453,11 @@ will all work in the same way across devices if the devices implement void EnableAscii (std::string prefix, NodeContainer n); void EnableAscii (Ptr stream, NodeContainer n); - void EnableAscii (std::string prefix, uint32_t nodeid, uint32_t deviceid); - void EnableAscii (Ptr stream, uint32_t nodeid, uint32_t deviceid); - void EnableAsciiAll (std::string prefix); void EnableAsciiAll (Ptr stream); + + void EnableAscii (std::string prefix, uint32_t nodeid, uint32_t deviceid, bool explicitFilename); + void EnableAscii (Ptr stream, uint32_t nodeid, uint32_t deviceid); @end verbatim You are encouraged to peruse the Doxygen for class @code{TraceHelperForDevice} @@ -2478,6 +2482,9 @@ exactly one @code{Node}. For example, helper.EnableAscii ("prefix", nd); @end verbatim +The first four methods also include a default parameter called @code{explicitFilename} +that operate similar to equivalent parameters in the pcap case. + In this case, no trace contexts are written to the ascii trace file since they would be redundant. The system will pick the file name to be created using the same rules as described in the pcap section, except that the file will @@ -2624,6 +2631,11 @@ to node 21, the resulting ascii trace file name will automatically become, device, your ascii trace file name will automatically pick this up and be called ``prefix-server-eth0.tr''. +Several of the methods have a default parameter called @code{explicitFilename}. +When set to true, this parameter disables the automatic filename completion +mechanism and allows you to create an explicit filename. This option is only +available in the methods which take a prefix and enable tracing on a single device. + @subsection Pcap Tracing Protocol Helpers The goal of these @code{mixins} is to make it easy to add a consistent pcap trace @@ -2646,7 +2658,10 @@ are required to disambiguate class @code{Ipv4} from @coe{Ipv6} which are both derived from class @code{Object}, and methods that share the same signature. @verbatim - virtual void EnablePcapIpv4Internal (std::string prefix, Ptr ipv4, uint32_t interface) = 0; + virtual void EnablePcapIpv4Internal (std::string prefix, + Ptr ipv4, + uint32_t interface, + bool explicitFilename) = 0; @end verbatim The signature of this method reflects the protocol and interface-centric view @@ -2655,7 +2670,7 @@ of the situation at this level. All of the public methods inherited from class implementation method. For example, the lowest level pcap method, @verbatim - void EnablePcapIpv4 (std::string prefix, Ptr ipv4, uint32_t interface); + void EnablePcapIpv4 (std::string prefix, Ptr ipv4, uint32_t interface, bool explicitFilename = false); @verbatim will call the device implementation of @code{EnablePcapIpv4Internal} directly. @@ -2675,11 +2690,11 @@ constraints. Note that just like in the device version, there are six methods: @verbatim - void EnablePcapIpv4 (std::string prefix, Ptr ipv4, uint32_t interface); - void EnablePcapIpv4 (std::string prefix, std::string ipv4Name, uint32_t interface); + void EnablePcapIpv4 (std::string prefix, Ptr ipv4, uint32_t interface, bool explicitFilename = false); + void EnablePcapIpv4 (std::string prefix, std::string ipv4Name, uint32_t interface, bool explicitFilename = false); void EnablePcapIpv4 (std::string prefix, Ipv4InterfaceContainer c); void EnablePcapIpv4 (std::string prefix, NodeContainer n); - void EnablePcapIpv4 (std::string prefix, uint32_t nodeid, uint32_t interface); + void EnablePcapIpv4 (std::string prefix, uint32_t nodeid, uint32_t interface, bool explicitFilename); void EnablePcapIpv4All (std::string prefix); @end verbatim @@ -2780,6 +2795,11 @@ For example, if you use the object name service to assign the name ``serverIpv4' to the Ptr on node 21, the resulting pcap trace file name will automatically become, ``prefix-nserverIpv4-i1.pcap''. +Several of the methods have a default parameter called @code{explicitFilename}. +When set to true, this parameter disables the automatic filename completion +mechanism and allows you to create an explicit filename. This option is only +available in the methods which take a prefix and enable tracing on a single device. + @subsection Ascii Tracing Protocol Helpers The behavior of the ascii trace helpers is substantially similar to the pcap @@ -2796,8 +2816,11 @@ for using ascii tracing to a protocol helper. Each protocol that enables these methods must implement a single virtual method inherited from this class. @verbatim - virtual void EnableAsciiIpv4Internal (Ptr stream, std::string prefix, - Ptr ipv4, uint32_t interface) = 0; + virtual void EnableAsciiIpv4Internal (Ptr stream, + std::string prefix, + Ptr ipv4, + uint32_t interface, + bool explicitFilename) = 0; @end verbatim The signature of this method reflects the protocol- and interface-centric view @@ -2808,7 +2831,7 @@ dependent implementation method. For example, the lowest level ascii trace methods, @verbatim - void EnableAsciiIpv4 (std::string prefix, Ptr ipv4, uint32_t interface); + void EnableAsciiIpv4 (std::string prefix, Ptr ipv4, uint32_t interface, bool explicitFilename = false); void EnableAsciiIpv4 (Ptr stream, Ptr ipv4, uint32_t interface); @verbatim @@ -2820,13 +2843,13 @@ system will have all of the ascii trace methods available; and these methods will all work in the same way across protocols if the protocols implement @code{EnablAsciiIpv4Internal} correctly. -@subsubsection Ascii Tracing Device Helper Methods +@subsubsection Ascii Tracing Protocol Helper Methods @verbatim - void EnableAsciiIpv4 (std::string prefix, Ptr ipv4, uint32_t interface); + void EnableAsciiIpv4 (std::string prefix, Ptr ipv4, uint32_t interface, bool explicitFilename = false); void EnableAsciiIpv4 (Ptr stream, Ptr ipv4, uint32_t interface); - void EnableAsciiIpv4 (std::string prefix, std::string ipv4Name, uint32_t interface); + void EnableAsciiIpv4 (std::string prefix, std::string ipv4Name, uint32_t interface, bool explicitFilename = false); void EnableAsciiIpv4 (Ptr stream, std::string ipv4Name, uint32_t interface); void EnableAsciiIpv4 (std::string prefix, Ipv4InterfaceContainer c); @@ -2835,11 +2858,11 @@ will all work in the same way across protocols if the protocols implement void EnableAsciiIpv4 (std::string prefix, NodeContainer n); void EnableAsciiIpv4 (Ptr stream, NodeContainer n); - void EnableAsciiIpv4 (std::string prefix, uint32_t nodeid, uint32_t deviceid); - void EnableAsciiIpv4 (Ptr stream, uint32_t nodeid, uint32_t interface); - void EnableAsciiIpv4All (std::string prefix); void EnableAsciiIpv4All (Ptr stream); + + void EnableAsciiIpv4 (std::string prefix, uint32_t nodeid, uint32_t deviceid, bool explicitFilename); + void EnableAsciiIpv4 (Ptr stream, uint32_t nodeid, uint32_t interface); @end verbatim You are encouraged to peruse the Doxygen for class @code{PcapAndAsciiHelperForIpv4} @@ -3000,7 +3023,7 @@ helper. All of these files will follow the -n-i nd, bool prom } void -CsmaHelper::EnableAsciiInternal (Ptr stream, std::string prefix, Ptr nd) +CsmaHelper::EnableAsciiInternal ( + Ptr stream, + std::string prefix, + Ptr nd, + bool explicitFilename) { // // All of the ascii enable functions vector through here including the ones @@ -144,7 +148,17 @@ CsmaHelper::EnableAsciiInternal (Ptr stream, std::string pr // name of the file given the prefix. // AsciiTraceHelper asciiTraceHelper; - std::string filename = asciiTraceHelper.GetFilenameFromDevice (prefix, device); + + std::string filename; + if (explicitFilename) + { + filename = prefix; + } + else + { + filename = asciiTraceHelper.GetFilenameFromDevice (prefix, device); + } + Ptr theStream = asciiTraceHelper.CreateFileStream (filename, "w"); // diff --git a/src/helper/csma-helper.h b/src/helper/csma-helper.h index 018ede502..f30f69df9 100644 --- a/src/helper/csma-helper.h +++ b/src/helper/csma-helper.h @@ -223,7 +223,10 @@ private: * \param prefix Filename prefix to use for ascii trace files. * \param nd Net device for which you want to enable tracing. */ - virtual void EnableAsciiInternal (Ptr stream, std::string prefix, Ptr nd); + virtual void EnableAsciiInternal (Ptr stream, + std::string prefix, + Ptr nd, + bool explicitFilename); ObjectFactory m_queueFactory; ObjectFactory m_deviceFactory; diff --git a/src/helper/emu-helper.cc b/src/helper/emu-helper.cc index e3033df8d..d170f9790 100644 --- a/src/helper/emu-helper.cc +++ b/src/helper/emu-helper.cc @@ -103,7 +103,11 @@ EmuHelper::EnablePcapInternal (std::string prefix, Ptr nd, bool promi } void -EmuHelper::EnableAsciiInternal (Ptr stream, std::string prefix, Ptr nd) +EmuHelper::EnableAsciiInternal ( + Ptr stream, + std::string prefix, + Ptr nd, + bool explicitFilename) { // // All of the ascii enable functions vector through here including the ones @@ -137,7 +141,17 @@ EmuHelper::EnableAsciiInternal (Ptr stream, std::string pre // name of the file given the prefix. // AsciiTraceHelper asciiTraceHelper; - std::string filename = asciiTraceHelper.GetFilenameFromDevice (prefix, device); + + std::string filename; + if (explicitFilename) + { + filename = prefix; + } + else + { + filename = asciiTraceHelper.GetFilenameFromDevice (prefix, device); + } + Ptr theStream = asciiTraceHelper.CreateFileStream (filename, "w"); // diff --git a/src/helper/emu-helper.h b/src/helper/emu-helper.h index 538f1f3cf..0a0e2228f 100644 --- a/src/helper/emu-helper.h +++ b/src/helper/emu-helper.h @@ -139,7 +139,10 @@ private: * \param prefix Filename prefix to use for ascii trace files. * \param nd Net device for which you want to enable tracing. */ - virtual void EnableAsciiInternal (Ptr stream, std::string prefix, Ptr nd); + virtual void EnableAsciiInternal (Ptr stream, + std::string prefix, + Ptr nd, + bool explicitFilename); ObjectFactory m_queueFactory; ObjectFactory m_deviceFactory; diff --git a/src/helper/internet-stack-helper.cc b/src/helper/internet-stack-helper.cc index bec69df05..a8bcfc7aa 100644 --- a/src/helper/internet-stack-helper.cc +++ b/src/helper/internet-stack-helper.cc @@ -444,7 +444,7 @@ InternetStackHelper::PcapHooked (Ptr ipv4) } void -InternetStackHelper::EnablePcapIpv4Internal (std::string prefix, Ptr ipv4, uint32_t interface) +InternetStackHelper::EnablePcapIpv4Internal (std::string prefix, Ptr ipv4, uint32_t interface, bool explicitFilename) { NS_LOG_FUNCTION (prefix << ipv4 << interface); @@ -459,7 +459,17 @@ InternetStackHelper::EnablePcapIpv4Internal (std::string prefix, Ptr ipv4, // irrespective of how many times we want to trace a particular protocol. // PcapHelper pcapHelper; - std::string filename = pcapHelper.GetFilenameFromInterfacePair (prefix, ipv4, interface); + + std::string filename; + if (explicitFilename) + { + filename = prefix; + } + else + { + filename = pcapHelper.GetFilenameFromInterfacePair (prefix, ipv4, interface); + } + Ptr file = pcapHelper.CreateFile (filename, "w", PcapHelper::DLT_RAW); // @@ -526,7 +536,7 @@ InternetStackHelper::PcapHooked (Ptr ipv6) } void -InternetStackHelper::EnablePcapIpv6Internal (std::string prefix, Ptr ipv6, uint32_t interface) +InternetStackHelper::EnablePcapIpv6Internal (std::string prefix, Ptr ipv6, uint32_t interface, bool explicitFilename) { NS_LOG_FUNCTION (prefix << ipv6 << interface); @@ -541,7 +551,17 @@ InternetStackHelper::EnablePcapIpv6Internal (std::string prefix, Ptr ipv6, // irrespective of how many times we want to trace a particular protocol. // PcapHelper pcapHelper; - std::string filename = pcapHelper.GetFilenameFromInterfacePair (prefix, ipv6, interface); + + std::string filename; + if (explicitFilename) + { + filename = prefix; + } + else + { + filename = pcapHelper.GetFilenameFromInterfacePair (prefix, ipv6, interface); + } + Ptr file = pcapHelper.CreateFile (filename, "w", PcapHelper::DLT_RAW); // @@ -650,7 +670,8 @@ InternetStackHelper::EnableAsciiIpv4Internal ( Ptr stream, std::string prefix, Ptr ipv4, - uint32_t interface) + uint32_t interface, + bool explicitFilename) { if (!m_ipv4Enabled) { @@ -682,7 +703,17 @@ InternetStackHelper::EnableAsciiIpv4Internal ( // protocol. // AsciiTraceHelper asciiTraceHelper; - std::string filename = asciiTraceHelper.GetFilenameFromInterfacePair (prefix, ipv4, interface); + + std::string filename; + if (explicitFilename) + { + filename = prefix; + } + else + { + filename = asciiTraceHelper.GetFilenameFromInterfacePair (prefix, ipv4, interface); + } + Ptr theStream = asciiTraceHelper.CreateFileStream (filename, "w"); // @@ -834,7 +865,8 @@ InternetStackHelper::EnableAsciiIpv6Internal ( Ptr stream, std::string prefix, Ptr ipv6, - uint32_t interface) + uint32_t interface, + bool explicitFilename) { if (!m_ipv6Enabled) { @@ -866,7 +898,17 @@ InternetStackHelper::EnableAsciiIpv6Internal ( // protocol. // AsciiTraceHelper asciiTraceHelper; - std::string filename = asciiTraceHelper.GetFilenameFromInterfacePair (prefix, ipv6, interface); + + std::string filename; + if (explicitFilename) + { + filename = prefix; + } + else + { + filename = asciiTraceHelper.GetFilenameFromInterfacePair (prefix, ipv6, interface); + } + Ptr theStream = asciiTraceHelper.CreateFileStream (filename, "w"); // diff --git a/src/helper/internet-stack-helper.h b/src/helper/internet-stack-helper.h index 59c67b7c2..df8b84744 100644 --- a/src/helper/internet-stack-helper.h +++ b/src/helper/internet-stack-helper.h @@ -179,7 +179,9 @@ private: * @param interface Interface ID on the Ipv4 on which you want to enable tracing. */ virtual void EnablePcapIpv4Internal (std::string prefix, - Ptr ipv4, uint32_t interface); + Ptr ipv4, + uint32_t interface, + bool explicitFilename); /** * @brief Enable ascii trace output on the indicated Ipv4 and interface pair. @@ -191,8 +193,11 @@ private: * @param ipv4 Ptr to the Ipv4 interface on which you want to enable tracing. * @param interface Interface ID on the Ipv4 on which you want to enable tracing. */ - virtual void EnableAsciiIpv4Internal (Ptr stream, std::string prefix, - Ptr ipv4, uint32_t interface); + virtual void EnableAsciiIpv4Internal (Ptr stream, + std::string prefix, + Ptr ipv4, + uint32_t interface, + bool explicitFilename); /** * @brief Enable pcap output the indicated Ipv4 and interface pair. @@ -203,7 +208,9 @@ private: * @param interface Interface ID on the Ipv4 on which you want to enable tracing. */ virtual void EnablePcapIpv6Internal (std::string prefix, - Ptr ipv6, uint32_t interface); + Ptr ipv6, + uint32_t interface, + bool explicitFilename); /** * @brief Enable ascii trace output on the indicated Ipv4 and interface pair. @@ -215,8 +222,11 @@ private: * @param ipv4 Ptr to the Ipv4 interface on which you want to enable tracing. * @param interface Interface ID on the Ipv4 on which you want to enable tracing. */ - virtual void EnableAsciiIpv6Internal (Ptr stream, std::string prefix, - Ptr ipv6, uint32_t interface); + virtual void EnableAsciiIpv6Internal (Ptr stream, + std::string prefix, + Ptr ipv6, + uint32_t interface, + bool explicitFilename); void Initialize (void); ObjectFactory m_tcpFactory; diff --git a/src/helper/point-to-point-helper.cc b/src/helper/point-to-point-helper.cc index b1d021b22..127993edb 100644 --- a/src/helper/point-to-point-helper.cc +++ b/src/helper/point-to-point-helper.cc @@ -100,7 +100,11 @@ PointToPointHelper::EnablePcapInternal (std::string prefix, Ptr nd, b } void -PointToPointHelper::EnableAsciiInternal (Ptr stream, std::string prefix, Ptr nd) +PointToPointHelper::EnableAsciiInternal ( + Ptr stream, + std::string prefix, + Ptr nd, + bool explicitFilename) { // // All of the ascii enable functions vector through here including the ones @@ -135,7 +139,17 @@ PointToPointHelper::EnableAsciiInternal (Ptr stream, std::s // name of the file given the prefix. // AsciiTraceHelper asciiTraceHelper; - std::string filename = asciiTraceHelper.GetFilenameFromDevice (prefix, device); + + std::string filename; + if (explicitFilename) + { + filename = prefix; + } + else + { + filename = asciiTraceHelper.GetFilenameFromDevice (prefix, device); + } + Ptr theStream = asciiTraceHelper.CreateFileStream (filename, "w"); // diff --git a/src/helper/point-to-point-helper.h b/src/helper/point-to-point-helper.h index 4eac8cf84..ebcf5badb 100644 --- a/src/helper/point-to-point-helper.h +++ b/src/helper/point-to-point-helper.h @@ -169,7 +169,11 @@ private: * \param prefix Filename prefix to use for ascii trace files. * \param nd Net device for which you want to enable tracing. */ - virtual void EnableAsciiInternal (Ptr stream, std::string prefix, Ptr nd); + virtual void EnableAsciiInternal ( + Ptr stream, + std::string prefix, + Ptr nd, + bool explicitFilename); ObjectFactory m_queueFactory; ObjectFactory m_channelFactory; diff --git a/src/helper/trace-helper.cc b/src/helper/trace-helper.cc index a1d26d1d9..b6177ce26 100644 --- a/src/helper/trace-helper.cc +++ b/src/helper/trace-helper.cc @@ -480,9 +480,9 @@ PcapHelperForDevice::EnablePcap (std::string prefix, uint32_t nodeid, uint32_t d // Public API // void -AsciiTraceHelperForDevice::EnableAscii (std::string prefix, Ptr nd) +AsciiTraceHelperForDevice::EnableAscii (std::string prefix, Ptr nd, bool explicitFilename) { - EnableAsciiInternal (Ptr (), prefix, nd); + EnableAsciiInternal (Ptr (), prefix, nd, explicitFilename); } // @@ -491,16 +491,16 @@ AsciiTraceHelperForDevice::EnableAscii (std::string prefix, Ptr nd) void AsciiTraceHelperForDevice::EnableAscii (Ptr stream, Ptr nd) { - EnableAsciiInternal (stream, std::string (), nd); + EnableAsciiInternal (stream, std::string (), nd, false); } // // Public API // void -AsciiTraceHelperForDevice::EnableAscii (std::string prefix, std::string ndName) +AsciiTraceHelperForDevice::EnableAscii (std::string prefix, std::string ndName, bool explicitFilename) { - EnableAsciiImpl (Ptr (), prefix, ndName); + EnableAsciiImpl (Ptr (), prefix, ndName, explicitFilename); } // @@ -509,17 +509,21 @@ AsciiTraceHelperForDevice::EnableAscii (std::string prefix, std::string ndName) void AsciiTraceHelperForDevice::EnableAscii (Ptr stream, std::string ndName) { - EnableAsciiImpl (stream, std::string (), ndName); + EnableAsciiImpl (stream, std::string (), ndName, false); } // // Private API // void -AsciiTraceHelperForDevice::EnableAsciiImpl (Ptr stream, std::string prefix, std::string ndName) +AsciiTraceHelperForDevice::EnableAsciiImpl ( + Ptr stream, + std::string prefix, + std::string ndName, + bool explicitFilename) { Ptr nd = Names::Find (ndName); - EnableAsciiInternal (stream, prefix, nd); + EnableAsciiInternal (stream, prefix, nd, explicitFilename); } // @@ -549,7 +553,7 @@ AsciiTraceHelperForDevice::EnableAsciiImpl (Ptr stream, std for (NetDeviceContainer::Iterator i = d.Begin (); i != d.End (); ++i) { Ptr dev = *i; - EnableAsciiInternal (stream, prefix, dev); + EnableAsciiInternal (stream, prefix, dev, false); } } @@ -613,16 +617,20 @@ AsciiTraceHelperForDevice::EnableAsciiAll (Ptr stream) void AsciiTraceHelperForDevice::EnableAscii (Ptr stream, uint32_t nodeid, uint32_t deviceid) { - EnableAsciiImpl (stream, std::string (), nodeid, deviceid); + EnableAsciiImpl (stream, std::string (), nodeid, deviceid, false); } // // Public API // void -AsciiTraceHelperForDevice::EnableAscii (std::string prefix, uint32_t nodeid, uint32_t deviceid) +AsciiTraceHelperForDevice::EnableAscii ( + std::string prefix, + uint32_t nodeid, + uint32_t deviceid, + bool explicitFilename) { - EnableAsciiImpl (Ptr (), prefix, nodeid, deviceid); + EnableAsciiImpl (Ptr (), prefix, nodeid, deviceid, explicitFilename); } // @@ -633,7 +641,8 @@ AsciiTraceHelperForDevice::EnableAsciiImpl ( Ptr stream, std::string prefix, uint32_t nodeid, - uint32_t deviceid) + uint32_t deviceid, + bool explicitFilename) { NodeContainer n = NodeContainer::GetGlobal (); @@ -650,22 +659,22 @@ AsciiTraceHelperForDevice::EnableAsciiImpl ( Ptr nd = node->GetDevice (deviceid); - EnableAsciiInternal (stream, prefix, nd); + EnableAsciiInternal (stream, prefix, nd, explicitFilename); return; } } void -PcapHelperForIpv4::EnablePcapIpv4 (std::string prefix, Ptr ipv4, uint32_t interface) +PcapHelperForIpv4::EnablePcapIpv4 (std::string prefix, Ptr ipv4, uint32_t interface, bool explicitFilename) { - EnablePcapIpv4Internal (prefix, ipv4, interface); + EnablePcapIpv4Internal (prefix, ipv4, interface, explicitFilename); } void -PcapHelperForIpv4::EnablePcapIpv4 (std::string prefix, std::string ipv4Name, uint32_t interface) +PcapHelperForIpv4::EnablePcapIpv4 (std::string prefix, std::string ipv4Name, uint32_t interface, bool explicitFilename) { Ptr ipv4 = Names::Find (ipv4Name); - EnablePcapIpv4 (prefix, ipv4, interface); + EnablePcapIpv4 (prefix, ipv4, interface, explicitFilename); } void @@ -674,7 +683,7 @@ PcapHelperForIpv4::EnablePcapIpv4 (std::string prefix, Ipv4InterfaceContainer c) for (Ipv4InterfaceContainer::Iterator i = c.Begin (); i != c.End (); ++i) { std::pair, uint32_t> pair = *i; - EnablePcapIpv4 (prefix, pair.first, pair.second); + EnablePcapIpv4 (prefix, pair.first, pair.second, false); } } @@ -689,7 +698,7 @@ PcapHelperForIpv4::EnablePcapIpv4 (std::string prefix, NodeContainer n) { for (uint32_t j = 0; j < ipv4->GetNInterfaces (); ++j) { - EnablePcapIpv4 (prefix, ipv4, j); + EnablePcapIpv4 (prefix, ipv4, j, false); } } } @@ -702,7 +711,7 @@ PcapHelperForIpv4::EnablePcapIpv4All (std::string prefix) } void -PcapHelperForIpv4::EnablePcapIpv4 (std::string prefix, uint32_t nodeid, uint32_t interface) +PcapHelperForIpv4::EnablePcapIpv4 (std::string prefix, uint32_t nodeid, uint32_t interface, bool explicitFilename) { NodeContainer n = NodeContainer::GetGlobal (); @@ -717,7 +726,7 @@ PcapHelperForIpv4::EnablePcapIpv4 (std::string prefix, uint32_t nodeid, uint32_t Ptr ipv4 = node->GetObject (); if (ipv4) { - EnablePcapIpv4 (prefix, ipv4, interface); + EnablePcapIpv4 (prefix, ipv4, interface, explicitFilename); } return; } @@ -727,9 +736,9 @@ PcapHelperForIpv4::EnablePcapIpv4 (std::string prefix, uint32_t nodeid, uint32_t // Public API // void -AsciiTraceHelperForIpv4::EnableAsciiIpv4 (std::string prefix, Ptr ipv4, uint32_t interface) +AsciiTraceHelperForIpv4::EnableAsciiIpv4 (std::string prefix, Ptr ipv4, uint32_t interface, bool explicitFilename) { - EnableAsciiIpv4Internal (Ptr (), prefix, ipv4, interface); + EnableAsciiIpv4Internal (Ptr (), prefix, ipv4, interface, explicitFilename); } // @@ -738,16 +747,20 @@ AsciiTraceHelperForIpv4::EnableAsciiIpv4 (std::string prefix, Ptr ipv4, ui void AsciiTraceHelperForIpv4::EnableAsciiIpv4 (Ptr stream, Ptr ipv4, uint32_t interface) { - EnableAsciiIpv4Internal (stream, std::string (), ipv4, interface); + EnableAsciiIpv4Internal (stream, std::string (), ipv4, interface, false); } // // Public API // void -AsciiTraceHelperForIpv4::EnableAsciiIpv4 (std::string prefix, std::string ipv4Name, uint32_t interface) +AsciiTraceHelperForIpv4::EnableAsciiIpv4 ( + std::string prefix, + std::string ipv4Name, + uint32_t interface, + bool explicitFilename) { - EnableAsciiIpv4Impl (Ptr (), prefix, ipv4Name, interface); + EnableAsciiIpv4Impl (Ptr (), prefix, ipv4Name, interface, explicitFilename); } // @@ -756,7 +769,7 @@ AsciiTraceHelperForIpv4::EnableAsciiIpv4 (std::string prefix, std::string ipv4Na void AsciiTraceHelperForIpv4::EnableAsciiIpv4 (Ptr stream, std::string ipv4Name, uint32_t interface) { - EnableAsciiIpv4Impl (stream, std::string (), ipv4Name, interface); + EnableAsciiIpv4Impl (stream, std::string (), ipv4Name, interface, false); } // @@ -767,10 +780,11 @@ AsciiTraceHelperForIpv4::EnableAsciiIpv4Impl ( Ptr stream, std::string prefix, std::string ipv4Name, - uint32_t interface) + uint32_t interface, + bool explicitFilename) { Ptr ipv4 = Names::Find (ipv4Name); - EnableAsciiIpv4Internal (stream, prefix, ipv4, interface); + EnableAsciiIpv4Internal (stream, prefix, ipv4, interface, explicitFilename); } // @@ -800,7 +814,7 @@ AsciiTraceHelperForIpv4::EnableAsciiIpv4Impl (Ptr stream, s for (Ipv4InterfaceContainer::Iterator i = c.Begin (); i != c.End (); ++i) { std::pair, uint32_t> pair = *i; - EnableAsciiIpv4Internal (stream, prefix, pair.first, pair.second); + EnableAsciiIpv4Internal (stream, prefix, pair.first, pair.second, false); } } @@ -836,7 +850,7 @@ AsciiTraceHelperForIpv4::EnableAsciiIpv4Impl (Ptr stream, s { for (uint32_t j = 0; j < ipv4->GetNInterfaces (); ++j) { - EnableAsciiIpv4Internal (stream, prefix, ipv4, j); + EnableAsciiIpv4Internal (stream, prefix, ipv4, j, false); } } } @@ -864,18 +878,22 @@ AsciiTraceHelperForIpv4::EnableAsciiIpv4All (Ptr stream) // Public API // void -AsciiTraceHelperForIpv4::EnableAsciiIpv4 (Ptr stream, uint32_t nodeid, uint32_t interface) +AsciiTraceHelperForIpv4::EnableAsciiIpv4 ( + Ptr stream, + uint32_t nodeid, + uint32_t interface, + bool explicitFilename) { - EnableAsciiIpv4Impl (stream, std::string (), nodeid, interface); + EnableAsciiIpv4Impl (stream, std::string (), nodeid, interface, explicitFilename); } // // Public API // void -AsciiTraceHelperForIpv4::EnableAsciiIpv4 (std::string prefix, uint32_t nodeid, uint32_t interface) +AsciiTraceHelperForIpv4::EnableAsciiIpv4 (std::string prefix, uint32_t nodeid, uint32_t interface, bool explicitFilename) { - EnableAsciiIpv4Impl (Ptr (), prefix, nodeid, interface); + EnableAsciiIpv4Impl (Ptr (), prefix, nodeid, interface, explicitFilename); } // @@ -886,7 +904,8 @@ AsciiTraceHelperForIpv4::EnableAsciiIpv4Impl ( Ptr stream, std::string prefix, uint32_t nodeid, - uint32_t interface) + uint32_t interface, + bool explicitFilename) { NodeContainer n = NodeContainer::GetGlobal (); @@ -901,7 +920,7 @@ AsciiTraceHelperForIpv4::EnableAsciiIpv4Impl ( Ptr ipv4 = node->GetObject (); if (ipv4) { - EnableAsciiIpv4Internal (stream, prefix, ipv4, interface); + EnableAsciiIpv4Internal (stream, prefix, ipv4, interface, explicitFilename); } return; @@ -909,16 +928,16 @@ AsciiTraceHelperForIpv4::EnableAsciiIpv4Impl ( } void -PcapHelperForIpv6::EnablePcapIpv6 (std::string prefix, Ptr ipv6, uint32_t interface) +PcapHelperForIpv6::EnablePcapIpv6 (std::string prefix, Ptr ipv6, uint32_t interface, bool explicitFilename) { - EnablePcapIpv6Internal (prefix, ipv6, interface); + EnablePcapIpv6Internal (prefix, ipv6, interface, explicitFilename); } void -PcapHelperForIpv6::EnablePcapIpv6 (std::string prefix, std::string ipv6Name, uint32_t interface) +PcapHelperForIpv6::EnablePcapIpv6 (std::string prefix, std::string ipv6Name, uint32_t interface, bool explicitFilename) { Ptr ipv6 = Names::Find (ipv6Name); - EnablePcapIpv6 (prefix, ipv6, interface); + EnablePcapIpv6 (prefix, ipv6, interface, explicitFilename); } void @@ -927,7 +946,7 @@ PcapHelperForIpv6::EnablePcapIpv6 (std::string prefix, Ipv6InterfaceContainer c) for (Ipv6InterfaceContainer::Iterator i = c.Begin (); i != c.End (); ++i) { std::pair, uint32_t> pair = *i; - EnablePcapIpv6 (prefix, pair.first, pair.second); + EnablePcapIpv6 (prefix, pair.first, pair.second, false); } } @@ -942,7 +961,7 @@ PcapHelperForIpv6::EnablePcapIpv6 (std::string prefix, NodeContainer n) { for (uint32_t j = 0; j < ipv6->GetNInterfaces (); ++j) { - EnablePcapIpv6 (prefix, ipv6, j); + EnablePcapIpv6 (prefix, ipv6, j, false); } } } @@ -955,7 +974,7 @@ PcapHelperForIpv6::EnablePcapIpv6All (std::string prefix) } void -PcapHelperForIpv6::EnablePcapIpv6 (std::string prefix, uint32_t nodeid, uint32_t interface) +PcapHelperForIpv6::EnablePcapIpv6 (std::string prefix, uint32_t nodeid, uint32_t interface, bool explicitFilename) { NodeContainer n = NodeContainer::GetGlobal (); @@ -970,7 +989,7 @@ PcapHelperForIpv6::EnablePcapIpv6 (std::string prefix, uint32_t nodeid, uint32_t Ptr ipv6 = node->GetObject (); if (ipv6) { - EnablePcapIpv6 (prefix, ipv6, interface); + EnablePcapIpv6 (prefix, ipv6, interface, explicitFilename); } return; } @@ -980,9 +999,9 @@ PcapHelperForIpv6::EnablePcapIpv6 (std::string prefix, uint32_t nodeid, uint32_t // Public API // void -AsciiTraceHelperForIpv6::EnableAsciiIpv6 (std::string prefix, Ptr ipv6, uint32_t interface) +AsciiTraceHelperForIpv6::EnableAsciiIpv6 (std::string prefix, Ptr ipv6, uint32_t interface, bool explicitFilename) { - EnableAsciiIpv6Internal (Ptr (), prefix, ipv6, interface); + EnableAsciiIpv6Internal (Ptr (), prefix, ipv6, interface, explicitFilename); } // @@ -991,16 +1010,16 @@ AsciiTraceHelperForIpv6::EnableAsciiIpv6 (std::string prefix, Ptr ipv6, ui void AsciiTraceHelperForIpv6::EnableAsciiIpv6 (Ptr stream, Ptr ipv6, uint32_t interface) { - EnableAsciiIpv6Internal (stream, std::string (), ipv6, interface); + EnableAsciiIpv6Internal (stream, std::string (), ipv6, interface, false); } // // Public API // void -AsciiTraceHelperForIpv6::EnableAsciiIpv6 (std::string prefix, std::string ipv6Name, uint32_t interface) +AsciiTraceHelperForIpv6::EnableAsciiIpv6 (std::string prefix, std::string ipv6Name, uint32_t interface, bool explicitFilename) { - EnableAsciiIpv6Impl (Ptr (), prefix, ipv6Name, interface); + EnableAsciiIpv6Impl (Ptr (), prefix, ipv6Name, interface, explicitFilename); } // @@ -1009,7 +1028,7 @@ AsciiTraceHelperForIpv6::EnableAsciiIpv6 (std::string prefix, std::string ipv6Na void AsciiTraceHelperForIpv6::EnableAsciiIpv6 (Ptr stream, std::string ipv6Name, uint32_t interface) { - EnableAsciiIpv6Impl (stream, std::string (), ipv6Name, interface); + EnableAsciiIpv6Impl (stream, std::string (), ipv6Name, interface, false); } // @@ -1020,10 +1039,11 @@ AsciiTraceHelperForIpv6::EnableAsciiIpv6Impl ( Ptr stream, std::string prefix, std::string ipv6Name, - uint32_t interface) + uint32_t interface, + bool explicitFilename) { Ptr ipv6 = Names::Find (ipv6Name); - EnableAsciiIpv6Internal (stream, prefix, ipv6, interface); + EnableAsciiIpv6Internal (stream, prefix, ipv6, interface, explicitFilename); } // @@ -1053,7 +1073,7 @@ AsciiTraceHelperForIpv6::EnableAsciiIpv6Impl (Ptr stream, s for (Ipv6InterfaceContainer::Iterator i = c.Begin (); i != c.End (); ++i) { std::pair, uint32_t> pair = *i; - EnableAsciiIpv6Internal (stream, prefix, pair.first, pair.second); + EnableAsciiIpv6Internal (stream, prefix, pair.first, pair.second, false); } } @@ -1089,7 +1109,7 @@ AsciiTraceHelperForIpv6::EnableAsciiIpv6Impl (Ptr stream, s { for (uint32_t j = 0; j < ipv6->GetNInterfaces (); ++j) { - EnableAsciiIpv6Internal (stream, prefix, ipv6, j); + EnableAsciiIpv6Internal (stream, prefix, ipv6, j, false); } } } @@ -1119,16 +1139,16 @@ AsciiTraceHelperForIpv6::EnableAsciiIpv6All (Ptr stream) void AsciiTraceHelperForIpv6::EnableAsciiIpv6 (Ptr stream, uint32_t nodeid, uint32_t interface) { - EnableAsciiIpv6Impl (stream, std::string (), nodeid, interface); + EnableAsciiIpv6Impl (stream, std::string (), nodeid, interface, false); } // // Public API // void -AsciiTraceHelperForIpv6::EnableAsciiIpv6 (std::string prefix, uint32_t nodeid, uint32_t interface) +AsciiTraceHelperForIpv6::EnableAsciiIpv6 (std::string prefix, uint32_t nodeid, uint32_t interface, bool explicitFilename) { - EnableAsciiIpv6Impl (Ptr (), prefix, nodeid, interface); + EnableAsciiIpv6Impl (Ptr (), prefix, nodeid, interface, explicitFilename); } // @@ -1139,7 +1159,8 @@ AsciiTraceHelperForIpv6::EnableAsciiIpv6Impl ( Ptr stream, std::string prefix, uint32_t nodeid, - uint32_t interface) + uint32_t interface, + bool explicitFilename) { NodeContainer n = NodeContainer::GetGlobal (); @@ -1154,7 +1175,7 @@ AsciiTraceHelperForIpv6::EnableAsciiIpv6Impl ( Ptr ipv6 = node->GetObject (); if (ipv6) { - EnableAsciiIpv6Internal (stream, prefix, ipv6, interface); + EnableAsciiIpv6Internal (stream, prefix, ipv6, interface, explicitFilename); } return; diff --git a/src/helper/trace-helper.h b/src/helper/trace-helper.h index 6d9a7a4db..cc04f79ef 100644 --- a/src/helper/trace-helper.h +++ b/src/helper/trace-helper.h @@ -445,17 +445,22 @@ public: * @param stream An OutputStreamWrapper representing an existing file to use * when writing trace data. * @param prefix Filename prefix to use for ascii trace files. - * @param nd Net device for which you want to enable tracing. + * @param nd Net device for which you want to enable tracing + * @param explicitFilename Treat the prefix as an explicit filename if true */ - virtual void EnableAsciiInternal (Ptr stream, std::string prefix, Ptr nd) = 0; + virtual void EnableAsciiInternal (Ptr stream, + std::string prefix, + Ptr nd, + bool explicitFilename) = 0; /** * @brief Enable ascii trace output on the indicated net device. * * @param prefix Filename prefix to use for ascii files. * @param nd Net device for which you want to enable tracing. + * @param explicitFilename Treat the prefix as an explicit filename if true */ - void EnableAscii (std::string prefix, Ptr nd); + void EnableAscii (std::string prefix, Ptr nd, bool explicitFilename = false); /** * @brief Enable ascii trace output on the indicated net device. @@ -472,8 +477,9 @@ public: * * @param filename filename prefix to use for ascii files. * @param ndName The name of the net device in which you want to enable tracing. + * @param explicitFilename Treat the prefix as an explicit filename if true */ - void EnableAscii (std::string prefix, std::string ndName); + void EnableAscii (std::string prefix, std::string ndName, bool explicitFilename = false); /** * @brief Enable ascii trace output the indicated net device using a device @@ -549,8 +555,9 @@ public: * ascii tracing * @param deviceid The device identifier/index of the device on which to enable * ascii tracing + * @param explicitFilename Treat the prefix as an explicit filename if true */ - void EnableAscii (std::string prefix, uint32_t nodeid, uint32_t deviceid); + void EnableAscii (std::string prefix, uint32_t nodeid, uint32_t deviceid, bool explicitFilename); /** * @brief Enable ascii trace output on the device specified by a global @@ -569,7 +576,11 @@ private: /** * @internal Avoid code duplication. */ - void EnableAsciiImpl (Ptr stream, std::string prefix, uint32_t nodeid, uint32_t deviceid); + void EnableAsciiImpl (Ptr stream, + std::string prefix, + uint32_t nodeid, + uint32_t deviceid, + bool explicitFilename); /** * @internal Avoid code duplication. @@ -584,13 +595,12 @@ private: /** * @internal Avoid code duplication. */ - void EnableAsciiImpl (Ptr stream, std::string prefix, std::string ndName); + void EnableAsciiImpl (Ptr stream, std::string prefix, std::string ndName, bool explicitFilename); /** * @internal Avoid code duplication. */ - void EnableAsciiImpl (Ptr stream, std::string prefix, Ptr nd); - + void EnableAsciiImpl (Ptr stream, std::string prefix, Ptr nd, bool explicitFilename); }; /** @@ -617,8 +627,12 @@ public: * @param prefix Filename prefix to use for pcap files. * @param ipv4 Ptr on which you want to enable tracing. * @param interface Interface on ipv4 on which you want to enable tracing. + * @param explicitFilename Treat the prefix as an explicit filename if true */ - virtual void EnablePcapIpv4Internal (std::string prefix, Ptr ipv4, uint32_t interface) = 0; + virtual void EnablePcapIpv4Internal (std::string prefix, + Ptr ipv4, + uint32_t interface, + bool explicitFilename) = 0; /** * @brief Enable pcap output the indicated Ipv4 and interface pair. @@ -626,8 +640,9 @@ public: * @param prefix Filename prefix to use for pcap files. * @param ipv4 Ptr on which you want to enable tracing. * @param interface Interface on ipv4 on which you want to enable tracing. + * @param explicitFilename Treat the prefix as an explicit filename if true. */ - void EnablePcapIpv4 (std::string prefix, Ptr ipv4, uint32_t interface); + void EnablePcapIpv4 (std::string prefix, Ptr ipv4, uint32_t interface, bool explicitFilename = false); /** * @brief Enable pcap output the indicated Ipv4 and interface pair using a @@ -636,8 +651,9 @@ public: * @param filename filename prefix to use for pcap files. * @param ipv4Name Name of the Ptr on which you want to enable tracing. * @param interface Interface on ipv4 on which you want to enable tracing. + * @param explicitFilename Treat the prefix as an explicit filename if true. */ - void EnablePcapIpv4 (std::string prefix, std::string ipv4Name, uint32_t interface); + void EnablePcapIpv4 (std::string prefix, std::string ipv4Name, uint32_t interface, bool explicitFilename = false); /** * @brief Enable pcap output on each Ipv4 and interface pair in the container. @@ -663,8 +679,13 @@ public: * determines the Ipv4. * * @param prefix Filename prefix to use for pcap files. + * @param nodeid The node identifier/number of the node on which to enable + * ascii tracing + * @param deviceid The device identifier/index of the device on which to enable + * ascii tracing + * @param explicitFilename Treat the prefix as an explicit filename if true */ - void EnablePcapIpv4 (std::string prefix, uint32_t nodeid, uint32_t interface); + void EnablePcapIpv4 (std::string prefix, uint32_t nodeid, uint32_t interface, bool explicitFilename); /** * @brief Enable pcap output on all Ipv4 and interface pairs existing in the @@ -716,9 +737,13 @@ public: * @param prefix Filename prefix to use for ascii trace files. * @param ipv4 Ptr on which you want to enable tracing. * @param interface The interface on which you want to enable tracing. + * @param explicitFilename Treat the prefix as an explicit filename if true. */ - virtual void EnableAsciiIpv4Internal (Ptr stream, std::string prefix, - Ptr ipv4, uint32_t interface) = 0; + virtual void EnableAsciiIpv4Internal (Ptr stream, + std::string prefix, + Ptr ipv4, + uint32_t interface, + bool explicitFilename) = 0; /** * @brief Enable ascii trace output on the indicated Ipv4 and interface pair. @@ -726,8 +751,9 @@ public: * @param prefix Filename prefix to use for ascii files. * @param ipv4 Ptr on which you want to enable tracing. * @param interface The interface on which you want to enable tracing. + * @param explicitFilename Treat the prefix as an explicit filename if true. */ - void EnableAsciiIpv4 (std::string prefix, Ptr ipv4, uint32_t interface); + void EnableAsciiIpv4 (std::string prefix, Ptr ipv4, uint32_t interface, bool explicitFilename = false); /** * @brief Enable ascii trace output on the indicated Ipv4 and interface pair. @@ -746,8 +772,9 @@ public: * @param filename filename prefix to use for ascii files. * @param ipv4Name The name of the Ipv4 on which you want to enable tracing. * @param interface The interface on which you want to enable tracing. + * @param explicitFilename Treat the prefix as an explicit filename if true. */ - void EnableAsciiIpv4 (std::string prefix, std::string ipv4Name, uint32_t interface); + void EnableAsciiIpv4 (std::string prefix, std::string ipv4Name, uint32_t interface, bool explicitFilename = false); /** * @brief Enable ascii trace output the indicated net device using a device @@ -828,8 +855,9 @@ public: * ascii tracing * @param interface The device identifier/index of the device on which to enable * ascii tracing + * @param explicitFilename Treat the prefix as an explicit filename if true */ - void EnableAsciiIpv4 (std::string prefix, uint32_t nodeid, uint32_t deviceid); + void EnableAsciiIpv4 (std::string prefix, uint32_t nodeid, uint32_t deviceid, bool explicitFilename); /** * @brief Enable pcap output on the Ipv4 and interface pair specified by a @@ -842,14 +870,19 @@ public: * @param nodeid The node identifier/number of the node on which to enable * ascii tracing * @param interface The interface on which you want to enable tracing. + * @param explicitFilename Treat the prefix as an explicit filename if true */ - void EnableAsciiIpv4 (Ptr stream, uint32_t nodeid, uint32_t interface); + void EnableAsciiIpv4 (Ptr stream, uint32_t nodeid, uint32_t interface, bool explicitFilename); private: /** * @internal Avoid code duplication. */ - void EnableAsciiIpv4Impl (Ptr stream, std::string prefix, uint32_t nodeid, uint32_t interface); + void EnableAsciiIpv4Impl (Ptr stream, + std::string prefix, + uint32_t nodeid, + uint32_t interface, + bool explicitFilename); /** * @internal Avoid code duplication. @@ -864,13 +897,20 @@ private: /** * @internal Avoid code duplication. */ - void EnableAsciiIpv4Impl (Ptr stream, std::string prefix, std::string ipv4Name, uint32_t interface); + void EnableAsciiIpv4Impl (Ptr stream, + std::string prefix, + std::string ipv4Name, + uint32_t interface, + bool explicitFilename); /** * @internal Avoid code duplication. */ - void EnableAsciiIpv4Impl (Ptr stream, std::string prefix, Ptr ipv4, uint32_t interface); - + void EnableAsciiIpv4Impl (Ptr stream, + std::string prefix, + Ptr ipv4, + uint32_t interface, + bool explicitFilename); }; /** @@ -897,8 +937,12 @@ public: * @param prefix Filename prefix to use for pcap files. * @param ipv6 Ptr on which you want to enable tracing. * @param interface Interface on ipv6 on which you want to enable tracing. + * @param explicitFilename Treat the prefix as an explicit filename if true. */ - virtual void EnablePcapIpv6Internal (std::string prefix, Ptr ipv6, uint32_t interface) = 0; + virtual void EnablePcapIpv6Internal (std::string prefix, + Ptr ipv6, + uint32_t interface, + bool explicitFilename) = 0; /** * @brief Enable pcap output the indicated Ipv6 and interface pair. @@ -906,8 +950,9 @@ public: * @param prefix Filename prefix to use for pcap files. * @param ipv6 Ptr on which you want to enable tracing. * @param interface Interface on ipv6 on which you want to enable tracing. + * @param explicitFilename Treat the prefix as an explicit filename if true. */ - void EnablePcapIpv6 (std::string prefix, Ptr ipv6, uint32_t interface); + void EnablePcapIpv6 (std::string prefix, Ptr ipv6, uint32_t interface, bool explicitFilename = false); /** * @brief Enable pcap output the indicated Ipv6 and interface pair using a @@ -916,8 +961,9 @@ public: * @param filename filename prefix to use for pcap files. * @param ipv6Name Name of the Ptr on which you want to enable tracing. * @param interface Interface on ipv6 on which you want to enable tracing. + * @param explicitFilename Treat the prefix as an explicit filename if true. */ - void EnablePcapIpv6 (std::string prefix, std::string ipv6Name, uint32_t interface); + void EnablePcapIpv6 (std::string prefix, std::string ipv6Name, uint32_t interface, bool explicitFilename = false); /** * @brief Enable pcap output on each Ipv6 and interface pair in the container. @@ -943,8 +989,9 @@ public: * determines the Ipv6. * * @param prefix Filename prefix to use for pcap files. + * @param explicitFilename Treat the prefix as an explicit filename if true */ - void EnablePcapIpv6 (std::string prefix, uint32_t nodeid, uint32_t interface); + void EnablePcapIpv6 (std::string prefix, uint32_t nodeid, uint32_t interface, bool explicitFilename); /** * @brief Enable pcap output on all Ipv6 and interface pairs existing in the @@ -995,9 +1042,13 @@ public: * @param prefix Filename prefix to use for ascii trace files. * @param ipv6 Ptr on which you want to enable tracing. * @param interface The interface on which you want to enable tracing. + * @param explicitFilename Treat the prefix as an explicit filename if true. */ - virtual void EnableAsciiIpv6Internal (Ptr stream, std::string prefix, - Ptr ipv6, uint32_t interface) = 0; + virtual void EnableAsciiIpv6Internal (Ptr stream, + std::string prefix, + Ptr ipv6, + uint32_t interface, + bool explicitFilename) = 0; /** * @brief Enable ascii trace output on the indicated Ipv6 and interface pair. @@ -1005,9 +1056,9 @@ public: * @param prefix Filename prefix to use for ascii files. * @param ipv6 Ptr on which you want to enable tracing. * @param interface The interface on which you want to enable tracing. + * @param explicitFilename Treat the prefix as an explicit filename if true. */ - void EnableAsciiIpv6 (std::string prefix, - Ptr ipv6, uint32_t interface); + void EnableAsciiIpv6 (std::string prefix, Ptr ipv6, uint32_t interface, bool explicitFilename = false); /** * @brief Enable ascii trace output on the indicated Ipv6 and interface pair. @@ -1017,8 +1068,7 @@ public: * @param ipv6 Ptr on which you want to enable tracing. * @param interface The interface on which you want to enable tracing. */ - void EnableAsciiIpv6 (Ptr stream, - Ptr ipv6, uint32_t interface); + void EnableAsciiIpv6 (Ptr stream, Ptr ipv6, uint32_t interface); /** * @brief Enable ascii trace output the indicated Ipv6 and interface pair @@ -1027,9 +1077,9 @@ public: * @param filename filename prefix to use for ascii files. * @param ipv6Name The name of the Ipv6 on which you want to enable tracing. * @param interface The interface on which you want to enable tracing. + * @param explicitFilename Treat the prefix as an explicit filename if true. */ - void EnableAsciiIpv6 (std::string prefix, - std::string ipv6Name, uint32_t interface); + void EnableAsciiIpv6 (std::string prefix, std::string ipv6Name, uint32_t interface, bool explicitFilename = false); /** * @brief Enable ascii trace output the indicated net device using a device @@ -1040,8 +1090,7 @@ public: * @param ipv6Name The name of the Ipv6 on which you want to enable tracing. * @param interface The interface on which you want to enable tracing. */ - void EnableAsciiIpv6 (Ptr stream, - std::string ipv6Name, uint32_t interface); + void EnableAsciiIpv6 (Ptr stream, std::string ipv6Name, uint32_t interface); /** * @brief Enable ascii trace output on each Ipv6 and interface pair in the @@ -1094,8 +1143,9 @@ public: * ascii tracing * @param interface The device identifier/index of the device on which to enable * ascii tracing + * @param explicitFilename Treat the prefix as an explicit filename if true. */ - void EnableAsciiIpv6 (std::string prefix, uint32_t nodeid, uint32_t deviceid); + void EnableAsciiIpv6 (std::string prefix, uint32_t nodeid, uint32_t interface, bool explicitFilename); /** * @brief Enable pcap output on the Ipv6 and interface pair specified by a @@ -1132,7 +1182,11 @@ private: /** * @internal Avoid code duplication. */ - void EnableAsciiIpv6Impl (Ptr stream, std::string prefix, uint32_t nodeid, uint32_t interface); + void EnableAsciiIpv6Impl (Ptr stream, + std::string prefix, + uint32_t nodeid, + uint32_t interface, + bool explicitFilename); /** * @internal Avoid code duplication. @@ -1147,13 +1201,20 @@ private: /** * @internal Avoid code duplication. */ - void EnableAsciiIpv6Impl (Ptr stream, std::string prefix, std::string ipv6Name, uint32_t interface); + void EnableAsciiIpv6Impl (Ptr stream, + std::string prefix, + std::string ipv6Name, + uint32_t interface, + bool explicitFilename); /** * @internal Avoid code duplication. */ - void EnableAsciiIpv6Impl (Ptr stream, std::string prefix, Ptr ipv6, uint32_t interface); - + void EnableAsciiIpv6Impl (Ptr stream, + std::string prefix, + Ptr ipv6, + uint32_t interface, + bool explicitFilename); }; } // namespace ns3 diff --git a/src/helper/yans-wifi-helper.cc b/src/helper/yans-wifi-helper.cc index 7bf7519e1..d98c9cefc 100644 --- a/src/helper/yans-wifi-helper.cc +++ b/src/helper/yans-wifi-helper.cc @@ -398,6 +398,7 @@ YansWifiPhyHelper::EnablePcapInternal (std::string prefix, Ptr nd, bo NS_ABORT_MSG_IF (phy == 0, "YansWifiPhyHelper::EnablePcapInternal(): Phy layer in WifiNetDevice must be set"); PcapHelper pcapHelper; + std::string filename; if (explicitFilename) { @@ -415,7 +416,11 @@ YansWifiPhyHelper::EnablePcapInternal (std::string prefix, Ptr nd, bo } void -YansWifiPhyHelper::EnableAsciiInternal (Ptr stream, std::string prefix, Ptr nd) +YansWifiPhyHelper::EnableAsciiInternal ( + Ptr stream, + std::string prefix, + Ptr nd, + bool explicitFilename) { // // All of the ascii enable functions vector through here including the ones @@ -453,8 +458,16 @@ YansWifiPhyHelper::EnableAsciiInternal (Ptr stream, std::st // name of the file given the prefix. // AsciiTraceHelper asciiTraceHelper; - std::string filename = asciiTraceHelper.GetFilenameFromDevice (prefix, device); - Ptr theStream = asciiTraceHelper.CreateFileStream (filename, "w"); + + std::string filename; + if (explicitFilename) + { + filename = prefix; + } + else + { + filename = asciiTraceHelper.GetFilenameFromDevice (prefix, device); + } // // We could go poking through the phy and the state looking for the diff --git a/src/helper/yans-wifi-helper.h b/src/helper/yans-wifi-helper.h index 25cd9a476..d49070dce 100644 --- a/src/helper/yans-wifi-helper.h +++ b/src/helper/yans-wifi-helper.h @@ -244,7 +244,10 @@ private: * @param promiscuous If true capture all possible packets available at the device. * @param explicitFilename Treat the prefix as an explicit filename if true */ - virtual void EnablePcapInternal (std::string prefix, Ptr nd, bool promiscuous, bool explicitFilename); + virtual void EnablePcapInternal (std::string prefix, + Ptr nd, + bool promiscuous, + bool explicitFilename); /** * \brief Enable ascii trace output on the indicated net device. @@ -257,7 +260,10 @@ private: * \param prefix Filename prefix to use for ascii trace files. * \param nd Net device for which you want to enable tracing. */ - virtual void EnableAsciiInternal (Ptr stream, std::string prefix, Ptr nd); + virtual void EnableAsciiInternal (Ptr stream, + std::string prefix, + Ptr nd, + bool explicitFilename); ObjectFactory m_phy; ObjectFactory m_errorRateModel;