Slight API change. Now there is only one CcnxAppHelper that can create all CcnxApps
diff --git a/apps/ccnx-consumer.cc b/apps/ccnx-consumer.cc
index cc3276f..2074a39 100644
--- a/apps/ccnx-consumer.cc
+++ b/apps/ccnx-consumer.cc
@@ -62,7 +62,7 @@
StringValue ("100ms"),
MakeTimeAccessor (&CcnxConsumer::m_offTime),
MakeTimeChecker ())
- .AddAttribute ("InterestName","CcnxName of the Interest (use CcnxNameComponents)",
+ .AddAttribute ("Prefix","CcnxName of the Interest",
StringValue ("/"),
MakeCcnxNameComponentsAccessor (&CcnxConsumer::m_interestName),
MakeCcnxNameComponentsChecker ())
diff --git a/bindings/modulegen__gcc_ILP32.py b/bindings/modulegen__gcc_ILP32.py
index ce9cd57..72485d1 100644
--- a/bindings/modulegen__gcc_ILP32.py
+++ b/bindings/modulegen__gcc_ILP32.py
@@ -46,8 +46,8 @@
module.add_class('Item', import_from_module='ns.network', outer_class=root_module['ns3::ByteTagList::Iterator'])
## callback.h (module 'core'): ns3::CallbackBase [class]
module.add_class('CallbackBase', import_from_module='ns.core')
- ## ccnx-consumer-helper.h (module 'NDNabstraction'): ns3::CcnxConsumerHelper [class]
- module.add_class('CcnxConsumerHelper')
+ ## ccnx-app-helper.h (module 'NDNabstraction'): ns3::CcnxAppHelper [class]
+ module.add_class('CcnxAppHelper')
## ccnx-content-object-header.h (module 'NDNabstraction'): ns3::CcnxContentObjectHeaderException [class]
module.add_class('CcnxContentObjectHeaderException')
## ccnx-fib.h (module 'NDNabstraction'): ns3::CcnxFibEntryContainer [struct]
@@ -64,8 +64,6 @@
module.add_enum('Type', ['INTEREST', 'CONTENT_OBJECT'], outer_class=root_module['ns3::CcnxHeaderHelper'])
## ccnx-interest-header.h (module 'NDNabstraction'): ns3::CcnxInterestHeaderException [class]
module.add_class('CcnxInterestHeaderException')
- ## ccnx-producer-helper.h (module 'NDNabstraction'): ns3::CcnxProducerHelper [class]
- module.add_class('CcnxProducerHelper')
## ccnx-stack-helper.h (module 'NDNabstraction'): ns3::CcnxStackHelper [class]
module.add_class('CcnxStackHelper')
## ccnx-header-helper.h (module 'NDNabstraction'): ns3::CcnxUnknownHeaderException [class]
@@ -120,6 +118,8 @@
module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::Chunk', 'ns3::ObjectBase', 'ns3::DefaultDeleter<ns3::Chunk>'], parent=root_module['ns3::ObjectBase'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::Object, ns3::ObjectBase, ns3::ObjectDeleter> [class]
module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::Object', 'ns3::ObjectBase', 'ns3::ObjectDeleter'], parent=root_module['ns3::ObjectBase'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+ ## spring-mobility-helper.h (module 'NDNabstraction'): ns3::SpringMobilityHelper [class]
+ module.add_class('SpringMobilityHelper')
## tag.h (module 'network'): ns3::Tag [class]
module.add_class('Tag', import_from_module='ns.network', parent=root_module['ns3::ObjectBase'])
## tag-buffer.h (module 'network'): ns3::TagBuffer [class]
@@ -136,6 +136,10 @@
module.add_class('TraceSourceInformation', import_from_module='ns.core', outer_class=root_module['ns3::TypeId'])
## random-variable.h (module 'core'): ns3::UniformVariable [class]
module.add_class('UniformVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariable'])
+ ## vector.h (module 'core'): ns3::Vector2D [class]
+ module.add_class('Vector2D', import_from_module='ns.core')
+ ## vector.h (module 'core'): ns3::Vector3D [class]
+ module.add_class('Vector3D', import_from_module='ns.core')
## random-variable.h (module 'core'): ns3::WeibullVariable [class]
module.add_class('WeibullVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariable'])
## random-variable.h (module 'core'): ns3::ZetaVariable [class]
@@ -280,6 +284,8 @@
module.add_class('Ipv6PrefixChecker', import_from_module='ns.network', parent=root_module['ns3::AttributeChecker'])
## ipv6-address.h (module 'network'): ns3::Ipv6PrefixValue [class]
module.add_class('Ipv6PrefixValue', import_from_module='ns.network', parent=root_module['ns3::AttributeValue'])
+ ## mobility-model.h (module 'mobility'): ns3::MobilityModel [class]
+ module.add_class('MobilityModel', import_from_module='ns.mobility', parent=root_module['ns3::Object'])
## net-device.h (module 'network'): ns3::NetDevice [class]
module.add_class('NetDevice', import_from_module='ns.network', parent=root_module['ns3::Object'])
## net-device.h (module 'network'): ns3::NetDevice::PacketType [enumeration]
@@ -302,6 +308,8 @@
module.add_class('RocketfuelWeightsReader', parent=root_module['ns3::AnnotatedTopologyReader'])
## rocketfuel-weights-reader.h (module 'NDNabstraction'): ns3::RocketfuelWeightsReader [enumeration]
module.add_enum('', ['WEIGHTS', 'LATENCIES'], outer_class=root_module['ns3::RocketfuelWeightsReader'])
+ ## spring-mobility-model.h (module 'NDNabstraction'): ns3::SpringMobilityModel [class]
+ module.add_class('SpringMobilityModel', parent=root_module['ns3::MobilityModel'])
## nstime.h (module 'core'): ns3::TimeChecker [class]
module.add_class('TimeChecker', import_from_module='ns.core', parent=root_module['ns3::AttributeChecker'])
## nstime.h (module 'core'): ns3::TimeValue [class]
@@ -310,6 +318,14 @@
module.add_class('TypeIdChecker', import_from_module='ns.core', parent=root_module['ns3::AttributeChecker'])
## type-id.h (module 'core'): ns3::TypeIdValue [class]
module.add_class('TypeIdValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue'])
+ ## vector.h (module 'core'): ns3::Vector2DChecker [class]
+ module.add_class('Vector2DChecker', import_from_module='ns.core', parent=root_module['ns3::AttributeChecker'])
+ ## vector.h (module 'core'): ns3::Vector2DValue [class]
+ module.add_class('Vector2DValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue'])
+ ## vector.h (module 'core'): ns3::Vector3DChecker [class]
+ module.add_class('Vector3DChecker', import_from_module='ns.core', parent=root_module['ns3::AttributeChecker'])
+ ## vector.h (module 'core'): ns3::Vector3DValue [class]
+ module.add_class('Vector3DValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue'])
## address.h (module 'network'): ns3::AddressChecker [class]
module.add_class('AddressChecker', import_from_module='ns.network', parent=root_module['ns3::AttributeChecker'])
## address.h (module 'network'): ns3::AddressValue [class]
@@ -317,6 +333,18 @@
module.add_container('std::map< std::string, std::string >', ('std::string', 'std::string'), container_type='map')
module.add_container('std::list< boost::reference_wrapper< std::string const > >', 'boost::reference_wrapper< std::basic_string< char, std::char_traits< char >, std::allocator< char > > const >', container_type='list')
module.add_container('std::list< std::string >', 'std::string', container_type='list')
+ typehandlers.add_type_alias('ns3::Vector3DChecker', 'ns3::VectorChecker')
+ typehandlers.add_type_alias('ns3::Vector3DChecker*', 'ns3::VectorChecker*')
+ typehandlers.add_type_alias('ns3::Vector3DChecker&', 'ns3::VectorChecker&')
+ module.add_typedef(root_module['ns3::Vector3DChecker'], 'VectorChecker')
+ typehandlers.add_type_alias('ns3::Vector3D', 'ns3::Vector')
+ typehandlers.add_type_alias('ns3::Vector3D*', 'ns3::Vector*')
+ typehandlers.add_type_alias('ns3::Vector3D&', 'ns3::Vector&')
+ module.add_typedef(root_module['ns3::Vector3D'], 'Vector')
+ typehandlers.add_type_alias('ns3::Vector3DValue', 'ns3::VectorValue')
+ typehandlers.add_type_alias('ns3::Vector3DValue*', 'ns3::VectorValue*')
+ typehandlers.add_type_alias('ns3::Vector3DValue&', 'ns3::VectorValue&')
+ module.add_typedef(root_module['ns3::Vector3DValue'], 'VectorValue')
## Register a nested module for the namespace FatalImpl
@@ -351,14 +379,13 @@
register_Ns3ByteTagListIterator_methods(root_module, root_module['ns3::ByteTagList::Iterator'])
register_Ns3ByteTagListIteratorItem_methods(root_module, root_module['ns3::ByteTagList::Iterator::Item'])
register_Ns3CallbackBase_methods(root_module, root_module['ns3::CallbackBase'])
- register_Ns3CcnxConsumerHelper_methods(root_module, root_module['ns3::CcnxConsumerHelper'])
+ register_Ns3CcnxAppHelper_methods(root_module, root_module['ns3::CcnxAppHelper'])
register_Ns3CcnxContentObjectHeaderException_methods(root_module, root_module['ns3::CcnxContentObjectHeaderException'])
register_Ns3CcnxFibEntryContainer_methods(root_module, root_module['ns3::CcnxFibEntryContainer'])
register_Ns3CcnxFibFaceMetric_methods(root_module, root_module['ns3::CcnxFibFaceMetric'])
register_Ns3CcnxFibFaceMetricContainer_methods(root_module, root_module['ns3::CcnxFibFaceMetricContainer'])
register_Ns3CcnxHeaderHelper_methods(root_module, root_module['ns3::CcnxHeaderHelper'])
register_Ns3CcnxInterestHeaderException_methods(root_module, root_module['ns3::CcnxInterestHeaderException'])
- register_Ns3CcnxProducerHelper_methods(root_module, root_module['ns3::CcnxProducerHelper'])
register_Ns3CcnxStackHelper_methods(root_module, root_module['ns3::CcnxStackHelper'])
register_Ns3CcnxUnknownHeaderException_methods(root_module, root_module['ns3::CcnxUnknownHeaderException'])
register_Ns3EventId_methods(root_module, root_module['ns3::EventId'])
@@ -383,6 +410,7 @@
register_Ns3SequentialVariable_methods(root_module, root_module['ns3::SequentialVariable'])
register_Ns3SimpleRefCount__Ns3Chunk_Ns3ObjectBase_Ns3DefaultDeleter__lt__ns3Chunk__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::Chunk, ns3::ObjectBase, ns3::DefaultDeleter<ns3::Chunk> >'])
register_Ns3SimpleRefCount__Ns3Object_Ns3ObjectBase_Ns3ObjectDeleter_methods(root_module, root_module['ns3::SimpleRefCount< ns3::Object, ns3::ObjectBase, ns3::ObjectDeleter >'])
+ register_Ns3SpringMobilityHelper_methods(root_module, root_module['ns3::SpringMobilityHelper'])
register_Ns3Tag_methods(root_module, root_module['ns3::Tag'])
register_Ns3TagBuffer_methods(root_module, root_module['ns3::TagBuffer'])
register_Ns3TriangularVariable_methods(root_module, root_module['ns3::TriangularVariable'])
@@ -390,6 +418,8 @@
register_Ns3TypeIdAttributeInformation_methods(root_module, root_module['ns3::TypeId::AttributeInformation'])
register_Ns3TypeIdTraceSourceInformation_methods(root_module, root_module['ns3::TypeId::TraceSourceInformation'])
register_Ns3UniformVariable_methods(root_module, root_module['ns3::UniformVariable'])
+ register_Ns3Vector2D_methods(root_module, root_module['ns3::Vector2D'])
+ register_Ns3Vector3D_methods(root_module, root_module['ns3::Vector3D'])
register_Ns3WeibullVariable_methods(root_module, root_module['ns3::WeibullVariable'])
register_Ns3ZetaVariable_methods(root_module, root_module['ns3::ZetaVariable'])
register_Ns3ZipfVariable_methods(root_module, root_module['ns3::ZipfVariable'])
@@ -458,6 +488,7 @@
register_Ns3Ipv6AddressValue_methods(root_module, root_module['ns3::Ipv6AddressValue'])
register_Ns3Ipv6PrefixChecker_methods(root_module, root_module['ns3::Ipv6PrefixChecker'])
register_Ns3Ipv6PrefixValue_methods(root_module, root_module['ns3::Ipv6PrefixValue'])
+ register_Ns3MobilityModel_methods(root_module, root_module['ns3::MobilityModel'])
register_Ns3NetDevice_methods(root_module, root_module['ns3::NetDevice'])
register_Ns3NixVector_methods(root_module, root_module['ns3::NixVector'])
register_Ns3Node_methods(root_module, root_module['ns3::Node'])
@@ -467,10 +498,15 @@
register_Ns3RandomVariableChecker_methods(root_module, root_module['ns3::RandomVariableChecker'])
register_Ns3RandomVariableValue_methods(root_module, root_module['ns3::RandomVariableValue'])
register_Ns3RocketfuelWeightsReader_methods(root_module, root_module['ns3::RocketfuelWeightsReader'])
+ register_Ns3SpringMobilityModel_methods(root_module, root_module['ns3::SpringMobilityModel'])
register_Ns3TimeChecker_methods(root_module, root_module['ns3::TimeChecker'])
register_Ns3TimeValue_methods(root_module, root_module['ns3::TimeValue'])
register_Ns3TypeIdChecker_methods(root_module, root_module['ns3::TypeIdChecker'])
register_Ns3TypeIdValue_methods(root_module, root_module['ns3::TypeIdValue'])
+ register_Ns3Vector2DChecker_methods(root_module, root_module['ns3::Vector2DChecker'])
+ register_Ns3Vector2DValue_methods(root_module, root_module['ns3::Vector2DValue'])
+ register_Ns3Vector3DChecker_methods(root_module, root_module['ns3::Vector3DChecker'])
+ register_Ns3Vector3DValue_methods(root_module, root_module['ns3::Vector3DValue'])
register_Ns3AddressChecker_methods(root_module, root_module['ns3::AddressChecker'])
register_Ns3AddressValue_methods(root_module, root_module['ns3::AddressValue'])
return
@@ -1012,27 +1048,31 @@
is_static=True, visibility='protected')
return
-def register_Ns3CcnxConsumerHelper_methods(root_module, cls):
- ## ccnx-consumer-helper.h (module 'NDNabstraction'): ns3::CcnxConsumerHelper::CcnxConsumerHelper(ns3::CcnxConsumerHelper const & arg0) [copy constructor]
- cls.add_constructor([param('ns3::CcnxConsumerHelper const &', 'arg0')])
- ## ccnx-consumer-helper.h (module 'NDNabstraction'): ns3::CcnxConsumerHelper::CcnxConsumerHelper(std::string const & prefix) [constructor]
+def register_Ns3CcnxAppHelper_methods(root_module, cls):
+ ## ccnx-app-helper.h (module 'NDNabstraction'): ns3::CcnxAppHelper::CcnxAppHelper(ns3::CcnxAppHelper const & arg0) [copy constructor]
+ cls.add_constructor([param('ns3::CcnxAppHelper const &', 'arg0')])
+ ## ccnx-app-helper.h (module 'NDNabstraction'): ns3::CcnxAppHelper::CcnxAppHelper(std::string const & prefix) [constructor]
cls.add_constructor([param('std::string const &', 'prefix')])
- ## ccnx-consumer-helper.h (module 'NDNabstraction'): ns3::ApplicationContainer ns3::CcnxConsumerHelper::Install(ns3::NodeContainer c) [member function]
+ ## ccnx-app-helper.h (module 'NDNabstraction'): ns3::ApplicationContainer ns3::CcnxAppHelper::Install(ns3::NodeContainer c) [member function]
cls.add_method('Install',
'ns3::ApplicationContainer',
[param('ns3::NodeContainer', 'c')])
- ## ccnx-consumer-helper.h (module 'NDNabstraction'): ns3::ApplicationContainer ns3::CcnxConsumerHelper::Install(ns3::Ptr<ns3::Node> node) [member function]
+ ## ccnx-app-helper.h (module 'NDNabstraction'): ns3::ApplicationContainer ns3::CcnxAppHelper::Install(ns3::Ptr<ns3::Node> node) [member function]
cls.add_method('Install',
'ns3::ApplicationContainer',
[param('ns3::Ptr< ns3::Node >', 'node')])
- ## ccnx-consumer-helper.h (module 'NDNabstraction'): ns3::ApplicationContainer ns3::CcnxConsumerHelper::Install(std::string nodeName) [member function]
+ ## ccnx-app-helper.h (module 'NDNabstraction'): ns3::ApplicationContainer ns3::CcnxAppHelper::Install(std::string nodeName) [member function]
cls.add_method('Install',
'ns3::ApplicationContainer',
[param('std::string', 'nodeName')])
- ## ccnx-consumer-helper.h (module 'NDNabstraction'): void ns3::CcnxConsumerHelper::SetAttribute(std::string name, ns3::AttributeValue const & value) [member function]
+ ## ccnx-app-helper.h (module 'NDNabstraction'): void ns3::CcnxAppHelper::SetAttribute(std::string name, ns3::AttributeValue const & value) [member function]
cls.add_method('SetAttribute',
'void',
[param('std::string', 'name'), param('ns3::AttributeValue const &', 'value')])
+ ## ccnx-app-helper.h (module 'NDNabstraction'): void ns3::CcnxAppHelper::SetPrefix(std::string const & prefix) [member function]
+ cls.add_method('SetPrefix',
+ 'void',
+ [param('std::string const &', 'prefix')])
return
def register_Ns3CcnxContentObjectHeaderException_methods(root_module, cls):
@@ -1103,29 +1143,6 @@
cls.add_constructor([param('ns3::CcnxInterestHeaderException const &', 'arg0')])
return
-def register_Ns3CcnxProducerHelper_methods(root_module, cls):
- ## ccnx-producer-helper.h (module 'NDNabstraction'): ns3::CcnxProducerHelper::CcnxProducerHelper(ns3::CcnxProducerHelper const & arg0) [copy constructor]
- cls.add_constructor([param('ns3::CcnxProducerHelper const &', 'arg0')])
- ## ccnx-producer-helper.h (module 'NDNabstraction'): ns3::CcnxProducerHelper::CcnxProducerHelper(std::string const & prefix, uint32_t virtualPayloadSize) [constructor]
- cls.add_constructor([param('std::string const &', 'prefix'), param('uint32_t', 'virtualPayloadSize')])
- ## ccnx-producer-helper.h (module 'NDNabstraction'): ns3::ApplicationContainer ns3::CcnxProducerHelper::Install(ns3::NodeContainer c) [member function]
- cls.add_method('Install',
- 'ns3::ApplicationContainer',
- [param('ns3::NodeContainer', 'c')])
- ## ccnx-producer-helper.h (module 'NDNabstraction'): ns3::ApplicationContainer ns3::CcnxProducerHelper::Install(ns3::Ptr<ns3::Node> node) [member function]
- cls.add_method('Install',
- 'ns3::ApplicationContainer',
- [param('ns3::Ptr< ns3::Node >', 'node')])
- ## ccnx-producer-helper.h (module 'NDNabstraction'): ns3::ApplicationContainer ns3::CcnxProducerHelper::Install(std::string nodeName) [member function]
- cls.add_method('Install',
- 'ns3::ApplicationContainer',
- [param('std::string', 'nodeName')])
- ## ccnx-producer-helper.h (module 'NDNabstraction'): void ns3::CcnxProducerHelper::SetAttribute(std::string name, ns3::AttributeValue const & value) [member function]
- cls.add_method('SetAttribute',
- 'void',
- [param('std::string', 'name'), param('ns3::AttributeValue const &', 'value')])
- return
-
def register_Ns3CcnxStackHelper_methods(root_module, cls):
## ccnx-stack-helper.h (module 'NDNabstraction'): ns3::CcnxStackHelper::CcnxStackHelper() [constructor]
cls.add_constructor([])
@@ -2123,6 +2140,23 @@
is_static=True)
return
+def register_Ns3SpringMobilityHelper_methods(root_module, cls):
+ ## spring-mobility-helper.h (module 'NDNabstraction'): ns3::SpringMobilityHelper::SpringMobilityHelper() [constructor]
+ cls.add_constructor([])
+ ## spring-mobility-helper.h (module 'NDNabstraction'): ns3::SpringMobilityHelper::SpringMobilityHelper(ns3::SpringMobilityHelper const & arg0) [copy constructor]
+ cls.add_constructor([param('ns3::SpringMobilityHelper const &', 'arg0')])
+ ## spring-mobility-helper.h (module 'NDNabstraction'): static void ns3::SpringMobilityHelper::InstallSprings(ns3::Ptr<ns3::Node> node1, ns3::Ptr<ns3::Node> node2) [member function]
+ cls.add_method('InstallSprings',
+ 'void',
+ [param('ns3::Ptr< ns3::Node >', 'node1'), param('ns3::Ptr< ns3::Node >', 'node2')],
+ is_static=True)
+ ## spring-mobility-helper.h (module 'NDNabstraction'): static void ns3::SpringMobilityHelper::InstallSprings(std::_List_const_iterator<ns3::TopologyReader::Link> first, std::_List_const_iterator<ns3::TopologyReader::Link> end) [member function]
+ cls.add_method('InstallSprings',
+ 'void',
+ [param('std::_List_const_iterator< ns3::TopologyReader::Link >', 'first'), param('std::_List_const_iterator< ns3::TopologyReader::Link >', 'end')],
+ is_static=True)
+ return
+
def register_Ns3Tag_methods(root_module, cls):
## tag.h (module 'network'): ns3::Tag::Tag() [constructor]
cls.add_constructor([])
@@ -2423,6 +2457,52 @@
[param('double', 's'), param('double', 'l')])
return
+def register_Ns3Vector2D_methods(root_module, cls):
+ cls.add_output_stream_operator()
+ cls.add_binary_numeric_operator('*', root_module['ns3::Vector2D'], root_module['ns3::Vector2D'], param('ns3::Vector2D const &', 'right'))
+ cls.add_binary_numeric_operator('*', root_module['ns3::Vector2D'], root_module['ns3::Vector2D'], param('double', 'right'))
+ cls.add_binary_numeric_operator('+', root_module['ns3::Vector2D'], root_module['ns3::Vector2D'], param('ns3::Vector2D const &', 'right'))
+ cls.add_binary_numeric_operator('+', root_module['ns3::Vector2D'], root_module['ns3::Vector2D'], param('double', 'right'))
+ cls.add_inplace_numeric_operator('+=', param('ns3::Vector2D const &', 'right'))
+ cls.add_inplace_numeric_operator('+=', param('double', 'right'))
+ cls.add_binary_numeric_operator('-', root_module['ns3::Vector2D'], root_module['ns3::Vector2D'], param('ns3::Vector2D const &', 'right'))
+ cls.add_binary_numeric_operator('/', root_module['ns3::Vector2D'], root_module['ns3::Vector2D'], param('double', 'right'))
+ ## vector.h (module 'core'): ns3::Vector2D::Vector2D(ns3::Vector2D const & arg0) [copy constructor]
+ cls.add_constructor([param('ns3::Vector2D const &', 'arg0')])
+ ## vector.h (module 'core'): ns3::Vector2D::Vector2D(double _x, double _y) [constructor]
+ cls.add_constructor([param('double', '_x'), param('double', '_y')])
+ ## vector.h (module 'core'): ns3::Vector2D::Vector2D() [constructor]
+ cls.add_constructor([])
+ ## vector.h (module 'core'): ns3::Vector2D::x [variable]
+ cls.add_instance_attribute('x', 'double', is_const=False)
+ ## vector.h (module 'core'): ns3::Vector2D::y [variable]
+ cls.add_instance_attribute('y', 'double', is_const=False)
+ return
+
+def register_Ns3Vector3D_methods(root_module, cls):
+ cls.add_output_stream_operator()
+ cls.add_binary_numeric_operator('*', root_module['ns3::Vector3D'], root_module['ns3::Vector3D'], param('ns3::Vector3D const &', 'right'))
+ cls.add_binary_numeric_operator('*', root_module['ns3::Vector3D'], root_module['ns3::Vector3D'], param('double', 'right'))
+ cls.add_binary_numeric_operator('+', root_module['ns3::Vector3D'], root_module['ns3::Vector3D'], param('ns3::Vector3D const &', 'right'))
+ cls.add_binary_numeric_operator('+', root_module['ns3::Vector3D'], root_module['ns3::Vector3D'], param('double', 'right'))
+ cls.add_inplace_numeric_operator('+=', param('ns3::Vector3D const &', 'right'))
+ cls.add_inplace_numeric_operator('+=', param('double', 'right'))
+ cls.add_binary_numeric_operator('-', root_module['ns3::Vector3D'], root_module['ns3::Vector3D'], param('ns3::Vector3D const &', 'right'))
+ cls.add_binary_numeric_operator('/', root_module['ns3::Vector3D'], root_module['ns3::Vector3D'], param('double', 'right'))
+ ## vector.h (module 'core'): ns3::Vector3D::Vector3D(ns3::Vector3D const & arg0) [copy constructor]
+ cls.add_constructor([param('ns3::Vector3D const &', 'arg0')])
+ ## vector.h (module 'core'): ns3::Vector3D::Vector3D(double _x, double _y, double _z) [constructor]
+ cls.add_constructor([param('double', '_x'), param('double', '_y'), param('double', '_z')])
+ ## vector.h (module 'core'): ns3::Vector3D::Vector3D() [constructor]
+ cls.add_constructor([])
+ ## vector.h (module 'core'): ns3::Vector3D::x [variable]
+ cls.add_instance_attribute('x', 'double', is_const=False)
+ ## vector.h (module 'core'): ns3::Vector3D::y [variable]
+ cls.add_instance_attribute('y', 'double', is_const=False)
+ ## vector.h (module 'core'): ns3::Vector3D::z [variable]
+ cls.add_instance_attribute('z', 'double', is_const=False)
+ return
+
def register_Ns3WeibullVariable_methods(root_module, cls):
## random-variable.h (module 'core'): ns3::WeibullVariable::WeibullVariable(ns3::WeibullVariable const & arg0) [copy constructor]
cls.add_constructor([param('ns3::WeibullVariable const &', 'arg0')])
@@ -2462,13 +2542,13 @@
return
def register_Ns3Int64x64_t_methods(root_module, cls):
- cls.add_binary_comparison_operator('<=')
cls.add_binary_comparison_operator('!=')
cls.add_inplace_numeric_operator('*=', param('ns3::int64x64_t const &', 'right'))
cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', 'right'))
cls.add_inplace_numeric_operator('-=', param('ns3::int64x64_t const &', 'right'))
cls.add_inplace_numeric_operator('/=', param('ns3::int64x64_t const &', 'right'))
cls.add_output_stream_operator()
+ cls.add_binary_comparison_operator('<=')
cls.add_binary_comparison_operator('==')
cls.add_binary_comparison_operator('>=')
cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('long long unsigned int const', 'right'))
@@ -2956,11 +3036,11 @@
return
def register_Ns3Time_methods(root_module, cls):
- cls.add_binary_comparison_operator('<=')
cls.add_binary_comparison_operator('!=')
cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', 'right'))
cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', 'right'))
cls.add_output_stream_operator()
+ cls.add_binary_comparison_operator('<=')
cls.add_binary_comparison_operator('==')
cls.add_binary_comparison_operator('>=')
cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right'))
@@ -3707,13 +3787,9 @@
'bool',
[],
is_const=True, is_virtual=True)
- ## ccnx-face.h (module 'NDNabstraction'): void ns3::CcnxFace::LeakBucket(ns3::Time const & interval) [member function]
+ ## ccnx-face.h (module 'NDNabstraction'): void ns3::CcnxFace::LeakBucket() [member function]
cls.add_method('LeakBucket',
'void',
- [param('ns3::Time const &', 'interval')])
- ## ccnx-face.h (module 'NDNabstraction'): void ns3::CcnxFace::LeakBucketByOnePacket() [member function]
- cls.add_method('LeakBucketByOnePacket',
- 'void',
[])
## ccnx-face.h (module 'NDNabstraction'): std::ostream & ns3::CcnxFace::Print(std::ostream & os) const [member function]
cls.add_method('Print',
@@ -4335,6 +4411,62 @@
[param('ns3::Ipv6Prefix const &', 'value')])
return
+def register_Ns3MobilityModel_methods(root_module, cls):
+ ## mobility-model.h (module 'mobility'): ns3::MobilityModel::MobilityModel(ns3::MobilityModel const & arg0) [copy constructor]
+ cls.add_constructor([param('ns3::MobilityModel const &', 'arg0')])
+ ## mobility-model.h (module 'mobility'): ns3::MobilityModel::MobilityModel() [constructor]
+ cls.add_constructor([])
+ ## mobility-model.h (module 'mobility'): double ns3::MobilityModel::GetDistanceFrom(ns3::Ptr<const ns3::MobilityModel> position) const [member function]
+ cls.add_method('GetDistanceFrom',
+ 'double',
+ [param('ns3::Ptr< ns3::MobilityModel const >', 'position')],
+ is_const=True)
+ ## mobility-model.h (module 'mobility'): ns3::Vector ns3::MobilityModel::GetPosition() const [member function]
+ cls.add_method('GetPosition',
+ 'ns3::Vector',
+ [],
+ is_const=True)
+ ## mobility-model.h (module 'mobility'): double ns3::MobilityModel::GetRelativeSpeed(ns3::Ptr<const ns3::MobilityModel> other) const [member function]
+ cls.add_method('GetRelativeSpeed',
+ 'double',
+ [param('ns3::Ptr< ns3::MobilityModel const >', 'other')],
+ is_const=True)
+ ## mobility-model.h (module 'mobility'): static ns3::TypeId ns3::MobilityModel::GetTypeId() [member function]
+ cls.add_method('GetTypeId',
+ 'ns3::TypeId',
+ [],
+ is_static=True)
+ ## mobility-model.h (module 'mobility'): ns3::Vector ns3::MobilityModel::GetVelocity() const [member function]
+ cls.add_method('GetVelocity',
+ 'ns3::Vector',
+ [],
+ is_const=True)
+ ## mobility-model.h (module 'mobility'): void ns3::MobilityModel::SetPosition(ns3::Vector const & position) [member function]
+ cls.add_method('SetPosition',
+ 'void',
+ [param('ns3::Vector const &', 'position')])
+ ## mobility-model.h (module 'mobility'): void ns3::MobilityModel::NotifyCourseChange() const [member function]
+ cls.add_method('NotifyCourseChange',
+ 'void',
+ [],
+ is_const=True, visibility='protected')
+ ## mobility-model.h (module 'mobility'): ns3::Vector ns3::MobilityModel::DoGetPosition() const [member function]
+ cls.add_method('DoGetPosition',
+ 'ns3::Vector',
+ [],
+ is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
+ ## mobility-model.h (module 'mobility'): ns3::Vector ns3::MobilityModel::DoGetVelocity() const [member function]
+ cls.add_method('DoGetVelocity',
+ 'ns3::Vector',
+ [],
+ is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
+ ## mobility-model.h (module 'mobility'): void ns3::MobilityModel::DoSetPosition(ns3::Vector const & position) [member function]
+ cls.add_method('DoSetPosition',
+ 'void',
+ [param('ns3::Vector const &', 'position')],
+ is_pure_virtual=True, visibility='private', is_virtual=True)
+ return
+
def register_Ns3NetDevice_methods(root_module, cls):
## net-device.h (module 'network'): ns3::NetDevice::NetDevice() [constructor]
cls.add_constructor([])
@@ -4873,6 +5005,42 @@
[])
return
+def register_Ns3SpringMobilityModel_methods(root_module, cls):
+ ## spring-mobility-model.h (module 'NDNabstraction'): ns3::SpringMobilityModel::SpringMobilityModel(ns3::SpringMobilityModel const & arg0) [copy constructor]
+ cls.add_constructor([param('ns3::SpringMobilityModel const &', 'arg0')])
+ ## spring-mobility-model.h (module 'NDNabstraction'): ns3::SpringMobilityModel::SpringMobilityModel() [constructor]
+ cls.add_constructor([])
+ ## spring-mobility-model.h (module 'NDNabstraction'): void ns3::SpringMobilityModel::AddSpring(ns3::Ptr<ns3::MobilityModel> node) [member function]
+ cls.add_method('AddSpring',
+ 'void',
+ [param('ns3::Ptr< ns3::MobilityModel >', 'node')])
+ ## spring-mobility-model.h (module 'NDNabstraction'): static ns3::TypeId ns3::SpringMobilityModel::GetTypeId() [member function]
+ cls.add_method('GetTypeId',
+ 'ns3::TypeId',
+ [],
+ is_static=True)
+ ## spring-mobility-model.h (module 'NDNabstraction'): ns3::Vector ns3::SpringMobilityModel::DoGetPosition() const [member function]
+ cls.add_method('DoGetPosition',
+ 'ns3::Vector',
+ [],
+ is_const=True, visibility='private', is_virtual=True)
+ ## spring-mobility-model.h (module 'NDNabstraction'): ns3::Vector ns3::SpringMobilityModel::DoGetVelocity() const [member function]
+ cls.add_method('DoGetVelocity',
+ 'ns3::Vector',
+ [],
+ is_const=True, visibility='private', is_virtual=True)
+ ## spring-mobility-model.h (module 'NDNabstraction'): void ns3::SpringMobilityModel::DoSetPosition(ns3::Vector const & position) [member function]
+ cls.add_method('DoSetPosition',
+ 'void',
+ [param('ns3::Vector const &', 'position')],
+ visibility='private', is_virtual=True)
+ ## spring-mobility-model.h (module 'NDNabstraction'): void ns3::SpringMobilityModel::DoStart() [member function]
+ cls.add_method('DoStart',
+ 'void',
+ [],
+ visibility='private', is_virtual=True)
+ return
+
def register_Ns3TimeChecker_methods(root_module, cls):
## nstime.h (module 'core'): ns3::TimeChecker::TimeChecker() [constructor]
cls.add_constructor([])
@@ -4953,6 +5121,86 @@
[param('ns3::TypeId const &', 'value')])
return
+def register_Ns3Vector2DChecker_methods(root_module, cls):
+ ## vector.h (module 'core'): ns3::Vector2DChecker::Vector2DChecker() [constructor]
+ cls.add_constructor([])
+ ## vector.h (module 'core'): ns3::Vector2DChecker::Vector2DChecker(ns3::Vector2DChecker const & arg0) [copy constructor]
+ cls.add_constructor([param('ns3::Vector2DChecker const &', 'arg0')])
+ return
+
+def register_Ns3Vector2DValue_methods(root_module, cls):
+ ## vector.h (module 'core'): ns3::Vector2DValue::Vector2DValue() [constructor]
+ cls.add_constructor([])
+ ## vector.h (module 'core'): ns3::Vector2DValue::Vector2DValue(ns3::Vector2DValue const & arg0) [copy constructor]
+ cls.add_constructor([param('ns3::Vector2DValue const &', 'arg0')])
+ ## vector.h (module 'core'): ns3::Vector2DValue::Vector2DValue(ns3::Vector2D const & value) [constructor]
+ cls.add_constructor([param('ns3::Vector2D const &', 'value')])
+ ## vector.h (module 'core'): ns3::Ptr<ns3::AttributeValue> ns3::Vector2DValue::Copy() const [member function]
+ cls.add_method('Copy',
+ 'ns3::Ptr< ns3::AttributeValue >',
+ [],
+ is_const=True, is_virtual=True)
+ ## vector.h (module 'core'): bool ns3::Vector2DValue::DeserializeFromString(std::string value, ns3::Ptr<ns3::AttributeChecker const> checker) [member function]
+ cls.add_method('DeserializeFromString',
+ 'bool',
+ [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')],
+ is_virtual=True)
+ ## vector.h (module 'core'): ns3::Vector2D ns3::Vector2DValue::Get() const [member function]
+ cls.add_method('Get',
+ 'ns3::Vector2D',
+ [],
+ is_const=True)
+ ## vector.h (module 'core'): std::string ns3::Vector2DValue::SerializeToString(ns3::Ptr<ns3::AttributeChecker const> checker) const [member function]
+ cls.add_method('SerializeToString',
+ 'std::string',
+ [param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')],
+ is_const=True, is_virtual=True)
+ ## vector.h (module 'core'): void ns3::Vector2DValue::Set(ns3::Vector2D const & value) [member function]
+ cls.add_method('Set',
+ 'void',
+ [param('ns3::Vector2D const &', 'value')])
+ return
+
+def register_Ns3Vector3DChecker_methods(root_module, cls):
+ ## vector.h (module 'core'): ns3::Vector3DChecker::Vector3DChecker() [constructor]
+ cls.add_constructor([])
+ ## vector.h (module 'core'): ns3::Vector3DChecker::Vector3DChecker(ns3::Vector3DChecker const & arg0) [copy constructor]
+ cls.add_constructor([param('ns3::Vector3DChecker const &', 'arg0')])
+ return
+
+def register_Ns3Vector3DValue_methods(root_module, cls):
+ ## vector.h (module 'core'): ns3::Vector3DValue::Vector3DValue() [constructor]
+ cls.add_constructor([])
+ ## vector.h (module 'core'): ns3::Vector3DValue::Vector3DValue(ns3::Vector3DValue const & arg0) [copy constructor]
+ cls.add_constructor([param('ns3::Vector3DValue const &', 'arg0')])
+ ## vector.h (module 'core'): ns3::Vector3DValue::Vector3DValue(ns3::Vector3D const & value) [constructor]
+ cls.add_constructor([param('ns3::Vector3D const &', 'value')])
+ ## vector.h (module 'core'): ns3::Ptr<ns3::AttributeValue> ns3::Vector3DValue::Copy() const [member function]
+ cls.add_method('Copy',
+ 'ns3::Ptr< ns3::AttributeValue >',
+ [],
+ is_const=True, is_virtual=True)
+ ## vector.h (module 'core'): bool ns3::Vector3DValue::DeserializeFromString(std::string value, ns3::Ptr<ns3::AttributeChecker const> checker) [member function]
+ cls.add_method('DeserializeFromString',
+ 'bool',
+ [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')],
+ is_virtual=True)
+ ## vector.h (module 'core'): ns3::Vector3D ns3::Vector3DValue::Get() const [member function]
+ cls.add_method('Get',
+ 'ns3::Vector3D',
+ [],
+ is_const=True)
+ ## vector.h (module 'core'): std::string ns3::Vector3DValue::SerializeToString(ns3::Ptr<ns3::AttributeChecker const> checker) const [member function]
+ cls.add_method('SerializeToString',
+ 'std::string',
+ [param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')],
+ is_const=True, is_virtual=True)
+ ## vector.h (module 'core'): void ns3::Vector3DValue::Set(ns3::Vector3D const & value) [member function]
+ cls.add_method('Set',
+ 'void',
+ [param('ns3::Vector3D const &', 'value')])
+ return
+
def register_Ns3AddressChecker_methods(root_module, cls):
## address.h (module 'network'): ns3::AddressChecker::AddressChecker() [constructor]
cls.add_constructor([])
diff --git a/bindings/modulegen__gcc_LP64.py b/bindings/modulegen__gcc_LP64.py
index ce9cd57..72485d1 100644
--- a/bindings/modulegen__gcc_LP64.py
+++ b/bindings/modulegen__gcc_LP64.py
@@ -46,8 +46,8 @@
module.add_class('Item', import_from_module='ns.network', outer_class=root_module['ns3::ByteTagList::Iterator'])
## callback.h (module 'core'): ns3::CallbackBase [class]
module.add_class('CallbackBase', import_from_module='ns.core')
- ## ccnx-consumer-helper.h (module 'NDNabstraction'): ns3::CcnxConsumerHelper [class]
- module.add_class('CcnxConsumerHelper')
+ ## ccnx-app-helper.h (module 'NDNabstraction'): ns3::CcnxAppHelper [class]
+ module.add_class('CcnxAppHelper')
## ccnx-content-object-header.h (module 'NDNabstraction'): ns3::CcnxContentObjectHeaderException [class]
module.add_class('CcnxContentObjectHeaderException')
## ccnx-fib.h (module 'NDNabstraction'): ns3::CcnxFibEntryContainer [struct]
@@ -64,8 +64,6 @@
module.add_enum('Type', ['INTEREST', 'CONTENT_OBJECT'], outer_class=root_module['ns3::CcnxHeaderHelper'])
## ccnx-interest-header.h (module 'NDNabstraction'): ns3::CcnxInterestHeaderException [class]
module.add_class('CcnxInterestHeaderException')
- ## ccnx-producer-helper.h (module 'NDNabstraction'): ns3::CcnxProducerHelper [class]
- module.add_class('CcnxProducerHelper')
## ccnx-stack-helper.h (module 'NDNabstraction'): ns3::CcnxStackHelper [class]
module.add_class('CcnxStackHelper')
## ccnx-header-helper.h (module 'NDNabstraction'): ns3::CcnxUnknownHeaderException [class]
@@ -120,6 +118,8 @@
module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::Chunk', 'ns3::ObjectBase', 'ns3::DefaultDeleter<ns3::Chunk>'], parent=root_module['ns3::ObjectBase'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::Object, ns3::ObjectBase, ns3::ObjectDeleter> [class]
module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::Object', 'ns3::ObjectBase', 'ns3::ObjectDeleter'], parent=root_module['ns3::ObjectBase'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+ ## spring-mobility-helper.h (module 'NDNabstraction'): ns3::SpringMobilityHelper [class]
+ module.add_class('SpringMobilityHelper')
## tag.h (module 'network'): ns3::Tag [class]
module.add_class('Tag', import_from_module='ns.network', parent=root_module['ns3::ObjectBase'])
## tag-buffer.h (module 'network'): ns3::TagBuffer [class]
@@ -136,6 +136,10 @@
module.add_class('TraceSourceInformation', import_from_module='ns.core', outer_class=root_module['ns3::TypeId'])
## random-variable.h (module 'core'): ns3::UniformVariable [class]
module.add_class('UniformVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariable'])
+ ## vector.h (module 'core'): ns3::Vector2D [class]
+ module.add_class('Vector2D', import_from_module='ns.core')
+ ## vector.h (module 'core'): ns3::Vector3D [class]
+ module.add_class('Vector3D', import_from_module='ns.core')
## random-variable.h (module 'core'): ns3::WeibullVariable [class]
module.add_class('WeibullVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariable'])
## random-variable.h (module 'core'): ns3::ZetaVariable [class]
@@ -280,6 +284,8 @@
module.add_class('Ipv6PrefixChecker', import_from_module='ns.network', parent=root_module['ns3::AttributeChecker'])
## ipv6-address.h (module 'network'): ns3::Ipv6PrefixValue [class]
module.add_class('Ipv6PrefixValue', import_from_module='ns.network', parent=root_module['ns3::AttributeValue'])
+ ## mobility-model.h (module 'mobility'): ns3::MobilityModel [class]
+ module.add_class('MobilityModel', import_from_module='ns.mobility', parent=root_module['ns3::Object'])
## net-device.h (module 'network'): ns3::NetDevice [class]
module.add_class('NetDevice', import_from_module='ns.network', parent=root_module['ns3::Object'])
## net-device.h (module 'network'): ns3::NetDevice::PacketType [enumeration]
@@ -302,6 +308,8 @@
module.add_class('RocketfuelWeightsReader', parent=root_module['ns3::AnnotatedTopologyReader'])
## rocketfuel-weights-reader.h (module 'NDNabstraction'): ns3::RocketfuelWeightsReader [enumeration]
module.add_enum('', ['WEIGHTS', 'LATENCIES'], outer_class=root_module['ns3::RocketfuelWeightsReader'])
+ ## spring-mobility-model.h (module 'NDNabstraction'): ns3::SpringMobilityModel [class]
+ module.add_class('SpringMobilityModel', parent=root_module['ns3::MobilityModel'])
## nstime.h (module 'core'): ns3::TimeChecker [class]
module.add_class('TimeChecker', import_from_module='ns.core', parent=root_module['ns3::AttributeChecker'])
## nstime.h (module 'core'): ns3::TimeValue [class]
@@ -310,6 +318,14 @@
module.add_class('TypeIdChecker', import_from_module='ns.core', parent=root_module['ns3::AttributeChecker'])
## type-id.h (module 'core'): ns3::TypeIdValue [class]
module.add_class('TypeIdValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue'])
+ ## vector.h (module 'core'): ns3::Vector2DChecker [class]
+ module.add_class('Vector2DChecker', import_from_module='ns.core', parent=root_module['ns3::AttributeChecker'])
+ ## vector.h (module 'core'): ns3::Vector2DValue [class]
+ module.add_class('Vector2DValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue'])
+ ## vector.h (module 'core'): ns3::Vector3DChecker [class]
+ module.add_class('Vector3DChecker', import_from_module='ns.core', parent=root_module['ns3::AttributeChecker'])
+ ## vector.h (module 'core'): ns3::Vector3DValue [class]
+ module.add_class('Vector3DValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue'])
## address.h (module 'network'): ns3::AddressChecker [class]
module.add_class('AddressChecker', import_from_module='ns.network', parent=root_module['ns3::AttributeChecker'])
## address.h (module 'network'): ns3::AddressValue [class]
@@ -317,6 +333,18 @@
module.add_container('std::map< std::string, std::string >', ('std::string', 'std::string'), container_type='map')
module.add_container('std::list< boost::reference_wrapper< std::string const > >', 'boost::reference_wrapper< std::basic_string< char, std::char_traits< char >, std::allocator< char > > const >', container_type='list')
module.add_container('std::list< std::string >', 'std::string', container_type='list')
+ typehandlers.add_type_alias('ns3::Vector3DChecker', 'ns3::VectorChecker')
+ typehandlers.add_type_alias('ns3::Vector3DChecker*', 'ns3::VectorChecker*')
+ typehandlers.add_type_alias('ns3::Vector3DChecker&', 'ns3::VectorChecker&')
+ module.add_typedef(root_module['ns3::Vector3DChecker'], 'VectorChecker')
+ typehandlers.add_type_alias('ns3::Vector3D', 'ns3::Vector')
+ typehandlers.add_type_alias('ns3::Vector3D*', 'ns3::Vector*')
+ typehandlers.add_type_alias('ns3::Vector3D&', 'ns3::Vector&')
+ module.add_typedef(root_module['ns3::Vector3D'], 'Vector')
+ typehandlers.add_type_alias('ns3::Vector3DValue', 'ns3::VectorValue')
+ typehandlers.add_type_alias('ns3::Vector3DValue*', 'ns3::VectorValue*')
+ typehandlers.add_type_alias('ns3::Vector3DValue&', 'ns3::VectorValue&')
+ module.add_typedef(root_module['ns3::Vector3DValue'], 'VectorValue')
## Register a nested module for the namespace FatalImpl
@@ -351,14 +379,13 @@
register_Ns3ByteTagListIterator_methods(root_module, root_module['ns3::ByteTagList::Iterator'])
register_Ns3ByteTagListIteratorItem_methods(root_module, root_module['ns3::ByteTagList::Iterator::Item'])
register_Ns3CallbackBase_methods(root_module, root_module['ns3::CallbackBase'])
- register_Ns3CcnxConsumerHelper_methods(root_module, root_module['ns3::CcnxConsumerHelper'])
+ register_Ns3CcnxAppHelper_methods(root_module, root_module['ns3::CcnxAppHelper'])
register_Ns3CcnxContentObjectHeaderException_methods(root_module, root_module['ns3::CcnxContentObjectHeaderException'])
register_Ns3CcnxFibEntryContainer_methods(root_module, root_module['ns3::CcnxFibEntryContainer'])
register_Ns3CcnxFibFaceMetric_methods(root_module, root_module['ns3::CcnxFibFaceMetric'])
register_Ns3CcnxFibFaceMetricContainer_methods(root_module, root_module['ns3::CcnxFibFaceMetricContainer'])
register_Ns3CcnxHeaderHelper_methods(root_module, root_module['ns3::CcnxHeaderHelper'])
register_Ns3CcnxInterestHeaderException_methods(root_module, root_module['ns3::CcnxInterestHeaderException'])
- register_Ns3CcnxProducerHelper_methods(root_module, root_module['ns3::CcnxProducerHelper'])
register_Ns3CcnxStackHelper_methods(root_module, root_module['ns3::CcnxStackHelper'])
register_Ns3CcnxUnknownHeaderException_methods(root_module, root_module['ns3::CcnxUnknownHeaderException'])
register_Ns3EventId_methods(root_module, root_module['ns3::EventId'])
@@ -383,6 +410,7 @@
register_Ns3SequentialVariable_methods(root_module, root_module['ns3::SequentialVariable'])
register_Ns3SimpleRefCount__Ns3Chunk_Ns3ObjectBase_Ns3DefaultDeleter__lt__ns3Chunk__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::Chunk, ns3::ObjectBase, ns3::DefaultDeleter<ns3::Chunk> >'])
register_Ns3SimpleRefCount__Ns3Object_Ns3ObjectBase_Ns3ObjectDeleter_methods(root_module, root_module['ns3::SimpleRefCount< ns3::Object, ns3::ObjectBase, ns3::ObjectDeleter >'])
+ register_Ns3SpringMobilityHelper_methods(root_module, root_module['ns3::SpringMobilityHelper'])
register_Ns3Tag_methods(root_module, root_module['ns3::Tag'])
register_Ns3TagBuffer_methods(root_module, root_module['ns3::TagBuffer'])
register_Ns3TriangularVariable_methods(root_module, root_module['ns3::TriangularVariable'])
@@ -390,6 +418,8 @@
register_Ns3TypeIdAttributeInformation_methods(root_module, root_module['ns3::TypeId::AttributeInformation'])
register_Ns3TypeIdTraceSourceInformation_methods(root_module, root_module['ns3::TypeId::TraceSourceInformation'])
register_Ns3UniformVariable_methods(root_module, root_module['ns3::UniformVariable'])
+ register_Ns3Vector2D_methods(root_module, root_module['ns3::Vector2D'])
+ register_Ns3Vector3D_methods(root_module, root_module['ns3::Vector3D'])
register_Ns3WeibullVariable_methods(root_module, root_module['ns3::WeibullVariable'])
register_Ns3ZetaVariable_methods(root_module, root_module['ns3::ZetaVariable'])
register_Ns3ZipfVariable_methods(root_module, root_module['ns3::ZipfVariable'])
@@ -458,6 +488,7 @@
register_Ns3Ipv6AddressValue_methods(root_module, root_module['ns3::Ipv6AddressValue'])
register_Ns3Ipv6PrefixChecker_methods(root_module, root_module['ns3::Ipv6PrefixChecker'])
register_Ns3Ipv6PrefixValue_methods(root_module, root_module['ns3::Ipv6PrefixValue'])
+ register_Ns3MobilityModel_methods(root_module, root_module['ns3::MobilityModel'])
register_Ns3NetDevice_methods(root_module, root_module['ns3::NetDevice'])
register_Ns3NixVector_methods(root_module, root_module['ns3::NixVector'])
register_Ns3Node_methods(root_module, root_module['ns3::Node'])
@@ -467,10 +498,15 @@
register_Ns3RandomVariableChecker_methods(root_module, root_module['ns3::RandomVariableChecker'])
register_Ns3RandomVariableValue_methods(root_module, root_module['ns3::RandomVariableValue'])
register_Ns3RocketfuelWeightsReader_methods(root_module, root_module['ns3::RocketfuelWeightsReader'])
+ register_Ns3SpringMobilityModel_methods(root_module, root_module['ns3::SpringMobilityModel'])
register_Ns3TimeChecker_methods(root_module, root_module['ns3::TimeChecker'])
register_Ns3TimeValue_methods(root_module, root_module['ns3::TimeValue'])
register_Ns3TypeIdChecker_methods(root_module, root_module['ns3::TypeIdChecker'])
register_Ns3TypeIdValue_methods(root_module, root_module['ns3::TypeIdValue'])
+ register_Ns3Vector2DChecker_methods(root_module, root_module['ns3::Vector2DChecker'])
+ register_Ns3Vector2DValue_methods(root_module, root_module['ns3::Vector2DValue'])
+ register_Ns3Vector3DChecker_methods(root_module, root_module['ns3::Vector3DChecker'])
+ register_Ns3Vector3DValue_methods(root_module, root_module['ns3::Vector3DValue'])
register_Ns3AddressChecker_methods(root_module, root_module['ns3::AddressChecker'])
register_Ns3AddressValue_methods(root_module, root_module['ns3::AddressValue'])
return
@@ -1012,27 +1048,31 @@
is_static=True, visibility='protected')
return
-def register_Ns3CcnxConsumerHelper_methods(root_module, cls):
- ## ccnx-consumer-helper.h (module 'NDNabstraction'): ns3::CcnxConsumerHelper::CcnxConsumerHelper(ns3::CcnxConsumerHelper const & arg0) [copy constructor]
- cls.add_constructor([param('ns3::CcnxConsumerHelper const &', 'arg0')])
- ## ccnx-consumer-helper.h (module 'NDNabstraction'): ns3::CcnxConsumerHelper::CcnxConsumerHelper(std::string const & prefix) [constructor]
+def register_Ns3CcnxAppHelper_methods(root_module, cls):
+ ## ccnx-app-helper.h (module 'NDNabstraction'): ns3::CcnxAppHelper::CcnxAppHelper(ns3::CcnxAppHelper const & arg0) [copy constructor]
+ cls.add_constructor([param('ns3::CcnxAppHelper const &', 'arg0')])
+ ## ccnx-app-helper.h (module 'NDNabstraction'): ns3::CcnxAppHelper::CcnxAppHelper(std::string const & prefix) [constructor]
cls.add_constructor([param('std::string const &', 'prefix')])
- ## ccnx-consumer-helper.h (module 'NDNabstraction'): ns3::ApplicationContainer ns3::CcnxConsumerHelper::Install(ns3::NodeContainer c) [member function]
+ ## ccnx-app-helper.h (module 'NDNabstraction'): ns3::ApplicationContainer ns3::CcnxAppHelper::Install(ns3::NodeContainer c) [member function]
cls.add_method('Install',
'ns3::ApplicationContainer',
[param('ns3::NodeContainer', 'c')])
- ## ccnx-consumer-helper.h (module 'NDNabstraction'): ns3::ApplicationContainer ns3::CcnxConsumerHelper::Install(ns3::Ptr<ns3::Node> node) [member function]
+ ## ccnx-app-helper.h (module 'NDNabstraction'): ns3::ApplicationContainer ns3::CcnxAppHelper::Install(ns3::Ptr<ns3::Node> node) [member function]
cls.add_method('Install',
'ns3::ApplicationContainer',
[param('ns3::Ptr< ns3::Node >', 'node')])
- ## ccnx-consumer-helper.h (module 'NDNabstraction'): ns3::ApplicationContainer ns3::CcnxConsumerHelper::Install(std::string nodeName) [member function]
+ ## ccnx-app-helper.h (module 'NDNabstraction'): ns3::ApplicationContainer ns3::CcnxAppHelper::Install(std::string nodeName) [member function]
cls.add_method('Install',
'ns3::ApplicationContainer',
[param('std::string', 'nodeName')])
- ## ccnx-consumer-helper.h (module 'NDNabstraction'): void ns3::CcnxConsumerHelper::SetAttribute(std::string name, ns3::AttributeValue const & value) [member function]
+ ## ccnx-app-helper.h (module 'NDNabstraction'): void ns3::CcnxAppHelper::SetAttribute(std::string name, ns3::AttributeValue const & value) [member function]
cls.add_method('SetAttribute',
'void',
[param('std::string', 'name'), param('ns3::AttributeValue const &', 'value')])
+ ## ccnx-app-helper.h (module 'NDNabstraction'): void ns3::CcnxAppHelper::SetPrefix(std::string const & prefix) [member function]
+ cls.add_method('SetPrefix',
+ 'void',
+ [param('std::string const &', 'prefix')])
return
def register_Ns3CcnxContentObjectHeaderException_methods(root_module, cls):
@@ -1103,29 +1143,6 @@
cls.add_constructor([param('ns3::CcnxInterestHeaderException const &', 'arg0')])
return
-def register_Ns3CcnxProducerHelper_methods(root_module, cls):
- ## ccnx-producer-helper.h (module 'NDNabstraction'): ns3::CcnxProducerHelper::CcnxProducerHelper(ns3::CcnxProducerHelper const & arg0) [copy constructor]
- cls.add_constructor([param('ns3::CcnxProducerHelper const &', 'arg0')])
- ## ccnx-producer-helper.h (module 'NDNabstraction'): ns3::CcnxProducerHelper::CcnxProducerHelper(std::string const & prefix, uint32_t virtualPayloadSize) [constructor]
- cls.add_constructor([param('std::string const &', 'prefix'), param('uint32_t', 'virtualPayloadSize')])
- ## ccnx-producer-helper.h (module 'NDNabstraction'): ns3::ApplicationContainer ns3::CcnxProducerHelper::Install(ns3::NodeContainer c) [member function]
- cls.add_method('Install',
- 'ns3::ApplicationContainer',
- [param('ns3::NodeContainer', 'c')])
- ## ccnx-producer-helper.h (module 'NDNabstraction'): ns3::ApplicationContainer ns3::CcnxProducerHelper::Install(ns3::Ptr<ns3::Node> node) [member function]
- cls.add_method('Install',
- 'ns3::ApplicationContainer',
- [param('ns3::Ptr< ns3::Node >', 'node')])
- ## ccnx-producer-helper.h (module 'NDNabstraction'): ns3::ApplicationContainer ns3::CcnxProducerHelper::Install(std::string nodeName) [member function]
- cls.add_method('Install',
- 'ns3::ApplicationContainer',
- [param('std::string', 'nodeName')])
- ## ccnx-producer-helper.h (module 'NDNabstraction'): void ns3::CcnxProducerHelper::SetAttribute(std::string name, ns3::AttributeValue const & value) [member function]
- cls.add_method('SetAttribute',
- 'void',
- [param('std::string', 'name'), param('ns3::AttributeValue const &', 'value')])
- return
-
def register_Ns3CcnxStackHelper_methods(root_module, cls):
## ccnx-stack-helper.h (module 'NDNabstraction'): ns3::CcnxStackHelper::CcnxStackHelper() [constructor]
cls.add_constructor([])
@@ -2123,6 +2140,23 @@
is_static=True)
return
+def register_Ns3SpringMobilityHelper_methods(root_module, cls):
+ ## spring-mobility-helper.h (module 'NDNabstraction'): ns3::SpringMobilityHelper::SpringMobilityHelper() [constructor]
+ cls.add_constructor([])
+ ## spring-mobility-helper.h (module 'NDNabstraction'): ns3::SpringMobilityHelper::SpringMobilityHelper(ns3::SpringMobilityHelper const & arg0) [copy constructor]
+ cls.add_constructor([param('ns3::SpringMobilityHelper const &', 'arg0')])
+ ## spring-mobility-helper.h (module 'NDNabstraction'): static void ns3::SpringMobilityHelper::InstallSprings(ns3::Ptr<ns3::Node> node1, ns3::Ptr<ns3::Node> node2) [member function]
+ cls.add_method('InstallSprings',
+ 'void',
+ [param('ns3::Ptr< ns3::Node >', 'node1'), param('ns3::Ptr< ns3::Node >', 'node2')],
+ is_static=True)
+ ## spring-mobility-helper.h (module 'NDNabstraction'): static void ns3::SpringMobilityHelper::InstallSprings(std::_List_const_iterator<ns3::TopologyReader::Link> first, std::_List_const_iterator<ns3::TopologyReader::Link> end) [member function]
+ cls.add_method('InstallSprings',
+ 'void',
+ [param('std::_List_const_iterator< ns3::TopologyReader::Link >', 'first'), param('std::_List_const_iterator< ns3::TopologyReader::Link >', 'end')],
+ is_static=True)
+ return
+
def register_Ns3Tag_methods(root_module, cls):
## tag.h (module 'network'): ns3::Tag::Tag() [constructor]
cls.add_constructor([])
@@ -2423,6 +2457,52 @@
[param('double', 's'), param('double', 'l')])
return
+def register_Ns3Vector2D_methods(root_module, cls):
+ cls.add_output_stream_operator()
+ cls.add_binary_numeric_operator('*', root_module['ns3::Vector2D'], root_module['ns3::Vector2D'], param('ns3::Vector2D const &', 'right'))
+ cls.add_binary_numeric_operator('*', root_module['ns3::Vector2D'], root_module['ns3::Vector2D'], param('double', 'right'))
+ cls.add_binary_numeric_operator('+', root_module['ns3::Vector2D'], root_module['ns3::Vector2D'], param('ns3::Vector2D const &', 'right'))
+ cls.add_binary_numeric_operator('+', root_module['ns3::Vector2D'], root_module['ns3::Vector2D'], param('double', 'right'))
+ cls.add_inplace_numeric_operator('+=', param('ns3::Vector2D const &', 'right'))
+ cls.add_inplace_numeric_operator('+=', param('double', 'right'))
+ cls.add_binary_numeric_operator('-', root_module['ns3::Vector2D'], root_module['ns3::Vector2D'], param('ns3::Vector2D const &', 'right'))
+ cls.add_binary_numeric_operator('/', root_module['ns3::Vector2D'], root_module['ns3::Vector2D'], param('double', 'right'))
+ ## vector.h (module 'core'): ns3::Vector2D::Vector2D(ns3::Vector2D const & arg0) [copy constructor]
+ cls.add_constructor([param('ns3::Vector2D const &', 'arg0')])
+ ## vector.h (module 'core'): ns3::Vector2D::Vector2D(double _x, double _y) [constructor]
+ cls.add_constructor([param('double', '_x'), param('double', '_y')])
+ ## vector.h (module 'core'): ns3::Vector2D::Vector2D() [constructor]
+ cls.add_constructor([])
+ ## vector.h (module 'core'): ns3::Vector2D::x [variable]
+ cls.add_instance_attribute('x', 'double', is_const=False)
+ ## vector.h (module 'core'): ns3::Vector2D::y [variable]
+ cls.add_instance_attribute('y', 'double', is_const=False)
+ return
+
+def register_Ns3Vector3D_methods(root_module, cls):
+ cls.add_output_stream_operator()
+ cls.add_binary_numeric_operator('*', root_module['ns3::Vector3D'], root_module['ns3::Vector3D'], param('ns3::Vector3D const &', 'right'))
+ cls.add_binary_numeric_operator('*', root_module['ns3::Vector3D'], root_module['ns3::Vector3D'], param('double', 'right'))
+ cls.add_binary_numeric_operator('+', root_module['ns3::Vector3D'], root_module['ns3::Vector3D'], param('ns3::Vector3D const &', 'right'))
+ cls.add_binary_numeric_operator('+', root_module['ns3::Vector3D'], root_module['ns3::Vector3D'], param('double', 'right'))
+ cls.add_inplace_numeric_operator('+=', param('ns3::Vector3D const &', 'right'))
+ cls.add_inplace_numeric_operator('+=', param('double', 'right'))
+ cls.add_binary_numeric_operator('-', root_module['ns3::Vector3D'], root_module['ns3::Vector3D'], param('ns3::Vector3D const &', 'right'))
+ cls.add_binary_numeric_operator('/', root_module['ns3::Vector3D'], root_module['ns3::Vector3D'], param('double', 'right'))
+ ## vector.h (module 'core'): ns3::Vector3D::Vector3D(ns3::Vector3D const & arg0) [copy constructor]
+ cls.add_constructor([param('ns3::Vector3D const &', 'arg0')])
+ ## vector.h (module 'core'): ns3::Vector3D::Vector3D(double _x, double _y, double _z) [constructor]
+ cls.add_constructor([param('double', '_x'), param('double', '_y'), param('double', '_z')])
+ ## vector.h (module 'core'): ns3::Vector3D::Vector3D() [constructor]
+ cls.add_constructor([])
+ ## vector.h (module 'core'): ns3::Vector3D::x [variable]
+ cls.add_instance_attribute('x', 'double', is_const=False)
+ ## vector.h (module 'core'): ns3::Vector3D::y [variable]
+ cls.add_instance_attribute('y', 'double', is_const=False)
+ ## vector.h (module 'core'): ns3::Vector3D::z [variable]
+ cls.add_instance_attribute('z', 'double', is_const=False)
+ return
+
def register_Ns3WeibullVariable_methods(root_module, cls):
## random-variable.h (module 'core'): ns3::WeibullVariable::WeibullVariable(ns3::WeibullVariable const & arg0) [copy constructor]
cls.add_constructor([param('ns3::WeibullVariable const &', 'arg0')])
@@ -2462,13 +2542,13 @@
return
def register_Ns3Int64x64_t_methods(root_module, cls):
- cls.add_binary_comparison_operator('<=')
cls.add_binary_comparison_operator('!=')
cls.add_inplace_numeric_operator('*=', param('ns3::int64x64_t const &', 'right'))
cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', 'right'))
cls.add_inplace_numeric_operator('-=', param('ns3::int64x64_t const &', 'right'))
cls.add_inplace_numeric_operator('/=', param('ns3::int64x64_t const &', 'right'))
cls.add_output_stream_operator()
+ cls.add_binary_comparison_operator('<=')
cls.add_binary_comparison_operator('==')
cls.add_binary_comparison_operator('>=')
cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('long long unsigned int const', 'right'))
@@ -2956,11 +3036,11 @@
return
def register_Ns3Time_methods(root_module, cls):
- cls.add_binary_comparison_operator('<=')
cls.add_binary_comparison_operator('!=')
cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', 'right'))
cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', 'right'))
cls.add_output_stream_operator()
+ cls.add_binary_comparison_operator('<=')
cls.add_binary_comparison_operator('==')
cls.add_binary_comparison_operator('>=')
cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right'))
@@ -3707,13 +3787,9 @@
'bool',
[],
is_const=True, is_virtual=True)
- ## ccnx-face.h (module 'NDNabstraction'): void ns3::CcnxFace::LeakBucket(ns3::Time const & interval) [member function]
+ ## ccnx-face.h (module 'NDNabstraction'): void ns3::CcnxFace::LeakBucket() [member function]
cls.add_method('LeakBucket',
'void',
- [param('ns3::Time const &', 'interval')])
- ## ccnx-face.h (module 'NDNabstraction'): void ns3::CcnxFace::LeakBucketByOnePacket() [member function]
- cls.add_method('LeakBucketByOnePacket',
- 'void',
[])
## ccnx-face.h (module 'NDNabstraction'): std::ostream & ns3::CcnxFace::Print(std::ostream & os) const [member function]
cls.add_method('Print',
@@ -4335,6 +4411,62 @@
[param('ns3::Ipv6Prefix const &', 'value')])
return
+def register_Ns3MobilityModel_methods(root_module, cls):
+ ## mobility-model.h (module 'mobility'): ns3::MobilityModel::MobilityModel(ns3::MobilityModel const & arg0) [copy constructor]
+ cls.add_constructor([param('ns3::MobilityModel const &', 'arg0')])
+ ## mobility-model.h (module 'mobility'): ns3::MobilityModel::MobilityModel() [constructor]
+ cls.add_constructor([])
+ ## mobility-model.h (module 'mobility'): double ns3::MobilityModel::GetDistanceFrom(ns3::Ptr<const ns3::MobilityModel> position) const [member function]
+ cls.add_method('GetDistanceFrom',
+ 'double',
+ [param('ns3::Ptr< ns3::MobilityModel const >', 'position')],
+ is_const=True)
+ ## mobility-model.h (module 'mobility'): ns3::Vector ns3::MobilityModel::GetPosition() const [member function]
+ cls.add_method('GetPosition',
+ 'ns3::Vector',
+ [],
+ is_const=True)
+ ## mobility-model.h (module 'mobility'): double ns3::MobilityModel::GetRelativeSpeed(ns3::Ptr<const ns3::MobilityModel> other) const [member function]
+ cls.add_method('GetRelativeSpeed',
+ 'double',
+ [param('ns3::Ptr< ns3::MobilityModel const >', 'other')],
+ is_const=True)
+ ## mobility-model.h (module 'mobility'): static ns3::TypeId ns3::MobilityModel::GetTypeId() [member function]
+ cls.add_method('GetTypeId',
+ 'ns3::TypeId',
+ [],
+ is_static=True)
+ ## mobility-model.h (module 'mobility'): ns3::Vector ns3::MobilityModel::GetVelocity() const [member function]
+ cls.add_method('GetVelocity',
+ 'ns3::Vector',
+ [],
+ is_const=True)
+ ## mobility-model.h (module 'mobility'): void ns3::MobilityModel::SetPosition(ns3::Vector const & position) [member function]
+ cls.add_method('SetPosition',
+ 'void',
+ [param('ns3::Vector const &', 'position')])
+ ## mobility-model.h (module 'mobility'): void ns3::MobilityModel::NotifyCourseChange() const [member function]
+ cls.add_method('NotifyCourseChange',
+ 'void',
+ [],
+ is_const=True, visibility='protected')
+ ## mobility-model.h (module 'mobility'): ns3::Vector ns3::MobilityModel::DoGetPosition() const [member function]
+ cls.add_method('DoGetPosition',
+ 'ns3::Vector',
+ [],
+ is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
+ ## mobility-model.h (module 'mobility'): ns3::Vector ns3::MobilityModel::DoGetVelocity() const [member function]
+ cls.add_method('DoGetVelocity',
+ 'ns3::Vector',
+ [],
+ is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
+ ## mobility-model.h (module 'mobility'): void ns3::MobilityModel::DoSetPosition(ns3::Vector const & position) [member function]
+ cls.add_method('DoSetPosition',
+ 'void',
+ [param('ns3::Vector const &', 'position')],
+ is_pure_virtual=True, visibility='private', is_virtual=True)
+ return
+
def register_Ns3NetDevice_methods(root_module, cls):
## net-device.h (module 'network'): ns3::NetDevice::NetDevice() [constructor]
cls.add_constructor([])
@@ -4873,6 +5005,42 @@
[])
return
+def register_Ns3SpringMobilityModel_methods(root_module, cls):
+ ## spring-mobility-model.h (module 'NDNabstraction'): ns3::SpringMobilityModel::SpringMobilityModel(ns3::SpringMobilityModel const & arg0) [copy constructor]
+ cls.add_constructor([param('ns3::SpringMobilityModel const &', 'arg0')])
+ ## spring-mobility-model.h (module 'NDNabstraction'): ns3::SpringMobilityModel::SpringMobilityModel() [constructor]
+ cls.add_constructor([])
+ ## spring-mobility-model.h (module 'NDNabstraction'): void ns3::SpringMobilityModel::AddSpring(ns3::Ptr<ns3::MobilityModel> node) [member function]
+ cls.add_method('AddSpring',
+ 'void',
+ [param('ns3::Ptr< ns3::MobilityModel >', 'node')])
+ ## spring-mobility-model.h (module 'NDNabstraction'): static ns3::TypeId ns3::SpringMobilityModel::GetTypeId() [member function]
+ cls.add_method('GetTypeId',
+ 'ns3::TypeId',
+ [],
+ is_static=True)
+ ## spring-mobility-model.h (module 'NDNabstraction'): ns3::Vector ns3::SpringMobilityModel::DoGetPosition() const [member function]
+ cls.add_method('DoGetPosition',
+ 'ns3::Vector',
+ [],
+ is_const=True, visibility='private', is_virtual=True)
+ ## spring-mobility-model.h (module 'NDNabstraction'): ns3::Vector ns3::SpringMobilityModel::DoGetVelocity() const [member function]
+ cls.add_method('DoGetVelocity',
+ 'ns3::Vector',
+ [],
+ is_const=True, visibility='private', is_virtual=True)
+ ## spring-mobility-model.h (module 'NDNabstraction'): void ns3::SpringMobilityModel::DoSetPosition(ns3::Vector const & position) [member function]
+ cls.add_method('DoSetPosition',
+ 'void',
+ [param('ns3::Vector const &', 'position')],
+ visibility='private', is_virtual=True)
+ ## spring-mobility-model.h (module 'NDNabstraction'): void ns3::SpringMobilityModel::DoStart() [member function]
+ cls.add_method('DoStart',
+ 'void',
+ [],
+ visibility='private', is_virtual=True)
+ return
+
def register_Ns3TimeChecker_methods(root_module, cls):
## nstime.h (module 'core'): ns3::TimeChecker::TimeChecker() [constructor]
cls.add_constructor([])
@@ -4953,6 +5121,86 @@
[param('ns3::TypeId const &', 'value')])
return
+def register_Ns3Vector2DChecker_methods(root_module, cls):
+ ## vector.h (module 'core'): ns3::Vector2DChecker::Vector2DChecker() [constructor]
+ cls.add_constructor([])
+ ## vector.h (module 'core'): ns3::Vector2DChecker::Vector2DChecker(ns3::Vector2DChecker const & arg0) [copy constructor]
+ cls.add_constructor([param('ns3::Vector2DChecker const &', 'arg0')])
+ return
+
+def register_Ns3Vector2DValue_methods(root_module, cls):
+ ## vector.h (module 'core'): ns3::Vector2DValue::Vector2DValue() [constructor]
+ cls.add_constructor([])
+ ## vector.h (module 'core'): ns3::Vector2DValue::Vector2DValue(ns3::Vector2DValue const & arg0) [copy constructor]
+ cls.add_constructor([param('ns3::Vector2DValue const &', 'arg0')])
+ ## vector.h (module 'core'): ns3::Vector2DValue::Vector2DValue(ns3::Vector2D const & value) [constructor]
+ cls.add_constructor([param('ns3::Vector2D const &', 'value')])
+ ## vector.h (module 'core'): ns3::Ptr<ns3::AttributeValue> ns3::Vector2DValue::Copy() const [member function]
+ cls.add_method('Copy',
+ 'ns3::Ptr< ns3::AttributeValue >',
+ [],
+ is_const=True, is_virtual=True)
+ ## vector.h (module 'core'): bool ns3::Vector2DValue::DeserializeFromString(std::string value, ns3::Ptr<ns3::AttributeChecker const> checker) [member function]
+ cls.add_method('DeserializeFromString',
+ 'bool',
+ [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')],
+ is_virtual=True)
+ ## vector.h (module 'core'): ns3::Vector2D ns3::Vector2DValue::Get() const [member function]
+ cls.add_method('Get',
+ 'ns3::Vector2D',
+ [],
+ is_const=True)
+ ## vector.h (module 'core'): std::string ns3::Vector2DValue::SerializeToString(ns3::Ptr<ns3::AttributeChecker const> checker) const [member function]
+ cls.add_method('SerializeToString',
+ 'std::string',
+ [param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')],
+ is_const=True, is_virtual=True)
+ ## vector.h (module 'core'): void ns3::Vector2DValue::Set(ns3::Vector2D const & value) [member function]
+ cls.add_method('Set',
+ 'void',
+ [param('ns3::Vector2D const &', 'value')])
+ return
+
+def register_Ns3Vector3DChecker_methods(root_module, cls):
+ ## vector.h (module 'core'): ns3::Vector3DChecker::Vector3DChecker() [constructor]
+ cls.add_constructor([])
+ ## vector.h (module 'core'): ns3::Vector3DChecker::Vector3DChecker(ns3::Vector3DChecker const & arg0) [copy constructor]
+ cls.add_constructor([param('ns3::Vector3DChecker const &', 'arg0')])
+ return
+
+def register_Ns3Vector3DValue_methods(root_module, cls):
+ ## vector.h (module 'core'): ns3::Vector3DValue::Vector3DValue() [constructor]
+ cls.add_constructor([])
+ ## vector.h (module 'core'): ns3::Vector3DValue::Vector3DValue(ns3::Vector3DValue const & arg0) [copy constructor]
+ cls.add_constructor([param('ns3::Vector3DValue const &', 'arg0')])
+ ## vector.h (module 'core'): ns3::Vector3DValue::Vector3DValue(ns3::Vector3D const & value) [constructor]
+ cls.add_constructor([param('ns3::Vector3D const &', 'value')])
+ ## vector.h (module 'core'): ns3::Ptr<ns3::AttributeValue> ns3::Vector3DValue::Copy() const [member function]
+ cls.add_method('Copy',
+ 'ns3::Ptr< ns3::AttributeValue >',
+ [],
+ is_const=True, is_virtual=True)
+ ## vector.h (module 'core'): bool ns3::Vector3DValue::DeserializeFromString(std::string value, ns3::Ptr<ns3::AttributeChecker const> checker) [member function]
+ cls.add_method('DeserializeFromString',
+ 'bool',
+ [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')],
+ is_virtual=True)
+ ## vector.h (module 'core'): ns3::Vector3D ns3::Vector3DValue::Get() const [member function]
+ cls.add_method('Get',
+ 'ns3::Vector3D',
+ [],
+ is_const=True)
+ ## vector.h (module 'core'): std::string ns3::Vector3DValue::SerializeToString(ns3::Ptr<ns3::AttributeChecker const> checker) const [member function]
+ cls.add_method('SerializeToString',
+ 'std::string',
+ [param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')],
+ is_const=True, is_virtual=True)
+ ## vector.h (module 'core'): void ns3::Vector3DValue::Set(ns3::Vector3D const & value) [member function]
+ cls.add_method('Set',
+ 'void',
+ [param('ns3::Vector3D const &', 'value')])
+ return
+
def register_Ns3AddressChecker_methods(root_module, cls):
## address.h (module 'network'): ns3::AddressChecker::AddressChecker() [constructor]
cls.add_constructor([])
diff --git a/examples/abilene-topology.cc b/examples/abilene-topology.cc
index 660d899..d17f23a 100644
--- a/examples/abilene-topology.cc
+++ b/examples/abilene-topology.cc
@@ -121,10 +121,14 @@
ccnxHelper.InstallAll ();
NS_LOG_INFO ("Installing Applications");
- CcnxConsumerHelper consumerHelper ("/5");
+ CcnxAppHelper consumerHelper ("ns3::CcnxConsumer");
+ consumerHelper.SetPrefix ("/5");
ApplicationContainer consumers = consumerHelper.Install (Names::Find<Node> ("/abilene", "ATLAng"));
-
- CcnxProducerHelper producerHelper ("/5",1024);
+
+ CcnxAppHelper producerHelper ("ns3::CcnxProducer");
+ producerHelper.SetPrefix ("/5");
+ producerHelper.SetAttribute ("PayloadSize", StringValue("1024"));
+
ApplicationContainer producers = producerHelper.Install (Names::Find<Node> ("/abilene", "IPLSng"));
// // Populate FIB based on IPv4 global routing controller
diff --git a/examples/annotated-topology-read-example.cc b/examples/annotated-topology-read-example.cc
index c220873..450d8d1 100644
--- a/examples/annotated-topology-read-example.cc
+++ b/examples/annotated-topology-read-example.cc
@@ -93,15 +93,19 @@
Ptr<CcnxFaceContainer> cf = ccnx.Install (nodes);
NS_LOG_INFO ("Installing Applications");
- CcnxConsumerHelper helper ("/3");
- ApplicationContainer app = helper.Install (nodes.Get(1));
+ CcnxAppHelper helper ("ns3::CcnxConsumer");
+ helper.SetPrefix ("/3");
+ ApplicationContainer app = helper.Install ("1");
app.Start (Seconds (1.0));
app.Stop (Seconds (1000.05));
-
- CcnxProducerHelper helper3 ("/3",120);
- ApplicationContainer app3 = helper3.Install(nodes.Get(6));
- app3.Start(Seconds(0.0));
- app3.Stop(Seconds(1500.0));
+
+ CcnxAppHelper helper2 ("ns3::CcnxProducer");
+ helper2.SetPrefix ("/3");
+ helper2.SetAttribute ("PayloadSize", StringValue("1024"));
+ ApplicationContainer app2 = helper2.Install("3");
+
+ app2.Start(Seconds(0.0));
+ app2.Stop(Seconds(1500.0));
// ------------------------------------------------------------
// -- Run the simulation
diff --git a/examples/ccnx-grid.cc b/examples/ccnx-grid.cc
index 51d7858..28a021b 100644
--- a/examples/ccnx-grid.cc
+++ b/examples/ccnx-grid.cc
@@ -116,13 +116,16 @@
std::ostringstream prefix;
prefix << "/" << producer->GetId ();
- CcnxConsumerHelper consumerHelper (prefix.str ());
+ CcnxAppHelper consumerHelper ("ns3::CcnxConsumer");
+ consumerHelper.SetPrefix (prefix.str ());
ApplicationContainer consumers = consumerHelper.Install (consumerNodes);
// consumers.Start (Seconds (0.0));
// consumers.Stop (finishTime);
- CcnxProducerHelper producerHelper (prefix.str (),1024);
+ CcnxAppHelper producerHelper ("ns3::CcnxProducer");
+ producerHelper.SetPrefix (prefix.str ());
+ producerHelper.SetAttribute ("PayloadSize", StringValue("1024"));
ApplicationContainer producers = producerHelper.Install (producer);
// producers.Start(Seconds(0.0));
diff --git a/examples/ccnx-test.cc b/examples/ccnx-test.cc
index d5cb1ad..cae2815 100644
--- a/examples/ccnx-test.cc
+++ b/examples/ccnx-test.cc
@@ -46,13 +46,17 @@
CcnxStackHelper ccnx;
Ptr<CcnxFaceContainer> cf = ccnx.Install (c);
- CcnxConsumerHelper helper ("/3");
+ CcnxAppHelper helper ("ns3::CcnxConsumer");
+ helper.SetPrefix ("/3");
ApplicationContainer app = helper.Install ("1");
app.Start (Seconds (1.0));
app.Stop (Seconds (10.05));
-
- CcnxProducerHelper helper2 ("/3",120);
+
+ CcnxAppHelper helper2 ("ns3::CcnxProducer");
+ helper2.SetPrefix ("/3");
+ helper2.SetAttribute ("PayloadSize", StringValue("1024"));
ApplicationContainer app2 = helper2.Install("3");
+
app2.Start(Seconds(0.0));
app2.Stop(Seconds(15.0));
diff --git a/examples/synthetic-topology.cc b/examples/synthetic-topology.cc
index f03c22e..39c45eb 100644
--- a/examples/synthetic-topology.cc
+++ b/examples/synthetic-topology.cc
@@ -88,7 +88,9 @@
ccnxHelper.InstallAll ();
NS_LOG_INFO ("Installing Applications");
- CcnxConsumerHelper consumerHelper ("/6");
+ CcnxAppHelper consumerHelper ("ns3::CcnxConsumer");
+
+ consumerHelper.SetPrefix ("/6");
ApplicationContainer consumers = consumerHelper.Install (Names::Find<Node> ("/synthetic", "c1"));
consumerHelper.SetPrefix ("/7");
@@ -100,24 +102,27 @@
consumerHelper.SetPrefix ("/10");
ApplicationContainer consumers4 = consumerHelper.Install(Names::Find<Node> ("/synthetic", "c4"));
- consumers.Start (Seconds (2.121212123));
- consumers2.Start (Seconds (0.166666));
- consumers3.Start (Seconds (4.1235432));
- consumers4.Start (Seconds (3.00005421));
-
- CcnxProducerHelper producerHelper ("/6",1024);
- ApplicationContainer producers = producerHelper.Install (Names::Find<Node> ("/synthetic", "p1"));
-
- CcnxProducerHelper producerHelper2 ("/7",1024);
- ApplicationContainer producers2 = producerHelper2.Install (Names::Find<Node> ("/synthetic", "p2"));
+ consumers.Start (Seconds (0));
+ consumers2.Start (Seconds (10));
+ consumers3.Start (Seconds (20));
+ consumers4.Start (Seconds (30));
- CcnxProducerHelper producerHelper3 ("/8",1024);
- ApplicationContainer producers3 = producerHelper3.Install (Names::Find<Node> ("/synthetic", "p3"));
+ /////////////////////////////////////////////
- CcnxProducerHelper producerHelper4 ("/10",1024);
- ApplicationContainer producers4 = producerHelper4.Install (Names::Find<Node> ("/synthetic", "p4"));
+ CcnxAppHelper producerHelper ("ns3::CcnxProducer");
+ producerHelper.SetAttribute ("PayloadSize", StringValue("1024"));
+
+ producerHelper.SetPrefix ("/6");
+ producerHelper.Install (Names::Find<Node> ("/synthetic", "p1"));
+
+ producerHelper.SetPrefix ("/7");
+ producerHelper.Install (Names::Find<Node> ("/synthetic", "p2"));
+
+ producerHelper.SetPrefix ("/8");
+ producerHelper.Install (Names::Find<Node> ("/synthetic", "p3"));
- Simulator::Schedule (Seconds (10.0), PrintTime);
+ producerHelper.SetPrefix ("/10");
+ producerHelper.Install (Names::Find<Node> ("/synthetic", "p4"));
// Populate FIB based on IPv4 global routing controller
ccnxHelper.InstallFakeGlobalRoutes ();
@@ -126,6 +131,8 @@
ccnxHelper.InstallRouteTo (Names::Find<Node> ("/synthetic", "p3"));
ccnxHelper.InstallRouteTo (Names::Find<Node> ("/synthetic", "p4"));
+ Simulator::Schedule (Seconds (10.0), PrintTime);
+
Simulator::Stop (finishTime);
NS_LOG_INFO ("Run Simulation.");
diff --git a/examples/synthetic-topology.txt b/examples/synthetic-topology.txt
index 0d175b0..240ef1e 100644
--- a/examples/synthetic-topology.txt
+++ b/examples/synthetic-topology.txt
@@ -21,7 +21,7 @@
n1 n2 1Mbps 1176 1ms 20
n1 n12 1Mbps 587 1ms 20
n12 n2 1Mbps 846 1ms 20
-n2 p1 10Mbps 260 50ms 200
+n2 p1 10Mbps 260 1ms 200
n2 p2 10Mbps 700 1ms 200
n2 p3 10Mbps 1 1ms 200
c4 n1 10Mbps 1 1ms 200
diff --git a/helper/ccnx-app-helper.cc b/helper/ccnx-app-helper.cc
new file mode 100644
index 0000000..d52a005
--- /dev/null
+++ b/helper/ccnx-app-helper.cc
@@ -0,0 +1,83 @@
+/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2011 University of California, Los Angeles
+ *
+ * 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
+ *
+ * Author: Ilya Moiseenko <iliamo@cs.ucla.edu>
+ */
+
+#include "ccnx-app-helper.h"
+#include "ns3/log.h"
+#include "ns3/string.h"
+#include "ns3/names.h"
+#include "ns3/ccnx-app.h"
+
+NS_LOG_COMPONENT_DEFINE ("CcnxAppHelper");
+
+namespace ns3
+{
+
+CcnxAppHelper::CcnxAppHelper (const std::string &app)
+{
+ m_factory.SetTypeId (app);
+}
+
+void
+CcnxAppHelper::SetPrefix (const std::string &prefix)
+{
+ m_factory.Set ("Prefix", StringValue(prefix));
+}
+
+void
+CcnxAppHelper::SetAttribute (std::string name, const AttributeValue &value)
+{
+ m_factory.Set (name, value);
+}
+
+ApplicationContainer
+CcnxAppHelper::Install (Ptr<Node> node)
+{
+ return ApplicationContainer (InstallPriv (node));
+}
+
+ApplicationContainer
+CcnxAppHelper::Install (std::string nodeName)
+{
+ Ptr<Node> node = Names::Find<Node> (nodeName);
+ return ApplicationContainer (InstallPriv (node));
+}
+
+ApplicationContainer
+CcnxAppHelper::Install (NodeContainer c)
+{
+ ApplicationContainer apps;
+ for (NodeContainer::Iterator i = c.Begin (); i != c.End (); ++i)
+ {
+ apps.Add (InstallPriv (*i));
+ }
+
+ return apps;
+}
+
+Ptr<Application>
+CcnxAppHelper::InstallPriv (Ptr<Node> node)
+{
+ Ptr<CcnxApp> app = m_factory.Create<CcnxApp> ();
+ node->AddApplication (app);
+
+ return app;
+}
+
+}
diff --git a/helper/ccnx-consumer-helper.h b/helper/ccnx-app-helper.h
similarity index 89%
rename from helper/ccnx-consumer-helper.h
rename to helper/ccnx-app-helper.h
index aa7c8c9..3eb1296 100644
--- a/helper/ccnx-consumer-helper.h
+++ b/helper/ccnx-app-helper.h
@@ -18,8 +18,8 @@
* Author: Ilya Moiseenko <iliamo@cs.ucla.edu>
*/
-#ifndef CCNX_CONSUMER_HELPER_H
-#define CCNX_CONSUMER_HELPER_H
+#ifndef CCNX_APP_HELPER_H
+#define CCNX_APP_HELPER_H
#include "ns3/object-factory.h"
#include "ns3/attribute.h"
@@ -28,22 +28,22 @@
#include "ns3/ptr.h"
namespace ns3
-{
+{
+
/**
* \brief A helper to make it easier to instantiate an ns3::CcnxConsumer Application
* on a set of nodes.
*/
-
-class CcnxConsumerHelper
+class CcnxAppHelper
{
public:
/**
- * \brief Create an CcnxConsumerHelper to make it easier to work with CcnxConsumer Apps
+ * \brief Create an CcnxAppHelper to make it easier to work with CCNx apps
*
- * \param prefix Prefix which will be requested by the consumer applications
+ * \param app Class of the application
*/
- CcnxConsumerHelper (const std::string &prefix);
+ CcnxAppHelper (const std::string &prefix);
/**
* @brief Set the prefix consumer will be requesting
@@ -100,7 +100,7 @@
ObjectFactory m_factory;
};
-}
+} // namespace ns3
-#endif
+#endif // CCNX_APP_HELPER_H
diff --git a/helper/ccnx-consumer-helper.cc b/helper/ccnx-consumer-helper.cc
deleted file mode 100644
index dc29d9a..0000000
--- a/helper/ccnx-consumer-helper.cc
+++ /dev/null
@@ -1,87 +0,0 @@
-/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2011 University of California, Los Angeles
- *
- * 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
- *
- * Author: Ilya Moiseenko <iliamo@cs.ucla.edu>
- */
-
-#include "ccnx-consumer-helper.h"
-#include "ns3/log.h"
-#include "ns3/ccnx-name-components.h"
-#include "ns3/names.h"
-#include "../apps/ccnx-consumer.h"
-
-NS_LOG_COMPONENT_DEFINE ("CcnxConsumerHelper");
-
-namespace ns3
-{
-
-CcnxConsumerHelper::CcnxConsumerHelper (const std::string &prefix)
-{
- m_factory.SetTypeId ("ns3::CcnxConsumer");
-
- SetPrefix (prefix);
-}
-
-void
-CcnxConsumerHelper::SetPrefix (const std::string &prefix)
-{
- CcnxNameComponentsValue prefixValue;
- prefixValue.DeserializeFromString (prefix, MakeCcnxNameComponentsChecker ());
- m_factory.Set ("InterestName", prefixValue);
-}
-
-void
-CcnxConsumerHelper::SetAttribute (std::string name, const AttributeValue &value)
-{
- m_factory.Set (name, value);
-}
-
-ApplicationContainer
-CcnxConsumerHelper::Install (Ptr<Node> node)
-{
- return ApplicationContainer (InstallPriv (node));
-}
-
-ApplicationContainer
-CcnxConsumerHelper::Install (std::string nodeName)
-{
- Ptr<Node> node = Names::Find<Node> (nodeName);
- return ApplicationContainer (InstallPriv (node));
-}
-
-ApplicationContainer
-CcnxConsumerHelper::Install (NodeContainer c)
-{
- ApplicationContainer apps;
- for (NodeContainer::Iterator i = c.Begin (); i != c.End (); ++i)
- {
- apps.Add (InstallPriv (*i));
- }
-
- return apps;
-}
-
-Ptr<Application>
-CcnxConsumerHelper::InstallPriv (Ptr<Node> node)
-{
- Ptr<CcnxConsumer> app = m_factory.Create<CcnxConsumer> ();
- node->AddApplication (app);
-
- return app;
-}
-
-}
diff --git a/helper/ccnx-producer-helper.cc b/helper/ccnx-producer-helper.cc
deleted file mode 100644
index 2bf369b..0000000
--- a/helper/ccnx-producer-helper.cc
+++ /dev/null
@@ -1,120 +0,0 @@
-/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2011 University of California, Los Angeles
- *
- * 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
- *
- * Author: Ilya Moiseenko <iliamo@cs.ucla.edu>
- */
-
-#include "ccnx-producer-helper.h"
-#include "ns3/log.h"
-#include "ns3/ccnx-name-components.h"
-#include "ns3/uinteger.h"
-#include "ns3/names.h"
-#include "../apps/ccnx-producer.h"
-
-NS_LOG_COMPONENT_DEFINE ("CcnxProducerHelper");
-
-namespace ns3
-{
-
-CcnxProducerHelper::CcnxProducerHelper (const std::string &prefix, uint32_t virtualPayloadSize)
-{
- m_factory.SetTypeId ("ns3::CcnxProducer");
-
- CcnxNameComponentsValue prefixValue;
- prefixValue.DeserializeFromString (prefix, MakeCcnxNameComponentsChecker ());
- m_factory.Set ("Prefix", prefixValue);
-
- m_factory.Set ("PayloadSize", UintegerValue (virtualPayloadSize));
-}
-
-void
-CcnxProducerHelper::SetAttribute (std::string name, const AttributeValue &value)
-{
- m_factory.Set (name, value);
-}
-
-ApplicationContainer
-CcnxProducerHelper::Install (Ptr<Node> node)
-{
- NS_LOG_FUNCTION(this);
- return ApplicationContainer (InstallPriv (node));
-}
-
-ApplicationContainer
-CcnxProducerHelper::Install (std::string nodeName)
-{
- Ptr<Node> node = Names::Find<Node> (nodeName);
- return ApplicationContainer (InstallPriv (node));
-}
-
-ApplicationContainer
-CcnxProducerHelper::Install (NodeContainer c)
-{
- ApplicationContainer apps;
- for (NodeContainer::Iterator i = c.Begin (); i != c.End (); ++i)
- {
- apps.Add (InstallPriv (*i));
- }
-
- return apps;
-}
-
- /*CcnxStackHelper::CreateAndAggregateObjectFromTypeId (Ptr<Node> node, const std::string typeId)
- {
- ObjectFactory factory;
- factory.SetTypeId (typeId);
- Ptr<Object> protocol = factory.Create <Object> ();
- node->AggregateObject (protocol);
- }*/
-Ptr<Application>
-CcnxProducerHelper::InstallPriv (Ptr<Node> node)
-{
- NS_LOG_INFO ("InstallPriv started");
- Ptr<CcnxProducer> app = m_factory.Create<CcnxProducer> ();
- node->AddApplication (app);
-
- /*Ptr<CcnxLocalFace> localFace = Create<CcnxLocalFace> ();
- localFace->SetNode(node);
-
- //CreateAndAggregateObjectFromTypeId (node, "ns3::CcnxL3Protocol");
- ObjectFactory factory;
- factory.SetTypeId("ns3::CcnxL3Protocol");
- Ptr<Object> protocol = factory.Create<Object> ();
- node->AggregateObject(protocol);
-
- Ptr<Ccnx> ccnx = node->GetObject<Ccnx> ();
-
- if (ccnx == NULL)
- {
- NS_FATAL_ERROR ("CcnxProducerHelper::InstallPriv (): Getting Ccnx "
- "a CcnxStack must be installed on the node");
- return 0;
- }
-
- // m_factory.Set ("Face", PointerValue (localFace));
- m_factory.Set ("Ccnx", PointerValue (ccnx));
- Ptr<CcnxProducer> app = m_factory.Create<CcnxProducer> ();
-
- //app->m_ccnx->m_contentStore->SetMaxSize(app->GetStoreCapacity());
- localFace->RegisterProtocolHandler (MakeCallback (&CcnxProducer::HandlePacket, app));
- localFace->SetUp();
-
- node->AddApplication (app);*/
-
- return app;
-}
-}
diff --git a/helper/ccnx-producer-helper.h b/helper/ccnx-producer-helper.h
deleted file mode 100644
index 31f76da..0000000
--- a/helper/ccnx-producer-helper.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2011 University of California, Los Angeles
- *
- * 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
- *
- * Author: Ilya Moiseenko <iliamo@cs.ucla.edu>
- */
-
-#ifndef CCNX_PRODUCER_HELPER_H
-#define CCNX_PRODUCER_HELPER_H
-
-#include "ns3/object-factory.h"
-#include "ns3/attribute.h"
-#include "ns3/node-container.h"
-#include "ns3/application-container.h"
-#include "ns3/ptr.h"
-
-namespace ns3
-{
-/**
-* \brief A helper to make it easier to instantiate an ns3::CcnxProducer application
-* on a set of nodes.
-*/
-
-class Node;
-
-class CcnxProducerHelper
-{
-public:
-/**
-* Create an CcnxProducerHelper to make it easier to work with CcnxProducer applications
-*
-*/
-CcnxProducerHelper (const std::string &prefix, uint32_t virtualPayloadSize);
-
-/**
-* Helper function used to set the underlying application attributes.
-*
-* \param name the name of the application attribute to set
-* \param value the value of the application attribute to set
-*/
-void SetAttribute (std::string name, const AttributeValue &value);
-
-/**
-* Install an ns3::CcnxProducer on each node of the input container
-* configured with all the attributes set with SetAttribute.
-*
-* \param c NodeContainer of the set of nodes on which an CcnxProducer
-* will be installed.
-* \returns Container of Ptr to the applications installed.
-*/
-ApplicationContainer Install (NodeContainer c);
-
-/**
-* Install an ns3::CcnxProducer on the node configured with all the
-* attributes set with SetAttribute.
-*
-* \param node The node on which an CcnxProducer will be installed.
-* \returns Container of Ptr to the applications installed.
-*/
-ApplicationContainer Install (Ptr<Node> node);
-
-/**
-* Install an ns3::CcnxProducer on the node configured with all the
-* attributes set with SetAttribute.
-*
-* \param nodeName The node on which an CcnxProducer will be installed.
-* \returns Container of Ptr to the applications installed.
-*/
-ApplicationContainer Install (std::string nodeName);
-
-private:
-/**
-* \internal
-* Install an ns3::CcnxProducer on the node configured with all the
-* attributes set with SetAttribute.
-*
-* \param node The node on which an CcnxProducer will be installed.
-* \returns Ptr to the application installed.
-*/
-Ptr<Application> InstallPriv (Ptr<Node> node);
-ObjectFactory m_factory;
-
-};
-}
-
-#endif
-
diff --git a/model/ccnx-face.cc b/model/ccnx-face.cc
index 18b2015..95c0b7f 100644
--- a/model/ccnx-face.cc
+++ b/model/ccnx-face.cc
@@ -27,6 +27,7 @@
#include "ns3/assert.h"
#include "ns3/uinteger.h"
#include "ns3/double.h"
+#include "ns3/simulator.h"
#include <boost/ref.hpp>
@@ -72,6 +73,7 @@
, m_protocolHandler (MakeNullCallback<void,const Ptr<CcnxFace>&,const Ptr<const Packet>&> ())
, m_ifup (false)
, m_id ((uint32_t)-1)
+ , m_lastLeakTime (0)
{
NS_LOG_FUNCTION (this);
@@ -109,6 +111,8 @@
if (!IsUp ())
return false;
+
+ LeakBucket ();
if (m_bucketMax > 0)
{
@@ -155,10 +159,21 @@
}
void
-CcnxFace::LeakBucket (const Time &interval)
+CcnxFace::LeakBucket ()
{
+ if (m_lastLeakTime.IsZero ())
+ {
+ m_lastLeakTime = Simulator::Now ();
+ return;
+ }
+
+ Time interval = Simulator::Now () - m_lastLeakTime;
const double leak = m_bucketLeak * interval.ToDouble (Time::S);
- m_bucket = std::max (0.0, m_bucket - leak);
+ if (leak >= 1.0)
+ {
+ m_bucket = std::max (0.0, m_bucket - leak);
+ m_lastLeakTime = Simulator::Now ();
+ }
// NS_LOG_DEBUG ("max: " << m_bucketMax << ", Current bucket: " << m_bucket << ", leak size: " << leak << ", interval: " << interval << ", " << m_bucketLeak);
}
@@ -177,12 +192,6 @@
m_bucketLeak = leak;
}
-void
-CcnxFace::LeakBucketByOnePacket ()
-{
- m_bucket = std::max (0.0, m_bucket-1.0);
-}
-
// void
// CcnxFace::SetMetric (uint16_t metric)
// {
@@ -202,6 +211,7 @@
* NetDevice states, such as found in real implementations
* (where the device may be down but face state is still up).
*/
+
bool
CcnxFace::IsUp (void) const
{
diff --git a/model/ccnx-face.h b/model/ccnx-face.h
index b63b1e7..98969e2 100644
--- a/model/ccnx-face.h
+++ b/model/ccnx-face.h
@@ -178,16 +178,12 @@
SetBucketLeak (double leak);
/**
- * @brief Leak the Interest allowance bucket by (1/interval) * m_bucketMax amount
- *
- * @param interval Time interval with which the bucket is leaked
+ * @brief Leak the Interest allowance bucket by (1/interval) * m_bucketMax amount,
+ * where interval is time between two consecutive calls of LeakBucket
*/
void
- LeakBucket (const Time &interval);
+ LeakBucket ();
- void
- LeakBucketByOnePacket ();
-
/**
* \brief Compare two faces. Only two faces on the same node could be compared.
*
@@ -228,7 +224,8 @@
private:
ProtocolHandler m_protocolHandler; ///< Callback via which packets are getting send to CCNx stack
bool m_ifup; ///< \brief flag indicating that the interface is UP
- uint32_t m_id; ///< \brief id of the interface in CCNx stack (per-node uniqueness)
+ uint32_t m_id; ///< \brief id of the interface in CCNx stack (per-node uniqueness)
+ Time m_lastLeakTime;
};
std::ostream& operator<< (std::ostream& os, const CcnxFace &face);
diff --git a/model/ccnx-l3-protocol.cc b/model/ccnx-l3-protocol.cc
index 5b55906..7f5f195 100644
--- a/model/ccnx-l3-protocol.cc
+++ b/model/ccnx-l3-protocol.cc
@@ -31,6 +31,7 @@
#include "ns3/pointer.h"
#include "ns3/boolean.h"
#include "ns3/string.h"
+#include "ns3/simulator.h"
#include "ns3/ccnx-header-helper.h"
@@ -74,12 +75,12 @@
MakePointerAccessor (&CcnxL3Protocol::SetForwardingStrategy, &CcnxL3Protocol::GetForwardingStrategy),
MakePointerChecker<CcnxForwardingStrategy> ())
- .AddAttribute ("BucketLeakInterval",
- "Interval to leak buckets",
- StringValue ("100ms"),
- MakeTimeAccessor (&CcnxL3Protocol::GetBucketLeakInterval,
- &CcnxL3Protocol::SetBucketLeakInterval),
- MakeTimeChecker ())
+ // .AddAttribute ("BucketLeakInterval",
+ // "Interval to leak buckets",
+ // StringValue ("100ms"),
+ // MakeTimeAccessor (&CcnxL3Protocol::GetBucketLeakInterval,
+ // &CcnxL3Protocol::SetBucketLeakInterval),
+ // MakeTimeChecker ())
;
return tid;
}
@@ -133,9 +134,6 @@
{
NS_LOG_FUNCTION (this);
- if (m_bucketLeakEvent.IsRunning ())
- m_bucketLeakEvent.Cancel ();
-
for (CcnxFaceList::iterator i = m_faces.begin (); i != m_faces.end (); ++i)
{
*i = 0;
@@ -635,37 +633,37 @@
Simulator::Now () + m_pit->GetPitEntryPruningTimeout ()));
}
-void
-CcnxL3Protocol::SetBucketLeakInterval (Time interval)
-{
- m_bucketLeakInterval = interval;
+// void
+// CcnxL3Protocol::SetBucketLeakInterval (Time interval)
+// {
+// m_bucketLeakInterval = interval;
- if (m_bucketLeakEvent.IsRunning ())
- m_bucketLeakEvent.Cancel ();
+// if (m_bucketLeakEvent.IsRunning ())
+// m_bucketLeakEvent.Cancel ();
- m_bucketLeakEvent = Simulator::Schedule (m_bucketLeakInterval,
- &CcnxL3Protocol::LeakBuckets, this);
-}
+// m_bucketLeakEvent = Simulator::Schedule (m_bucketLeakInterval,
+// &CcnxL3Protocol::LeakBuckets, this);
+// }
-Time
-CcnxL3Protocol::GetBucketLeakInterval () const
-{
- return m_bucketLeakInterval;
-}
+// Time
+// CcnxL3Protocol::GetBucketLeakInterval () const
+// {
+// return m_bucketLeakInterval;
+// }
-void
-CcnxL3Protocol::LeakBuckets ()
-{
- // NS_LOG_FUNCTION (this);
+// void
+// CcnxL3Protocol::LeakBuckets ()
+// {
+// // NS_LOG_FUNCTION (this);
- BOOST_FOREACH (const Ptr<CcnxFace> &face, m_faces)
- {
- face->LeakBucket (m_bucketLeakInterval);
- }
+// BOOST_FOREACH (const Ptr<CcnxFace> &face, m_faces)
+// {
+// face->LeakBucket (m_bucketLeakInterval);
+// }
- m_bucketLeakEvent = Simulator::Schedule (m_bucketLeakInterval,
- &CcnxL3Protocol::LeakBuckets,
- this);
-}
+// m_bucketLeakEvent = Simulator::Schedule (m_bucketLeakInterval,
+// &CcnxL3Protocol::LeakBuckets,
+// this);
+// }
} //namespace ns3
diff --git a/model/ccnx-l3-protocol.h b/model/ccnx-l3-protocol.h
index 8ac24d6..d3e1b44 100644
--- a/model/ccnx-l3-protocol.h
+++ b/model/ccnx-l3-protocol.h
@@ -23,13 +23,11 @@
#include <list>
#include <vector>
-#include <stdint.h>
+
#include "ns3/ptr.h"
#include "ns3/net-device.h"
#include "ns3/nstime.h"
-#include "ns3/simulator.h"
-#include "ns3/ccnx-producer-helper.h"
#include "ccnx-content-store.h"
#include "ccnx-pit.h"
#include "ccnx-fib.h"
@@ -181,17 +179,17 @@
CcnxL3Protocol(const CcnxL3Protocol &); ///< copy constructor is disabled
CcnxL3Protocol &operator = (const CcnxL3Protocol &); ///< copy operator is disabled
- /// \brief Set buckets leak interval
- void
- SetBucketLeakInterval (Time interval);
+ // /// \brief Set buckets leak interval
+ // void
+ // SetBucketLeakInterval (Time interval);
- /// \brief Get buckets leak interval
- Time
- GetBucketLeakInterval () const;
+ // /// \brief Get buckets leak interval
+ // Time
+ // GetBucketLeakInterval () const;
- /// \brief Periodically generate pre-calculated number of tokens (leak buckets)
- void
- LeakBuckets ();
+ // /// \brief Periodically generate pre-calculated number of tokens (leak buckets)
+ // void
+ // LeakBuckets ();
void
GiveUpInterest (const CcnxPitEntry &pitEntry,
@@ -209,9 +207,9 @@
Ptr<CcnxPit> m_pit; ///< \brief PIT (pending interest table)
Ptr<CcnxFib> m_fib; ///< \brief FIB
Ptr<CcnxContentStore> m_contentStore; ///< \brief Content store (for caching purposes only)
-
- Time m_bucketLeakInterval;
- EventId m_bucketLeakEvent;
+
+ // Time m_bucketLeakInterval;
+ // EventId m_bucketLeakEvent;
};
} // Namespace ns3
diff --git a/model/ccnx-name-components.cc b/model/ccnx-name-components.cc
index 323a3f8..fd0064f 100644
--- a/model/ccnx-name-components.cc
+++ b/model/ccnx-name-components.cc
@@ -93,7 +93,8 @@
istream_iterator<char> eos; // end of stream
std::string component = "";
- for (istream_iterator<char> it (is); it != eos; it++)
+ istream_iterator<char> it (is);
+ for (; it != eos; it++)
{
if (*it == '/')
{
@@ -107,6 +108,9 @@
if (component != "")
components.Add (component);
+ is.clear ();
+ // NS_LOG_ERROR (components << ", bad: " << is.bad () <<", fail: " << is.fail ());
+
return is;
}
diff --git a/wscript b/wscript
index 197cc0c..980468a 100644
--- a/wscript
+++ b/wscript
@@ -54,13 +54,10 @@
headers.source = [
"helper/ccnx-stack-helper.h",
- "helper/ccnx-producer-helper.h",
- "helper/ccnx-consumer-helper.h",
+ "helper/ccnx-app-helper.h",
"helper/ccnx-header-helper.h",
"apps/ccnx-app.h",
- # "apps/ccnx-consumer.h",
- # "apps/ccnx-producer.h",
"model/hash-helper.h",
"model/ccnx.h",
@@ -70,6 +67,9 @@
"model/ccnx-content-object-header.h",
"model/ccnx-name-components.h",
"model/ccnx-fib.h",
+
+ "utils/spring-mobility-model.h",
+ "utils/spring-mobility-helper.h",
"helper/ccnx-face-container.h",
"model/rocketfuel-weights-reader.h",
@@ -95,9 +95,6 @@
obj = bld.create_ns3_program('ccnx-grid', ['NDNabstraction', 'point-to-point-layout'])
obj.source = 'examples/ccnx-grid.cc'
- obj = bld.create_ns3_program('syntactic-topology', ['NDNabstraction', 'point-to-point-layout'])
- obj.source = 'examples/syntactic-topology-ndnabstraction.cc'
-
obj = bld.create_ns3_program('annotated-topology', ['NDNabstraction', 'point-to-point-layout'])
obj.source = 'examples/annotated-topology-read-example.cc'