remove realtime public API.
This commit is contained in:
@@ -199,6 +199,9 @@ def register_types_ns3_TimeStepPrecision(module):
|
||||
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 @@ def register_methods(root_module):
|
||||
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 @@ def register_Ns3SystemThread_methods(root_module, cls):
|
||||
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 @@ def register_Ns3TracedValue__Unsigned_int_methods(root_module, cls):
|
||||
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 @@ def register_Ns3TracedValue__Unsigned_int_methods(root_module, cls):
|
||||
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 @@ def register_Ns3TracedValue__Unsigned_int_methods(root_module, cls):
|
||||
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 @@ def register_functions(root_module):
|
||||
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 @@ def register_functions(root_module):
|
||||
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 @@ def register_functions(root_module):
|
||||
'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 @@ def register_functions(root_module):
|
||||
'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 @@ def register_functions(root_module):
|
||||
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 @@ def register_functions_ns3_Config(module, root_module):
|
||||
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 @@ def register_functions_ns3_Config(module, root_module):
|
||||
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 @@ def register_functions_ns3_Config(module, root_module):
|
||||
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):
|
||||
|
||||
@@ -237,6 +237,10 @@ def register_Ns3CsmaHelper_methods(root_module, cls):
|
||||
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 @@ def register_Ns3Ipv4InterfaceContainer_methods(root_module, cls):
|
||||
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 @@ def register_Ns3PointToPointHelper_methods(root_module, cls):
|
||||
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):
|
||||
|
||||
@@ -2586,10 +2586,18 @@ def register_Ns3SimpleNetDevice_methods(root_module, cls):
|
||||
|
||||
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 @@ def register_functions(root_module):
|
||||
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)
|
||||
|
||||
@@ -27,8 +27,6 @@ def register_types(module):
|
||||
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 @@ def register_methods(root_module):
|
||||
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 @@ def register_Ns3Simulator_methods(root_module, cls):
|
||||
'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 @@ def register_Ns3TimerImpl_methods(root_module, cls):
|
||||
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 @@ def register_Ns3SimulatorImpl_methods(root_module, cls):
|
||||
'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 @@ def register_Ns3DefaultSimulatorImpl_methods(root_module, cls):
|
||||
'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 @@ def register_Ns3RealtimeSimulatorImpl_methods(root_module, cls):
|
||||
'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',
|
||||
|
||||
@@ -274,6 +274,7 @@ def register_types_ns3_TimeStepPrecision(module):
|
||||
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()
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include "ns3/helper-module.h"
|
||||
#include "ns3/mobility-module.h"
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
|
||||
using namespace ns3;
|
||||
|
||||
|
||||
@@ -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 @@ NS_LOG_COMPONENT_DEFINE ("TestSync");
|
||||
|
||||
bool gFirstRun = false;
|
||||
|
||||
void
|
||||
void
|
||||
inserted_function (void)
|
||||
{
|
||||
NS_ASSERT (gFirstRun);
|
||||
@@ -26,7 +27,7 @@ inserted_function (void)
|
||||
Simulator::Now ().GetSeconds () << " s");
|
||||
}
|
||||
|
||||
void
|
||||
void
|
||||
background_function (void)
|
||||
{
|
||||
NS_ASSERT (gFirstRun);
|
||||
@@ -34,7 +35,7 @@ background_function (void)
|
||||
Simulator::Now ().GetSeconds () << " s");
|
||||
}
|
||||
|
||||
void
|
||||
void
|
||||
first_function (void)
|
||||
{
|
||||
NS_LOG_UNCOND ("first_function() called at " <<
|
||||
@@ -46,8 +47,6 @@ class FakeNetDevice
|
||||
{
|
||||
public:
|
||||
FakeNetDevice ();
|
||||
void Doit1 (void);
|
||||
void Doit2 (void);
|
||||
void Doit3 (void);
|
||||
void Doit4 (void);
|
||||
};
|
||||
@@ -57,37 +56,7 @@ FakeNetDevice::FakeNetDevice ()
|
||||
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 @@ FakeNetDevice::Doit3 (void)
|
||||
//
|
||||
// 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 @@ FakeNetDevice::Doit4 (void)
|
||||
//
|
||||
// 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 @@ test (void)
|
||||
//
|
||||
// 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 @@ test (void)
|
||||
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 @@ test (void)
|
||||
|
||||
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 ();
|
||||
}
|
||||
|
||||
@@ -316,17 +316,6 @@ DefaultSimulatorImpl::GetMaximumSimulationTime (void) const
|
||||
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
|
||||
|
||||
|
||||
|
||||
@@ -59,8 +59,6 @@ public:
|
||||
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);
|
||||
|
||||
@@ -632,7 +632,7 @@ RealtimeSimulatorImpl::Now (void) const
|
||||
// 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 @@ RealtimeSimulatorImpl::ScheduleWallclock (Time const &time, EventImpl *impl)
|
||||
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 @@ RealtimeSimulatorImpl::ScheduleWallclock (Time const &time, EventImpl *impl)
|
||||
}
|
||||
|
||||
void
|
||||
RealtimeSimulatorImpl::ScheduleWallclockNow (EventImpl *impl)
|
||||
RealtimeSimulatorImpl::ScheduleRealtimeNow (EventImpl *impl)
|
||||
{
|
||||
NS_LOG_FUNCTION_NOARGS ();
|
||||
{
|
||||
@@ -666,7 +666,7 @@ RealtimeSimulatorImpl::ScheduleWallclockNow (EventImpl *impl)
|
||||
// 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;
|
||||
|
||||
@@ -69,9 +69,9 @@ public:
|
||||
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);
|
||||
|
||||
@@ -52,8 +52,6 @@ public:
|
||||
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
|
||||
|
||||
@@ -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 @@ Simulator::SetImplementation (Ptr<SimulatorImpl> impl)
|
||||
{
|
||||
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
|
||||
|
||||
@@ -71,6 +71,8 @@ public:
|
||||
*/
|
||||
static void SetImplementation (Ptr<SimulatorImpl> impl);
|
||||
|
||||
static Ptr<SimulatorImpl> GetImplementation (void);
|
||||
|
||||
/**
|
||||
* \param scheduler a new event scheduler
|
||||
*
|
||||
|
||||
@@ -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 */
|
||||
@@ -76,7 +76,6 @@ def build(bld):
|
||||
'event-id.h',
|
||||
'event-impl.h',
|
||||
'simulator.h',
|
||||
'wallclock-simulator.h',
|
||||
'simulator-impl.h',
|
||||
'default-simulator-impl.h',
|
||||
'scheduler.h',
|
||||
|
||||
Reference in New Issue
Block a user