remove realtime public API.
--- a/bindings/python/ns3_module_core.py Mon Oct 27 12:17:38 2008 +0100
+++ b/bindings/python/ns3_module_core.py Mon Oct 27 12:47:33 2008 +0100
@@ -199,6 +199,9 @@
def register_types_ns3_Config(module):
root_module = module.get_root()
+ ## config.h: ns3::Config::MatchContainer [class]
+ module.add_class('MatchContainer')
+ module.add_container('std::vector< ns3::Ptr< ns3::Object > >', 'ns3::Ptr< ns3::Object >', container_type='vector')
def register_types_ns3_olsr(module):
root_module = module.get_root()
@@ -272,6 +275,7 @@
register_Ns3TypeIdValue_methods(root_module, root_module['ns3::TypeIdValue'])
register_Ns3UintegerValue_methods(root_module, root_module['ns3::UintegerValue'])
register_Ns3TracedValue__Unsigned_int_methods(root_module, root_module['ns3::TracedValue< unsigned int >'])
+ register_Ns3ConfigMatchContainer_methods(root_module, root_module['ns3::Config::MatchContainer'])
return
def register_Ns3AttributeList_methods(root_module, cls):
@@ -736,6 +740,14 @@
cls.add_method('Join',
'void',
[])
+ ## system-thread.h: void ns3::SystemThread::Shutdown() [member function]
+ cls.add_method('Shutdown',
+ 'void',
+ [])
+ ## system-thread.h: bool ns3::SystemThread::Break() [member function]
+ cls.add_method('Break',
+ 'bool',
+ [])
return
def register_Ns3SystemWallClockMs_methods(root_module, cls):
@@ -1867,7 +1879,7 @@
cls.add_method('ConnectWithoutContext',
'void',
[param('ns3::CallbackBase const &', 'cb')])
- ## traced-value.h: void ns3::TracedValue<unsigned int>::Connect(ns3::CallbackBase const & cb, std::basic_string<char,std::char_traits<char>,std::allocator<char> > path) [member function]
+ ## traced-value.h: void ns3::TracedValue<unsigned int>::Connect(ns3::CallbackBase const & cb, std::string path) [member function]
cls.add_method('Connect',
'void',
[param('ns3::CallbackBase const &', 'cb'), param('std::string', 'path')])
@@ -1875,7 +1887,7 @@
cls.add_method('DisconnectWithoutContext',
'void',
[param('ns3::CallbackBase const &', 'cb')])
- ## traced-value.h: void ns3::TracedValue<unsigned int>::Disconnect(ns3::CallbackBase const & cb, std::basic_string<char,std::char_traits<char>,std::allocator<char> > path) [member function]
+ ## traced-value.h: void ns3::TracedValue<unsigned int>::Disconnect(ns3::CallbackBase const & cb, std::string path) [member function]
cls.add_method('Disconnect',
'void',
[param('ns3::CallbackBase const &', 'cb'), param('std::string', 'path')])
@@ -1890,6 +1902,65 @@
is_const=True)
return
+def register_Ns3ConfigMatchContainer_methods(root_module, cls):
+ ## config.h: ns3::Config::MatchContainer::MatchContainer(ns3::Config::MatchContainer const & arg0) [copy constructor]
+ cls.add_constructor([param('ns3::Config::MatchContainer const &', 'arg0')])
+ ## config.h: ns3::Config::MatchContainer::MatchContainer() [constructor]
+ cls.add_constructor([])
+ ## config.h: ns3::Config::MatchContainer::MatchContainer(std::vector<ns3::Ptr<ns3::Object>, std::allocator<ns3::Ptr<ns3::Object> > > const & objects, std::vector<std::string, std::allocator<std::string> > const & contexts, std::string path) [constructor]
+ cls.add_constructor([param('std::vector< ns3::Ptr< ns3::Object > > const &', 'objects'), param('std::vector< std::string > const &', 'contexts'), param('std::string', 'path')])
+ ## config.h: __gnu_cxx::__normal_iterator<const ns3::Ptr<ns3::Object>*,std::vector<ns3::Ptr<ns3::Object>, std::allocator<ns3::Ptr<ns3::Object> > > > ns3::Config::MatchContainer::Begin() const [member function]
+ cls.add_method('Begin',
+ '__gnu_cxx::__normal_iterator< ns3::Ptr< ns3::Object > const, std::vector< ns3::Ptr< ns3::Object > > >',
+ [],
+ is_const=True)
+ ## config.h: __gnu_cxx::__normal_iterator<const ns3::Ptr<ns3::Object>*,std::vector<ns3::Ptr<ns3::Object>, std::allocator<ns3::Ptr<ns3::Object> > > > ns3::Config::MatchContainer::End() const [member function]
+ cls.add_method('End',
+ '__gnu_cxx::__normal_iterator< ns3::Ptr< ns3::Object > const, std::vector< ns3::Ptr< ns3::Object > > >',
+ [],
+ is_const=True)
+ ## config.h: uint32_t ns3::Config::MatchContainer::GetN() const [member function]
+ cls.add_method('GetN',
+ 'uint32_t',
+ [],
+ is_const=True)
+ ## config.h: ns3::Ptr<ns3::Object> ns3::Config::MatchContainer::Get(uint32_t i) const [member function]
+ cls.add_method('Get',
+ 'ns3::Ptr< ns3::Object >',
+ [param('uint32_t', 'i')],
+ is_const=True)
+ ## config.h: std::string ns3::Config::MatchContainer::GetMatchedPath(uint32_t i) const [member function]
+ cls.add_method('GetMatchedPath',
+ 'std::string',
+ [param('uint32_t', 'i')],
+ is_const=True)
+ ## config.h: std::string ns3::Config::MatchContainer::GetPath() const [member function]
+ cls.add_method('GetPath',
+ 'std::string',
+ [],
+ is_const=True)
+ ## config.h: void ns3::Config::MatchContainer::Set(std::string name, ns3::AttributeValue const & value) [member function]
+ cls.add_method('Set',
+ 'void',
+ [param('std::string', 'name'), param('ns3::AttributeValue const &', 'value')])
+ ## config.h: void ns3::Config::MatchContainer::Connect(std::string name, ns3::CallbackBase const & cb) [member function]
+ cls.add_method('Connect',
+ 'void',
+ [param('std::string', 'name'), param('ns3::CallbackBase const &', 'cb')])
+ ## config.h: void ns3::Config::MatchContainer::ConnectWithoutContext(std::string name, ns3::CallbackBase const & cb) [member function]
+ cls.add_method('ConnectWithoutContext',
+ 'void',
+ [param('std::string', 'name'), param('ns3::CallbackBase const &', 'cb')])
+ ## config.h: void ns3::Config::MatchContainer::Disconnect(std::string name, ns3::CallbackBase const & cb) [member function]
+ cls.add_method('Disconnect',
+ 'void',
+ [param('std::string', 'name'), param('ns3::CallbackBase const &', 'cb')])
+ ## config.h: void ns3::Config::MatchContainer::DisconnectWithoutContext(std::string name, ns3::CallbackBase const & cb) [member function]
+ cls.add_method('DisconnectWithoutContext',
+ 'void',
+ [param('std::string', 'name'), param('ns3::CallbackBase const &', 'cb')])
+ return
+
def register_functions(root_module):
module = root_module
## boolean.h: extern ns3::Ptr<ns3::AttributeChecker const> ns3::MakeBooleanChecker() [free function]
@@ -1910,7 +1981,7 @@
module.add_function('TypeNameGet',
'std::string',
[],
- template_parameters=['long'])
+ template_parameters=['long long'])
## type-name.h: extern std::string ns3::TypeNameGet() [free function]
module.add_function('TypeNameGet',
'std::string',
@@ -1930,7 +2001,7 @@
module.add_function('TypeNameGet',
'std::string',
[],
- template_parameters=['unsigned long'])
+ template_parameters=['unsigned long long'])
## type-name.h: extern std::string ns3::TypeNameGet() [free function]
module.add_function('TypeNameGet',
'std::string',
@@ -1946,22 +2017,14 @@
'std::string',
[],
template_parameters=['unsigned char'])
+ ## log.h: extern void ns3::LogComponentDisable(char const * name, ns3::LogLevel level) [free function]
+ module.add_function('LogComponentDisable',
+ 'void',
+ [param('char const *', 'name'), param('ns3::LogLevel', 'level')])
## string.h: extern ns3::Ptr<ns3::AttributeChecker const> ns3::MakeStringChecker() [free function]
module.add_function('MakeStringChecker',
'ns3::Ptr< ns3::AttributeChecker const >',
[])
- ## enum.h: extern ns3::Ptr<ns3::AttributeChecker const> ns3::MakeEnumChecker(int v1, std::string n1, int v2=0, std::string n2="", int v3=0, std::string n3="", int v4=0, std::string n4="", int v5=0, std::string n5="", int v6=0, std::string n6="", int v7=0, std::string n7="", int v8=0, std::string n8="", int v9=0, std::string n9="", int v10=0, std::string n10="", int v11=0, std::string n11="", int v12=0, std::string n12="") [free function]
- module.add_function('MakeEnumChecker',
- 'ns3::Ptr< ns3::AttributeChecker const >',
- [param('int', 'v1'), param('std::string', 'n1'), param('int', 'v2', default_value='0'), param('std::string', 'n2', default_value='""'), param('int', 'v3', default_value='0'), param('std::string', 'n3', default_value='""'), param('int', 'v4', default_value='0'), param('std::string', 'n4', default_value='""'), param('int', 'v5', default_value='0'), param('std::string', 'n5', default_value='""'), param('int', 'v6', default_value='0'), param('std::string', 'n6', default_value='""'), param('int', 'v7', default_value='0'), param('std::string', 'n7', default_value='""'), param('int', 'v8', default_value='0'), param('std::string', 'n8', default_value='""'), param('int', 'v9', default_value='0'), param('std::string', 'n9', default_value='""'), param('int', 'v10', default_value='0'), param('std::string', 'n10', default_value='""'), param('int', 'v11', default_value='0'), param('std::string', 'n11', default_value='""'), param('int', 'v12', default_value='0'), param('std::string', 'n12', default_value='""')])
- ## log.h: extern void ns3::LogComponentEnableAll(ns3::LogLevel level) [free function]
- module.add_function('LogComponentEnableAll',
- 'void',
- [param('ns3::LogLevel', 'level')])
- ## type-id.h: extern ns3::Ptr<ns3::AttributeChecker const> ns3::MakeTypeIdChecker() [free function]
- module.add_function('MakeTypeIdChecker',
- 'ns3::Ptr< ns3::AttributeChecker const >',
- [])
## ptr.h: extern ns3::Ptr<ns3::PointerValue> ns3::Create() [free function]
module.add_function('Create',
'ns3::Ptr< ns3::PointerValue >',
@@ -1972,6 +2035,14 @@
'ns3::Ptr< ns3::ObjectVectorValue >',
[],
template_parameters=['ns3::ObjectVectorValue'])
+ ## log.h: extern void ns3::LogComponentEnableAll(ns3::LogLevel level) [free function]
+ module.add_function('LogComponentEnableAll',
+ 'void',
+ [param('ns3::LogLevel', 'level')])
+ ## type-id.h: extern ns3::Ptr<ns3::AttributeChecker const> ns3::MakeTypeIdChecker() [free function]
+ module.add_function('MakeTypeIdChecker',
+ 'ns3::Ptr< ns3::AttributeChecker const >',
+ [])
## object-factory.h: extern ns3::Ptr<ns3::AttributeChecker const> ns3::MakeObjectFactoryChecker() [free function]
module.add_function('MakeObjectFactoryChecker',
'ns3::Ptr< ns3::AttributeChecker const >',
@@ -1992,14 +2063,14 @@
module.add_function('MakeRandomVariableChecker',
'ns3::Ptr< ns3::AttributeChecker const >',
[])
- ## log.h: extern void ns3::LogComponentDisable(char const * name, ns3::LogLevel level) [free function]
- module.add_function('LogComponentDisable',
- 'void',
- [param('char const *', 'name'), param('ns3::LogLevel', 'level')])
## log.h: extern void ns3::LogComponentEnable(char const * name, ns3::LogLevel level) [free function]
module.add_function('LogComponentEnable',
'void',
[param('char const *', 'name'), param('ns3::LogLevel', 'level')])
+ ## enum.h: extern ns3::Ptr<ns3::AttributeChecker const> ns3::MakeEnumChecker(int v1, std::string n1, int v2=0, std::string n2="", int v3=0, std::string n3="", int v4=0, std::string n4="", int v5=0, std::string n5="", int v6=0, std::string n6="", int v7=0, std::string n7="", int v8=0, std::string n8="", int v9=0, std::string n9="", int v10=0, std::string n10="", int v11=0, std::string n11="", int v12=0, std::string n12="") [free function]
+ module.add_function('MakeEnumChecker',
+ 'ns3::Ptr< ns3::AttributeChecker const >',
+ [param('int', 'v1'), param('std::string', 'n1'), param('int', 'v2', default_value='0'), param('std::string', 'n2', default_value='""'), param('int', 'v3', default_value='0'), param('std::string', 'n3', default_value='""'), param('int', 'v4', default_value='0'), param('std::string', 'n4', default_value='""'), param('int', 'v5', default_value='0'), param('std::string', 'n5', default_value='""'), param('int', 'v6', default_value='0'), param('std::string', 'n6', default_value='""'), param('int', 'v7', default_value='0'), param('std::string', 'n7', default_value='""'), param('int', 'v8', default_value='0'), param('std::string', 'n8', default_value='""'), param('int', 'v9', default_value='0'), param('std::string', 'n9', default_value='""'), param('int', 'v10', default_value='0'), param('std::string', 'n10', default_value='""'), param('int', 'v11', default_value='0'), param('std::string', 'n11', default_value='""'), param('int', 'v12', default_value='0'), param('std::string', 'n12', default_value='""')])
register_functions_ns3_internal(module.get_submodule('internal'), root_module)
register_functions_ns3_TimeStepPrecision(module.get_submodule('TimeStepPrecision'), root_module)
register_functions_ns3_Config(module.get_submodule('Config'), root_module)
@@ -2037,6 +2108,10 @@
module.add_function('SetDefault',
'void',
[param('std::string', 'name'), param('ns3::AttributeValue const &', 'value')])
+ ## config.h: extern ns3::Config::MatchContainer ns3::Config::LookupMatches(std::string path) [free function]
+ module.add_function('LookupMatches',
+ 'ns3::Config::MatchContainer',
+ [param('std::string', 'path')])
## config.h: extern void ns3::Config::Connect(std::string path, ns3::CallbackBase const & cb) [free function]
module.add_function('Connect',
'void',
@@ -2057,6 +2132,10 @@
module.add_function('SetGlobalFailSafe',
'bool',
[param('std::string', 'name'), param('ns3::AttributeValue const &', 'value')])
+ ## config.h: extern void ns3::Config::Disconnect(std::string path, ns3::CallbackBase const & cb) [free function]
+ module.add_function('Disconnect',
+ 'void',
+ [param('std::string', 'path'), param('ns3::CallbackBase const &', 'cb')])
## config.h: extern uint32_t ns3::Config::GetRootNamespaceObjectN() [free function]
module.add_function('GetRootNamespaceObjectN',
'uint32_t',
@@ -2073,10 +2152,6 @@
module.add_function('RegisterRootNamespaceObject',
'void',
[param('ns3::Ptr< ns3::Object >', 'obj')])
- ## config.h: extern void ns3::Config::Disconnect(std::string path, ns3::CallbackBase const & cb) [free function]
- module.add_function('Disconnect',
- 'void',
- [param('std::string', 'path'), param('ns3::CallbackBase const &', 'cb')])
return
def register_functions_ns3_olsr(module, root_module):
--- a/bindings/python/ns3_module_helper.py Mon Oct 27 12:17:38 2008 +0100
+++ b/bindings/python/ns3_module_helper.py Mon Oct 27 12:47:33 2008 +0100
@@ -237,6 +237,10 @@
cls.add_method('Install',
'ns3::NetDeviceContainer',
[param('ns3::NodeContainer const &', 'c'), param('ns3::Ptr< ns3::CsmaChannel >', 'channel')])
+ ## csma-helper.h: void ns3::CsmaHelper::InstallStar(ns3::Ptr<ns3::Node> hub, ns3::NodeContainer spokes, ns3::NetDeviceContainer & hubDevices, ns3::NetDeviceContainer & spokeDevices) [member function]
+ cls.add_method('InstallStar',
+ 'void',
+ [param('ns3::Ptr< ns3::Node >', 'hub'), param('ns3::NodeContainer', 'spokes'), param('ns3::NetDeviceContainer &', 'hubDevices'), param('ns3::NetDeviceContainer &', 'spokeDevices')])
return
def register_Ns3InternetStackHelper_methods(root_module, cls):
@@ -287,6 +291,10 @@
cls.add_constructor([param('ns3::Ipv4InterfaceContainer const &', 'arg0')])
## ipv4-interface-container.h: ns3::Ipv4InterfaceContainer::Ipv4InterfaceContainer() [constructor]
cls.add_constructor([])
+ ## ipv4-interface-container.h: void ns3::Ipv4InterfaceContainer::Add(ns3::Ipv4InterfaceContainer other) [member function]
+ cls.add_method('Add',
+ 'void',
+ [param('ns3::Ipv4InterfaceContainer', 'other')])
## ipv4-interface-container.h: uint32_t ns3::Ipv4InterfaceContainer::GetN() const [member function]
cls.add_method('GetN',
'uint32_t',
@@ -604,6 +612,10 @@
cls.add_method('Install',
'ns3::NetDeviceContainer',
[param('ns3::Ptr< ns3::Node >', 'a'), param('ns3::Ptr< ns3::Node >', 'b')])
+ ## point-to-point-helper.h: void ns3::PointToPointHelper::InstallStar(ns3::Ptr<ns3::Node> hub, ns3::NodeContainer spokes, ns3::NetDeviceContainer & hubDevices, ns3::NetDeviceContainer & spokeDevices) [member function]
+ cls.add_method('InstallStar',
+ 'void',
+ [param('ns3::Ptr< ns3::Node >', 'hub'), param('ns3::NodeContainer', 'spokes'), param('ns3::NetDeviceContainer &', 'hubDevices'), param('ns3::NetDeviceContainer &', 'spokeDevices')])
return
def register_Ns3StaticMulticastRouteHelper_methods(root_module, cls):
--- a/bindings/python/ns3_module_node.py Mon Oct 27 12:17:38 2008 +0100
+++ b/bindings/python/ns3_module_node.py Mon Oct 27 12:47:33 2008 +0100
@@ -2586,10 +2586,18 @@
def register_functions(root_module):
module = root_module
- ## mac48-address.h: extern ns3::Ptr<ns3::AttributeChecker const> ns3::MakeMac48AddressChecker() [free function]
- module.add_function('MakeMac48AddressChecker',
- 'ns3::Ptr< ns3::AttributeChecker const >',
- [])
+ ## address-utils.h: extern void ns3::ReadFrom(ns3::Buffer::Iterator & i, ns3::Mac48Address & ad) [free function]
+ module.add_function('ReadFrom',
+ 'void',
+ [param('ns3::Buffer::Iterator &', 'i'), param('ns3::Mac48Address &', 'ad')])
+ ## address-utils.h: extern void ns3::ReadFrom(ns3::Buffer::Iterator & i, ns3::Address & ad, uint32_t len) [free function]
+ module.add_function('ReadFrom',
+ 'void',
+ [param('ns3::Buffer::Iterator &', 'i'), param('ns3::Address &', 'ad'), param('uint32_t', 'len')])
+ ## address-utils.h: extern void ns3::ReadFrom(ns3::Buffer::Iterator & i, ns3::Ipv4Address & ad) [free function]
+ module.add_function('ReadFrom',
+ 'void',
+ [param('ns3::Buffer::Iterator &', 'i'), param('ns3::Ipv4Address &', 'ad')])
## ipv4-address.h: extern ns3::Ptr<ns3::AttributeChecker const> ns3::MakeIpv4AddressChecker() [free function]
module.add_function('MakeIpv4AddressChecker',
'ns3::Ptr< ns3::AttributeChecker const >',
@@ -2614,18 +2622,10 @@
module.add_function('MakeIpv4MaskChecker',
'ns3::Ptr< ns3::AttributeChecker const >',
[])
- ## address-utils.h: extern void ns3::ReadFrom(ns3::Buffer::Iterator & i, ns3::Mac48Address & ad) [free function]
- module.add_function('ReadFrom',
- 'void',
- [param('ns3::Buffer::Iterator &', 'i'), param('ns3::Mac48Address &', 'ad')])
- ## address-utils.h: extern void ns3::ReadFrom(ns3::Buffer::Iterator & i, ns3::Address & ad, uint32_t len) [free function]
- module.add_function('ReadFrom',
- 'void',
- [param('ns3::Buffer::Iterator &', 'i'), param('ns3::Address &', 'ad'), param('uint32_t', 'len')])
- ## address-utils.h: extern void ns3::ReadFrom(ns3::Buffer::Iterator & i, ns3::Ipv4Address & ad) [free function]
- module.add_function('ReadFrom',
- 'void',
- [param('ns3::Buffer::Iterator &', 'i'), param('ns3::Ipv4Address &', 'ad')])
+ ## mac48-address.h: extern ns3::Ptr<ns3::AttributeChecker const> ns3::MakeMac48AddressChecker() [free function]
+ module.add_function('MakeMac48AddressChecker',
+ 'ns3::Ptr< ns3::AttributeChecker const >',
+ [])
register_functions_ns3_internal(module.get_submodule('internal'), root_module)
register_functions_ns3_TimeStepPrecision(module.get_submodule('TimeStepPrecision'), root_module)
register_functions_ns3_Config(module.get_submodule('Config'), root_module)
--- a/bindings/python/ns3_module_simulator.py Mon Oct 27 12:17:38 2008 +0100
+++ b/bindings/python/ns3_module_simulator.py Mon Oct 27 12:47:33 2008 +0100
@@ -27,8 +27,6 @@
module.add_enum('State', ['RUNNING', 'EXPIRED', 'SUSPENDED'], outer_class=root_module['ns3::Timer'])
## timer-impl.h: ns3::TimerImpl [class]
module.add_class('TimerImpl', allow_subclassing=True)
- ## wallclock-simulator.h: ns3::WallclockSimulator [class]
- module.add_class('WallclockSimulator', is_singleton=True)
## watchdog.h: ns3::Watchdog [class]
module.add_class('Watchdog')
## scheduler.h: ns3::Scheduler [class]
@@ -113,7 +111,6 @@
register_Ns3TimeSquare_methods(root_module, root_module['ns3::TimeSquare'])
register_Ns3Timer_methods(root_module, root_module['ns3::Timer'])
register_Ns3TimerImpl_methods(root_module, root_module['ns3::TimerImpl'])
- register_Ns3WallclockSimulator_methods(root_module, root_module['ns3::WallclockSimulator'])
register_Ns3Watchdog_methods(root_module, root_module['ns3::Watchdog'])
register_Ns3Scheduler_methods(root_module, root_module['ns3::Scheduler'])
register_Ns3SchedulerEvent_methods(root_module, root_module['ns3::Scheduler::Event'])
@@ -264,6 +261,11 @@
'void',
[param('ns3::Ptr< ns3::SimulatorImpl >', 'impl')],
is_static=True)
+ ## simulator.h: static ns3::Ptr<ns3::SimulatorImpl> ns3::Simulator::GetImplementation() [member function]
+ cls.add_method('GetImplementation',
+ 'ns3::Ptr< ns3::SimulatorImpl >',
+ [],
+ is_static=True)
## simulator.h: static void ns3::Simulator::SetScheduler(ns3::Ptr<ns3::Scheduler> scheduler) [member function]
cls.add_method('SetScheduler',
'void',
@@ -665,21 +667,6 @@
is_pure_virtual=True, is_virtual=True)
return
-def register_Ns3WallclockSimulator_methods(root_module, cls):
- ## wallclock-simulator.h: ns3::WallclockSimulator::WallclockSimulator(ns3::WallclockSimulator const & arg0) [copy constructor]
- cls.add_constructor([param('ns3::WallclockSimulator const &', 'arg0')])
- ## wallclock-simulator.h: static void ns3::WallclockSimulator::Schedule(ns3::Time const & time, void (*)( ) * f) [member function]
- cls.add_method('Schedule',
- 'void',
- [param('ns3::Time const &', 'time'), param('void ( * ) ( ) *', 'f')],
- is_static=True)
- ## wallclock-simulator.h: static void ns3::WallclockSimulator::ScheduleNow(void (*)( ) * f) [member function]
- cls.add_method('ScheduleNow',
- 'void',
- [param('void ( * ) ( ) *', 'f')],
- is_static=True)
- return
-
def register_Ns3Watchdog_methods(root_module, cls):
## watchdog.h: ns3::Watchdog::Watchdog(ns3::Watchdog const & arg0) [copy constructor]
cls.add_constructor([param('ns3::Watchdog const &', 'arg0')])
@@ -847,16 +834,6 @@
'ns3::Ptr< ns3::Scheduler >',
[],
is_pure_virtual=True, is_const=True, is_virtual=True)
- ## simulator-impl.h: void ns3::SimulatorImpl::ScheduleWallclock(ns3::Time const & time, ns3::EventImpl * event) [member function]
- cls.add_method('ScheduleWallclock',
- 'void',
- [param('ns3::Time const &', 'time'), param('ns3::EventImpl *', 'event')],
- is_pure_virtual=True, is_virtual=True)
- ## simulator-impl.h: void ns3::SimulatorImpl::ScheduleWallclockNow(ns3::EventImpl * event) [member function]
- cls.add_method('ScheduleWallclockNow',
- 'void',
- [param('ns3::EventImpl *', 'event')],
- is_pure_virtual=True, is_virtual=True)
return
def register_Ns3Synchronizer_methods(root_module, cls):
@@ -1194,16 +1171,6 @@
'ns3::Ptr< ns3::Scheduler >',
[],
is_const=True, is_virtual=True)
- ## default-simulator-impl.h: void ns3::DefaultSimulatorImpl::ScheduleWallclock(ns3::Time const & time, ns3::EventImpl * event) [member function]
- cls.add_method('ScheduleWallclock',
- 'void',
- [param('ns3::Time const &', 'time'), param('ns3::EventImpl *', 'event')],
- is_virtual=True)
- ## default-simulator-impl.h: void ns3::DefaultSimulatorImpl::ScheduleWallclockNow(ns3::EventImpl * event) [member function]
- cls.add_method('ScheduleWallclockNow',
- 'void',
- [param('ns3::EventImpl *', 'event')],
- is_virtual=True)
return
def register_Ns3HeapScheduler_methods(root_module, cls):
@@ -1402,16 +1369,14 @@
'ns3::Ptr< ns3::Scheduler >',
[],
is_const=True, is_virtual=True)
- ## realtime-simulator-impl.h: void ns3::RealtimeSimulatorImpl::ScheduleWallclock(ns3::Time const & time, ns3::EventImpl * event) [member function]
- cls.add_method('ScheduleWallclock',
+ ## realtime-simulator-impl.h: void ns3::RealtimeSimulatorImpl::ScheduleRealtime(ns3::Time const & time, ns3::EventImpl * event) [member function]
+ cls.add_method('ScheduleRealtime',
'void',
- [param('ns3::Time const &', 'time'), param('ns3::EventImpl *', 'event')],
- is_virtual=True)
- ## realtime-simulator-impl.h: void ns3::RealtimeSimulatorImpl::ScheduleWallclockNow(ns3::EventImpl * event) [member function]
- cls.add_method('ScheduleWallclockNow',
+ [param('ns3::Time const &', 'time'), param('ns3::EventImpl *', 'event')])
+ ## realtime-simulator-impl.h: void ns3::RealtimeSimulatorImpl::ScheduleRealtimeNow(ns3::EventImpl * event) [member function]
+ cls.add_method('ScheduleRealtimeNow',
'void',
- [param('ns3::EventImpl *', 'event')],
- is_virtual=True)
+ [param('ns3::EventImpl *', 'event')])
## realtime-simulator-impl.h: ns3::Time ns3::RealtimeSimulatorImpl::RealtimeNow() const [member function]
cls.add_method('RealtimeNow',
'ns3::Time',
--- a/bindings/python/ns3modulegen_generated.py Mon Oct 27 12:17:38 2008 +0100
+++ b/bindings/python/ns3modulegen_generated.py Mon Oct 27 12:47:33 2008 +0100
@@ -274,6 +274,7 @@
def register_types_ns3_Config(module):
root_module = module.get_root()
+ module.add_container('std::vector< std::string >', 'std::string', container_type='vector')
def register_types_ns3_olsr(module):
root_module = module.get_root()
--- a/samples/main-ns2-mob.cc Mon Oct 27 12:17:38 2008 +0100
+++ b/samples/main-ns2-mob.cc Mon Oct 27 12:47:33 2008 +0100
@@ -4,6 +4,7 @@
#include "ns3/helper-module.h"
#include "ns3/mobility-module.h"
#include <iostream>
+#include <fstream>
using namespace ns3;
--- a/samples/main-test-sync.cc Mon Oct 27 12:17:38 2008 +0100
+++ b/samples/main-test-sync.cc Mon Oct 27 12:47:33 2008 +0100
@@ -1,13 +1,14 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
#include "ns3/simulator.h"
-#include "ns3/wallclock-simulator.h"
+#include "ns3/realtime-simulator-impl.h"
#include "ns3/nstime.h"
#include "ns3/log.h"
#include "ns3/system-thread.h"
#include "ns3/string.h"
#include "ns3/config.h"
#include "ns3/global-value.h"
+#include "ns3/ptr.h"
#include <unistd.h>
#include <sys/time.h>
@@ -18,7 +19,7 @@
bool gFirstRun = false;
- void
+void
inserted_function (void)
{
NS_ASSERT (gFirstRun);
@@ -26,7 +27,7 @@
Simulator::Now ().GetSeconds () << " s");
}
- void
+void
background_function (void)
{
NS_ASSERT (gFirstRun);
@@ -34,7 +35,7 @@
Simulator::Now ().GetSeconds () << " s");
}
- void
+void
first_function (void)
{
NS_LOG_UNCOND ("first_function() called at " <<
@@ -46,8 +47,6 @@
{
public:
FakeNetDevice ();
- void Doit1 (void);
- void Doit2 (void);
void Doit3 (void);
void Doit4 (void);
};
@@ -57,37 +56,7 @@
NS_LOG_FUNCTION_NOARGS ();
}
- void
-FakeNetDevice::Doit1 (void)
-{
- NS_LOG_FUNCTION_NOARGS ();
- sleep (1);
- for (uint32_t i = 0.001; i < 10000; ++i)
- {
- //
- // Exercise the relative now path
- //
- Simulator::ScheduleNow (&inserted_function);
- usleep (1000);
- }
-}
-
- void
-FakeNetDevice::Doit2 (void)
-{
- NS_LOG_FUNCTION_NOARGS ();
- sleep (1);
- for (uint32_t i = 0.001; i < 10000; ++i)
- {
- //
- // Exercise the relative schedule path
- //
- Simulator::Schedule (Seconds (0), &inserted_function);
- usleep (1000);
- }
-}
-
- void
+void
FakeNetDevice::Doit3 (void)
{
NS_LOG_FUNCTION_NOARGS ();
@@ -97,12 +66,12 @@
//
// Exercise the realtime relative now path
//
- WallclockSimulator::ScheduleNow (&inserted_function);
+ DynamicCast<RealtimeSimulatorImpl> (Simulator::GetImplementation ())->ScheduleRealtimeNow (MakeEvent (&inserted_function));
usleep (1000);
}
}
- void
+void
FakeNetDevice::Doit4 (void)
{
NS_LOG_FUNCTION_NOARGS ();
@@ -112,12 +81,12 @@
//
// Exercise the realtime relative schedule path
//
- WallclockSimulator::Schedule (Seconds (0), &inserted_function);
+ DynamicCast<RealtimeSimulatorImpl> (Simulator::GetImplementation ())->ScheduleRealtime (Seconds (0), MakeEvent (&inserted_function));
usleep (1000);
}
}
- void
+void
test (void)
{
GlobalValue::Bind ("SimulatorImplementationType",
@@ -128,7 +97,7 @@
//
// Make sure ScheduleNow works when the system isn't running
//
- WallclockSimulator::ScheduleNow(&first_function);
+ DynamicCast<RealtimeSimulatorImpl> (Simulator::GetImplementation ())->ScheduleRealtimeNow(MakeEvent (&first_function));
//
// drive the progression of m_currentTs at a ten millisecond rate
@@ -138,14 +107,6 @@
Simulator::Schedule (Seconds (d), &background_function);
}
- Ptr<SystemThread> st1 = Create<SystemThread> (
- MakeCallback (&FakeNetDevice::Doit1, &fnd));
- st1->Start ();
-
- Ptr<SystemThread> st2 = Create<SystemThread> (
- MakeCallback (&FakeNetDevice::Doit2, &fnd));
- st2->Start ();
-
Ptr<SystemThread> st3 = Create<SystemThread> (
MakeCallback (&FakeNetDevice::Doit3, &fnd));
st3->Start ();
@@ -156,17 +117,15 @@
Simulator::Stop (Seconds (15.0));
Simulator::Run ();
- st1->Join ();
- st2->Join ();
st3->Join ();
st4->Join ();
Simulator::Destroy ();
}
- int
+int
main (int argc, char *argv[])
{
- for (;;)
+ while (true)
{
test ();
}
--- a/src/simulator/default-simulator-impl.cc Mon Oct 27 12:17:38 2008 +0100
+++ b/src/simulator/default-simulator-impl.cc Mon Oct 27 12:47:33 2008 +0100
@@ -316,17 +316,6 @@
return TimeStep (0x7fffffffffffffffLL);
}
-void
-DefaultSimulatorImpl::ScheduleWallclock (Time const &time, EventImpl *event)
-{
- NS_FATAL_ERROR ("not implemented");
-}
-void
-DefaultSimulatorImpl::ScheduleWallclockNow (EventImpl *event)
-{
- NS_FATAL_ERROR ("not implemented");
-}
-
} // namespace ns3
--- a/src/simulator/default-simulator-impl.h Mon Oct 27 12:17:38 2008 +0100
+++ b/src/simulator/default-simulator-impl.h Mon Oct 27 12:47:33 2008 +0100
@@ -59,8 +59,6 @@
virtual Time GetMaximumSimulationTime (void) const;
virtual void SetScheduler (Ptr<Scheduler> scheduler);
virtual Ptr<Scheduler> GetScheduler (void) const;
- virtual void ScheduleWallclock (Time const &time, EventImpl *event);
- virtual void ScheduleWallclockNow (EventImpl *event);
private:
void ProcessOneEvent (void);
--- a/src/simulator/realtime-simulator-impl.cc Mon Oct 27 12:17:38 2008 +0100
+++ b/src/simulator/realtime-simulator-impl.cc Mon Oct 27 12:47:33 2008 +0100
@@ -632,7 +632,7 @@
// Schedule an event for a _relative_ time in the future.
//
void
-RealtimeSimulatorImpl::ScheduleWallclock (Time const &time, EventImpl *impl)
+RealtimeSimulatorImpl::ScheduleRealtime (Time const &time, EventImpl *impl)
{
NS_LOG_FUNCTION (time << impl);
@@ -641,7 +641,7 @@
CriticalSection cs (m_mutex);
uint64_t ts = m_synchronizer->GetCurrentRealtime () + time.GetTimeStep ();
- NS_ASSERT_MSG (ts >= m_currentTs, "RealtimeSimulatorImpl::ScheduleWallClock(): schedule for time < m_currentTs");
+ NS_ASSERT_MSG (ts >= m_currentTs, "RealtimeSimulatorImpl::ScheduleRealtime(): schedule for time < m_currentTs");
Scheduler::Event ev;
ev.impl = impl;
ev.key.m_ts = ts;
@@ -655,7 +655,7 @@
}
void
-RealtimeSimulatorImpl::ScheduleWallclockNow (EventImpl *impl)
+RealtimeSimulatorImpl::ScheduleRealtimeNow (EventImpl *impl)
{
NS_LOG_FUNCTION_NOARGS ();
{
@@ -666,7 +666,7 @@
// realtime clock. If we're not, then m_currentTs is were we stopped.
//
uint64_t ts = m_running ? m_synchronizer->GetCurrentRealtime () : m_currentTs;
- NS_ASSERT_MSG (ts >= m_currentTs, "RealtimeSimulatorImpl::ScheduleWallclockNow(): schedule for time < m_currentTs");
+ NS_ASSERT_MSG (ts >= m_currentTs, "RealtimeSimulatorImpl::ScheduleRealtimeNow(): schedule for time < m_currentTs");
Scheduler::Event ev;
ev.impl = impl;
ev.key.m_ts = ts;
--- a/src/simulator/realtime-simulator-impl.h Mon Oct 27 12:17:38 2008 +0100
+++ b/src/simulator/realtime-simulator-impl.h Mon Oct 27 12:47:33 2008 +0100
@@ -69,9 +69,9 @@
virtual Time GetMaximumSimulationTime (void) const;
virtual void SetScheduler (Ptr<Scheduler> scheduler);
virtual Ptr<Scheduler> GetScheduler (void) const;
- virtual void ScheduleWallclock (Time const &time, EventImpl *event);
- virtual void ScheduleWallclockNow (EventImpl *event);
+ void ScheduleRealtime (Time const &time, EventImpl *event);
+ void ScheduleRealtimeNow (EventImpl *event);
Time RealtimeNow (void) const;
void SetSynchronizationMode (RealtimeSimulatorImpl::SynchronizationMode mode);
--- a/src/simulator/simulator-impl.h Mon Oct 27 12:17:38 2008 +0100
+++ b/src/simulator/simulator-impl.h Mon Oct 27 12:47:33 2008 +0100
@@ -52,8 +52,6 @@
virtual Time GetMaximumSimulationTime (void) const = 0;
virtual void SetScheduler (Ptr<Scheduler> scheduler) = 0;
virtual Ptr<Scheduler> GetScheduler (void) const = 0;
- virtual void ScheduleWallclock (Time const &time, EventImpl *event) = 0;
- virtual void ScheduleWallclockNow (EventImpl *event) = 0;
};
} // namespace ns3
--- a/src/simulator/simulator.cc Mon Oct 27 12:17:38 2008 +0100
+++ b/src/simulator/simulator.cc Mon Oct 27 12:47:33 2008 +0100
@@ -19,7 +19,6 @@
*/
#include "simulator.h"
-#include "wallclock-simulator.h"
#include "simulator-impl.h"
#include "default-simulator-impl.h"
#include "realtime-simulator-impl.h"
@@ -286,35 +285,12 @@
{
NS_FATAL_ERROR ("TODO");
}
-
-
-void
-WallclockSimulator::Schedule (Time const &time, EventImpl *ev)
+Ptr<SimulatorImpl>
+Simulator::GetImplementation (void)
{
- NS_LOG_FUNCTION (time << ev);
- return GetImpl ()->ScheduleWallclock (time, ev);
+ return GetImpl ();
}
-void
-WallclockSimulator::ScheduleNow (EventImpl *ev)
-{
- NS_LOG_FUNCTION (ev);
- return GetImpl ()->ScheduleWallclockNow (ev);
-}
-
-void
-WallclockSimulator::Schedule (Time const &time, void (*f) (void))
-{
- NS_LOG_FUNCTION (time << f);
- return WallclockSimulator::Schedule (time, MakeEvent (f));
-}
-
-void
-WallclockSimulator::ScheduleNow (void (*f) (void))
-{
- NS_LOG_FUNCTION (f);
- return WallclockSimulator::ScheduleNow (MakeEvent (f));
-}
} // namespace ns3
--- a/src/simulator/simulator.h Mon Oct 27 12:17:38 2008 +0100
+++ b/src/simulator/simulator.h Mon Oct 27 12:47:33 2008 +0100
@@ -71,6 +71,8 @@
*/
static void SetImplementation (Ptr<SimulatorImpl> impl);
+ static Ptr<SimulatorImpl> GetImplementation (void);
+
/**
* \param scheduler a new event scheduler
*
--- a/src/simulator/wallclock-simulator.h Mon Oct 27 12:17:38 2008 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,475 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2008 University of Washington
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#ifndef WALLCLOCK_SIMULATOR_H
-#define WALLCLOCK_SIMULATOR_H
-
-#include "simulator.h"
-#include "make-event.h"
-
-namespace ns3 {
-
-/**
- * \ingroup simulator
- *
- * \brief Extension class to control the scheduling of real-time simulation
- * events. Intended to be used by threads driven by "external" system
- * events and will schedule events using the current real-time instead of
- * the current simulation time.
- */
-class WallclockSimulator
-{
-public:
- /**
- * Schedule an event to expire at the relative real-time "time"
- * is reached. This can be thought of as scheduling an event
- * for the current real-time plus the Time passed as a parameter
- *
- * When the event expires (when it becomes due to be run), the
- * input method will be invoked on the input object.
- *
- * @param time the relative expiration time of the event.
- * @param mem_ptr member method pointer to invoke
- * @param obj the object on which to invoke the member method
- * @returns an id for the scheduled event.
- */
- template <typename MEM, typename OBJ>
- static void Schedule (Time const &time, MEM mem_ptr, OBJ obj);
-
- /**
- * @param time the relative expiration time of the event.
- * @param mem_ptr member method pointer to invoke
- * @param obj the object on which to invoke the member method
- * @param a1 the first argument to pass to the invoked method
- * @returns an id for the scheduled event.
- */
- template <typename MEM, typename OBJ, typename T1>
- static void Schedule (Time const &time, MEM mem_ptr, OBJ obj, T1 a1);
-
- /**
- * @param time the relative expiration time of the event.
- * @param mem_ptr member method pointer to invoke
- * @param obj the object on which to invoke the member method
- * @param a1 the first argument to pass to the invoked method
- * @param a2 the second argument to pass to the invoked method
- * @returns an id for the scheduled event.
- */
- template <typename MEM, typename OBJ, typename T1, typename T2>
- static void Schedule (Time const &time, MEM mem_ptr, OBJ obj, T1 a1, T2 a2);
-
- /**
- * @param time the relative expiration time of the event.
- * @param mem_ptr member method pointer to invoke
- * @param obj the object on which to invoke the member method
- * @param a1 the first argument to pass to the invoked method
- * @param a2 the second argument to pass to the invoked method
- * @param a3 the third argument to pass to the invoked method
- * @returns an id for the scheduled event.
- */
- template <typename MEM, typename OBJ,
- typename T1, typename T2, typename T3>
- static void Schedule (Time const &time, MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3);
-
- /**
- * @param time the relative expiration time of the event.
- * @param mem_ptr member method pointer to invoke
- * @param obj the object on which to invoke the member method
- * @param a1 the first argument to pass to the invoked method
- * @param a2 the second argument to pass to the invoked method
- * @param a3 the third argument to pass to the invoked method
- * @param a4 the fourth argument to pass to the invoked method
- * @returns an id for the scheduled event.
- */
- template <typename MEM, typename OBJ,
- typename T1, typename T2, typename T3, typename T4>
- static void Schedule (Time const &time, MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3, T4 a4);
-
- /**
- * @param time the relative expiration time of the event.
- * @param mem_ptr member method pointer to invoke
- * @param obj the object on which to invoke the member method
- * @param a1 the first argument to pass to the invoked method
- * @param a2 the second argument to pass to the invoked method
- * @param a3 the third argument to pass to the invoked method
- * @param a4 the fourth argument to pass to the invoked method
- * @param a5 the fifth argument to pass to the invoked method
- * @returns an id for the scheduled event.
- */
- template <typename MEM, typename OBJ,
- typename T1, typename T2, typename T3, typename T4, typename T5>
- static void Schedule (Time const &time, MEM mem_ptr, OBJ obj,
- T1 a1, T2 a2, T3 a3, T4 a4, T5 a5);
- /**
- * @param time the relative expiration time of the event.
- * @param f the function to invoke
- * @returns an id for the scheduled event.
- */
- static void Schedule (Time const &time, void (*f) (void));
-
- /**
- * @param time the relative expiration time of the event.
- * @param f the function to invoke
- * @param a1 the first argument to pass to the function to invoke
- * @returns an id for the scheduled event.
- */
- template <typename U1, typename T1>
- static void Schedule (Time const &time, void (*f) (U1), T1 a1);
-
- /**
- * @param time the relative expiration time of the event.
- * @param f the function to invoke
- * @param a1 the first argument to pass to the function to invoke
- * @param a2 the second argument to pass to the function to invoke
- * @returns an id for the scheduled event.
- */
- template <typename U1, typename U2, typename T1, typename T2>
- static void Schedule (Time const &time, void (*f) (U1,U2), T1 a1, T2 a2);
-
- /**
- * @param time the relative expiration time of the event.
- * @param f the function to invoke
- * @param a1 the first argument to pass to the function to invoke
- * @param a2 the second argument to pass to the function to invoke
- * @param a3 the third argument to pass to the function to invoke
- * @returns an id for the scheduled event.
- */
- template <typename U1, typename U2, typename U3, typename T1, typename T2, typename T3>
- static void Schedule (Time const &time, void (*f) (U1,U2,U3), T1 a1, T2 a2, T3 a3);
-
- /**
- * @param time the relative expiration time of the event.
- * @param f the function to invoke
- * @param a1 the first argument to pass to the function to invoke
- * @param a2 the second argument to pass to the function to invoke
- * @param a3 the third argument to pass to the function to invoke
- * @param a4 the fourth argument to pass to the function to invoke
- * @returns an id for the scheduled event.
- */
- template <typename U1, typename U2, typename U3, typename U4,
- typename T1, typename T2, typename T3, typename T4>
- static void Schedule (Time const &time, void (*f) (U1,U2,U3,U4), T1 a1, T2 a2, T3 a3, T4 a4);
-
- /**
- * @param time the relative expiration time of the event.
- * @param f the function to invoke
- * @param a1 the first argument to pass to the function to invoke
- * @param a2 the second argument to pass to the function to invoke
- * @param a3 the third argument to pass to the function to invoke
- * @param a4 the fourth argument to pass to the function to invoke
- * @param a5 the fifth argument to pass to the function to invoke
- * @returns an id for the scheduled event.
- */
- template <typename U1, typename U2, typename U3, typename U4, typename U5,
- typename T1, typename T2, typename T3, typename T4, typename T5>
- static void Schedule (Time const &time, void (*f) (U1,U2,U3,U4,U5), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5);
-
- /**
- * Schedule an event to expire Now. All events scheduled to
- * to expire "Now" are scheduled FIFO, after all normal events
- * have expired.
- *
- * @param mem_ptr member method pointer to invoke
- * @param obj the object on which to invoke the member method
- */
- template <typename MEM, typename OBJ>
- static void ScheduleNow (MEM mem_ptr, OBJ obj);
-
- /**
- * @param mem_ptr member method pointer to invoke
- * @param obj the object on which to invoke the member method
- * @param a1 the first argument to pass to the invoked method
- */
- template <typename MEM, typename OBJ,
- typename T1>
- static void ScheduleNow (MEM mem_ptr, OBJ obj, T1 a1);
-
- /**
- * @param mem_ptr member method pointer to invoke
- * @param obj the object on which to invoke the member method
- * @param a1 the first argument to pass to the invoked method
- * @param a2 the second argument to pass to the invoked method
- */
- template <typename MEM, typename OBJ,
- typename T1, typename T2>
- static void ScheduleNow (MEM mem_ptr, OBJ obj, T1 a1, T2 a2);
-
- /**
- * @param mem_ptr member method pointer to invoke
- * @param obj the object on which to invoke the member method
- * @param a1 the first argument to pass to the invoked method
- * @param a2 the second argument to pass to the invoked method
- * @param a3 the third argument to pass to the invoked method
- */
- template <typename MEM, typename OBJ,
- typename T1, typename T2, typename T3>
- static void ScheduleNow (MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3);
-
- /**
- * @param mem_ptr member method pointer to invoke
- * @param obj the object on which to invoke the member method
- * @param a1 the first argument to pass to the invoked method
- * @param a2 the second argument to pass to the invoked method
- * @param a3 the third argument to pass to the invoked method
- * @param a4 the fourth argument to pass to the invoked method
- */
- template <typename MEM, typename OBJ,
- typename T1, typename T2, typename T3, typename T4>
- static void ScheduleNow (MEM mem_ptr, OBJ obj,
- T1 a1, T2 a2, T3 a3, T4 a4);
- /**
- * @param mem_ptr member method pointer to invoke
- * @param obj the object on which to invoke the member method
- * @param a1 the first argument to pass to the invoked method
- * @param a2 the second argument to pass to the invoked method
- * @param a3 the third argument to pass to the invoked method
- * @param a4 the fourth argument to pass to the invoked method
- * @param a5 the fifth argument to pass to the invoked method
- */
- template <typename MEM, typename OBJ,
- typename T1, typename T2, typename T3, typename T4, typename T5>
- static void ScheduleNow (MEM mem_ptr, OBJ obj,
- T1 a1, T2 a2, T3 a3, T4 a4, T5 a5);
- /**
- * @param f the function to invoke
- */
- static void ScheduleNow (void (*f) (void));
-
- /**
- * @param f the function to invoke
- * @param a1 the first argument to pass to the function to invoke
- */
- template <typename U1,
- typename T1>
- static void ScheduleNow (void (*f) (U1), T1 a1);
-
- /**
- * @param f the function to invoke
- * @param a1 the first argument to pass to the function to invoke
- * @param a2 the second argument to pass to the function to invoke
- */
- template <typename U1, typename U2,
- typename T1, typename T2>
- static void ScheduleNow (void (*f) (U1,U2), T1 a1, T2 a2);
-
- /**
- * @param f the function to invoke
- * @param a1 the first argument to pass to the function to invoke
- * @param a2 the second argument to pass to the function to invoke
- * @param a3 the third argument to pass to the function to invoke
- */
- template <typename U1, typename U2, typename U3,
- typename T1, typename T2, typename T3>
- static void ScheduleNow (void (*f) (U1,U2,U3), T1 a1, T2 a2, T3 a3);
-
- /**
- * @param f the function to invoke
- * @param a1 the first argument to pass to the function to invoke
- * @param a2 the second argument to pass to the function to invoke
- * @param a3 the third argument to pass to the function to invoke
- * @param a4 the fourth argument to pass to the function to invoke
- */
- template <typename U1, typename U2, typename U3, typename U4,
- typename T1, typename T2, typename T3, typename T4>
- static void ScheduleNow (void (*f) (U1,U2,U3,U4), T1 a1, T2 a2, T3 a3, T4 a4);
-
- /**
- * @param f the function to invoke
- * @param a1 the first argument to pass to the function to invoke
- * @param a2 the second argument to pass to the function to invoke
- * @param a3 the third argument to pass to the function to invoke
- * @param a4 the fourth argument to pass to the function to invoke
- * @param a5 the fifth argument to pass to the function to invoke
- */
- template <typename U1, typename U2, typename U3, typename U4, typename U5,
- typename T1, typename T2, typename T3, typename T4, typename T5>
- static void ScheduleNow (void (*f) (U1,U2,U3,U4,U5), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5);
-
-private:
- WallclockSimulator ();
- ~WallclockSimulator ();
- static void Schedule (const Time &delay, EventImpl *impl);
- static void ScheduleNow (EventImpl *impl);
-};
-
-template <typename MEM, typename OBJ>
-void WallclockSimulator::Schedule (Time const &time, MEM mem_ptr, OBJ obj)
-{
- return Schedule (time, MakeEvent (mem_ptr, obj));
-}
-
-template <typename MEM, typename OBJ,
- typename T1>
-void WallclockSimulator::Schedule (Time const &time, MEM mem_ptr, OBJ obj, T1 a1)
-{
- return Schedule (time, MakeEvent (mem_ptr, obj, a1));
-}
-
-template <typename MEM, typename OBJ,
- typename T1, typename T2>
-void WallclockSimulator::Schedule (Time const &time, MEM mem_ptr, OBJ obj, T1 a1, T2 a2)
-{
- return Schedule (time, MakeEvent (mem_ptr, obj, a1, a2));
-}
-
-template <typename MEM, typename OBJ,
- typename T1, typename T2, typename T3>
-void WallclockSimulator::Schedule (Time const &time, MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3)
-{
- return Schedule (time, MakeEvent (mem_ptr, obj, a1, a2, a3));
-}
-
-template <typename MEM, typename OBJ,
- typename T1, typename T2, typename T3, typename T4>
-void WallclockSimulator::Schedule (Time const &time, MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3, T4 a4)
-{
- return Schedule (time, MakeEvent (mem_ptr, obj, a1, a2, a3, a4));
-}
-
-template <typename MEM, typename OBJ,
- typename T1, typename T2, typename T3, typename T4, typename T5>
-void WallclockSimulator::Schedule (Time const &time, MEM mem_ptr, OBJ obj,
- T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
-{
- return Schedule (time, MakeEvent (mem_ptr, obj, a1, a2, a3, a4, a5));
-}
-
-template <typename U1, typename T1>
-void WallclockSimulator::Schedule (Time const &time, void (*f) (U1), T1 a1)
-{
- return Schedule (time, MakeEvent (f, a1));
-}
-
-template <typename U1, typename U2,
- typename T1, typename T2>
-void WallclockSimulator::Schedule (Time const &time, void (*f) (U1,U2), T1 a1, T2 a2)
-{
- return Schedule (time, MakeEvent (f, a1, a2));
-}
-
-template <typename U1, typename U2, typename U3,
- typename T1, typename T2, typename T3>
-void WallclockSimulator::Schedule (Time const &time, void (*f) (U1,U2,U3), T1 a1, T2 a2, T3 a3)
-{
- return Schedule (time, MakeEvent (f, a1, a2, a3));
-}
-
-template <typename U1, typename U2, typename U3, typename U4,
- typename T1, typename T2, typename T3, typename T4>
-void WallclockSimulator::Schedule (Time const &time, void (*f) (U1,U2,U3,U4), T1 a1, T2 a2, T3 a3, T4 a4)
-{
- return Schedule (time, MakeEvent (f, a1, a2, a3, a4));
-}
-
-template <typename U1, typename U2, typename U3, typename U4, typename U5,
- typename T1, typename T2, typename T3, typename T4, typename T5>
-void WallclockSimulator::Schedule (Time const &time, void (*f) (U1,U2,U3,U4,U5), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
-{
- return Schedule (time, MakeEvent (f, a1, a2, a3, a4, a5));
-}
-
-template <typename MEM, typename OBJ>
-void
-WallclockSimulator::ScheduleNow (MEM mem_ptr, OBJ obj)
-{
- return ScheduleNow (MakeEvent (mem_ptr, obj));
-}
-
-template <typename MEM, typename OBJ,
- typename T1>
-void
-WallclockSimulator::ScheduleNow (MEM mem_ptr, OBJ obj, T1 a1)
-{
- return ScheduleNow (MakeEvent (mem_ptr, obj, a1));
-}
-
-template <typename MEM, typename OBJ,
- typename T1, typename T2>
-void
-WallclockSimulator::ScheduleNow (MEM mem_ptr, OBJ obj, T1 a1, T2 a2)
-{
- return ScheduleNow (MakeEvent (mem_ptr, obj, a1, a2));
-}
-
-template <typename MEM, typename OBJ,
- typename T1, typename T2, typename T3>
-void
-WallclockSimulator::ScheduleNow (MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3)
-{
- return ScheduleNow (MakeEvent (mem_ptr, obj, a1, a2, a3));
-}
-
-template <typename MEM, typename OBJ,
- typename T1, typename T2, typename T3, typename T4>
-void
-WallclockSimulator::ScheduleNow (MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3, T4 a4)
-{
- return ScheduleNow (MakeEvent (mem_ptr, obj, a1, a2, a3, a4));
-}
-
-template <typename MEM, typename OBJ,
- typename T1, typename T2, typename T3, typename T4, typename T5>
-void
-WallclockSimulator::ScheduleNow (MEM mem_ptr, OBJ obj,
- T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
-{
- return ScheduleNow (MakeEvent (mem_ptr, obj, a1, a2, a3, a4, a5));
-}
-
-template <typename U1,
- typename T1>
-void
-WallclockSimulator::ScheduleNow (void (*f) (U1), T1 a1)
-{
- return ScheduleNow (MakeEvent (f, a1));
-}
-
-template <typename U1, typename U2,
- typename T1, typename T2>
-void
-WallclockSimulator::ScheduleNow (void (*f) (U1,U2), T1 a1, T2 a2)
-{
- return ScheduleNow (MakeEvent (f, a1, a2));
-}
-
-template <typename U1, typename U2, typename U3,
- typename T1, typename T2, typename T3>
-void
-WallclockSimulator::ScheduleNow (void (*f) (U1,U2,U3), T1 a1, T2 a2, T3 a3)
-{
- return ScheduleNow (MakeEvent (f, a1, a2, a3));
-}
-
-template <typename U1, typename U2, typename U3, typename U4,
- typename T1, typename T2, typename T3, typename T4>
-void
-WallclockSimulator::ScheduleNow (void (*f) (U1,U2,U3,U4), T1 a1, T2 a2, T3 a3, T4 a4)
-{
- return ScheduleNow (MakeEvent (f, a1, a2, a3, a4));
-}
-
-template <typename U1, typename U2, typename U3, typename U4, typename U5,
- typename T1, typename T2, typename T3, typename T4, typename T5>
-void
-WallclockSimulator::ScheduleNow (void (*f) (U1,U2,U3,U4,U5), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
-{
- return ScheduleNow (MakeEvent (f, a1, a2, a3, a4, a5));
-}
-
-} // namespace ns3
-
-#endif /* WALLCLOCK_SIMULATOR_H */
--- a/src/simulator/wscript Mon Oct 27 12:17:38 2008 +0100
+++ b/src/simulator/wscript Mon Oct 27 12:47:33 2008 +0100
@@ -76,7 +76,6 @@
'event-id.h',
'event-impl.h',
'simulator.h',
- 'wallclock-simulator.h',
'simulator-impl.h',
'default-simulator-impl.h',
'scheduler.h',