model: Renaming ndn::NameComponents to simply ndn::Name
This change doesn't break anything in the existing code, but eventually
all uses of ndn::NameComponents will be removed and ndn::NameComponents
will be deprecated
diff --git a/bindings/modulegen__gcc_ILP32.py b/bindings/modulegen__gcc_ILP32.py
index db32877..3836b99 100644
--- a/bindings/modulegen__gcc_ILP32.py
+++ b/bindings/modulegen__gcc_ILP32.py
@@ -172,8 +172,8 @@
module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::ndn::FaceContainer', 'ns3::empty', 'ns3::DefaultDeleter<ns3::ndn::FaceContainer>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::InterestHeader, ns3::Header, ns3::DefaultDeleter<ns3::ndn::InterestHeader> > [class]
module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::ndn::InterestHeader', 'ns3::Header', 'ns3::DefaultDeleter<ns3::ndn::InterestHeader>'], parent=root_module['ns3::Header'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
- ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::NameComponents, ns3::empty, ns3::DefaultDeleter<ns3::ndn::NameComponents> > [class]
- module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::ndn::NameComponents', 'ns3::empty', 'ns3::DefaultDeleter<ns3::ndn::NameComponents>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+ ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::Name, ns3::empty, ns3::DefaultDeleter<ns3::ndn::Name> > [class]
+ module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::ndn::Name', 'ns3::empty', 'ns3::DefaultDeleter<ns3::ndn::Name>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::cs::Entry, ns3::empty, ns3::DefaultDeleter<ns3::ndn::cs::Entry> > [class]
module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::ndn::cs::Entry', 'ns3::empty', 'ns3::DefaultDeleter<ns3::ndn::cs::Entry>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::pit::Entry, ns3::empty, ns3::DefaultDeleter<ns3::ndn::pit::Entry> > [class]
@@ -348,12 +348,18 @@
module.add_class('L3Protocol', parent=root_module['ns3::Object'])
## ndn-limits.h (module 'ndnSIM'): ns3::ndn::Limits [class]
module.add_class('Limits', parent=root_module['ns3::Object'])
+ ## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::Name [class]
+ module.add_class('Name', parent=root_module['ns3::SimpleRefCount< ns3::ndn::Name, ns3::empty, ns3::DefaultDeleter<ns3::ndn::Name> >'])
+ ## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::NameChecker [class]
+ module.add_class('NameChecker', parent=root_module['ns3::AttributeChecker'])
## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::NameComponents [class]
- module.add_class('NameComponents', parent=root_module['ns3::SimpleRefCount< ns3::ndn::NameComponents, ns3::empty, ns3::DefaultDeleter<ns3::ndn::NameComponents> >'])
+ module.add_class('NameComponents', parent=root_module['ns3::ndn::Name'])
## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::NameComponentsChecker [class]
module.add_class('NameComponentsChecker', parent=root_module['ns3::AttributeChecker'])
## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::NameComponentsValue [class]
module.add_class('NameComponentsValue', parent=root_module['ns3::AttributeValue'])
+ ## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::NameValue [class]
+ module.add_class('NameValue', parent=root_module['ns3::AttributeValue'])
## ndn-net-device-face.h (module 'ndnSIM'): ns3::ndn::NetDeviceFace [class]
module.add_class('NetDeviceFace', parent=root_module['ns3::ndn::Face'])
## ndn-pit.h (module 'ndnSIM'): ns3::ndn::Pit [class]
@@ -513,7 +519,7 @@
register_Ns3SimpleRefCount__Ns3NdnContentObjectHeader_Ns3Header_Ns3DefaultDeleter__lt__ns3NdnContentObjectHeader__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::ndn::ContentObjectHeader, ns3::Header, ns3::DefaultDeleter<ns3::ndn::ContentObjectHeader> >'])
register_Ns3SimpleRefCount__Ns3NdnFaceContainer_Ns3Empty_Ns3DefaultDeleter__lt__ns3NdnFaceContainer__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::ndn::FaceContainer, ns3::empty, ns3::DefaultDeleter<ns3::ndn::FaceContainer> >'])
register_Ns3SimpleRefCount__Ns3NdnInterestHeader_Ns3Header_Ns3DefaultDeleter__lt__ns3NdnInterestHeader__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::ndn::InterestHeader, ns3::Header, ns3::DefaultDeleter<ns3::ndn::InterestHeader> >'])
- register_Ns3SimpleRefCount__Ns3NdnNameComponents_Ns3Empty_Ns3DefaultDeleter__lt__ns3NdnNameComponents__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::ndn::NameComponents, ns3::empty, ns3::DefaultDeleter<ns3::ndn::NameComponents> >'])
+ register_Ns3SimpleRefCount__Ns3NdnName_Ns3Empty_Ns3DefaultDeleter__lt__ns3NdnName__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::ndn::Name, ns3::empty, ns3::DefaultDeleter<ns3::ndn::Name> >'])
register_Ns3SimpleRefCount__Ns3NdnCsEntry_Ns3Empty_Ns3DefaultDeleter__lt__ns3NdnCsEntry__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::ndn::cs::Entry, ns3::empty, ns3::DefaultDeleter<ns3::ndn::cs::Entry> >'])
register_Ns3SimpleRefCount__Ns3NdnPitEntry_Ns3Empty_Ns3DefaultDeleter__lt__ns3NdnPitEntry__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::ndn::pit::Entry, ns3::empty, ns3::DefaultDeleter<ns3::ndn::pit::Entry> >'])
register_Ns3Time_methods(root_module, root_module['ns3::Time'])
@@ -577,9 +583,12 @@
register_Ns3NdnInterestHeaderException_methods(root_module, root_module['ns3::ndn::InterestHeaderException'])
register_Ns3NdnL3Protocol_methods(root_module, root_module['ns3::ndn::L3Protocol'])
register_Ns3NdnLimits_methods(root_module, root_module['ns3::ndn::Limits'])
+ register_Ns3NdnName_methods(root_module, root_module['ns3::ndn::Name'])
+ register_Ns3NdnNameChecker_methods(root_module, root_module['ns3::ndn::NameChecker'])
register_Ns3NdnNameComponents_methods(root_module, root_module['ns3::ndn::NameComponents'])
register_Ns3NdnNameComponentsChecker_methods(root_module, root_module['ns3::ndn::NameComponentsChecker'])
register_Ns3NdnNameComponentsValue_methods(root_module, root_module['ns3::ndn::NameComponentsValue'])
+ register_Ns3NdnNameValue_methods(root_module, root_module['ns3::ndn::NameValue'])
register_Ns3NdnNetDeviceFace_methods(root_module, root_module['ns3::ndn::NetDeviceFace'])
register_Ns3NdnPit_methods(root_module, root_module['ns3::ndn::Pit'])
register_Ns3NdnStackHelper_methods(root_module, root_module['ns3::ndn::StackHelper'])
@@ -2908,12 +2917,12 @@
is_static=True)
return
-def register_Ns3SimpleRefCount__Ns3NdnNameComponents_Ns3Empty_Ns3DefaultDeleter__lt__ns3NdnNameComponents__gt___methods(root_module, cls):
- ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::NameComponents, ns3::empty, ns3::DefaultDeleter<ns3::ndn::NameComponents> >::SimpleRefCount() [constructor]
+def register_Ns3SimpleRefCount__Ns3NdnName_Ns3Empty_Ns3DefaultDeleter__lt__ns3NdnName__gt___methods(root_module, cls):
+ ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::Name, ns3::empty, ns3::DefaultDeleter<ns3::ndn::Name> >::SimpleRefCount() [constructor]
cls.add_constructor([])
- ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::NameComponents, ns3::empty, ns3::DefaultDeleter<ns3::ndn::NameComponents> >::SimpleRefCount(ns3::SimpleRefCount<ns3::ndn::NameComponents, ns3::empty, ns3::DefaultDeleter<ns3::ndn::NameComponents> > const & o) [copy constructor]
- cls.add_constructor([param('ns3::SimpleRefCount< ns3::ndn::NameComponents, ns3::empty, ns3::DefaultDeleter< ns3::ndn::NameComponents > > const &', 'o')])
- ## simple-ref-count.h (module 'core'): static void ns3::SimpleRefCount<ns3::ndn::NameComponents, ns3::empty, ns3::DefaultDeleter<ns3::ndn::NameComponents> >::Cleanup() [member function]
+ ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::Name, ns3::empty, ns3::DefaultDeleter<ns3::ndn::Name> >::SimpleRefCount(ns3::SimpleRefCount<ns3::ndn::Name, ns3::empty, ns3::DefaultDeleter<ns3::ndn::Name> > const & o) [copy constructor]
+ cls.add_constructor([param('ns3::SimpleRefCount< ns3::ndn::Name, ns3::empty, ns3::DefaultDeleter< ns3::ndn::Name > > const &', 'o')])
+ ## simple-ref-count.h (module 'core'): static void ns3::SimpleRefCount<ns3::ndn::Name, ns3::empty, ns3::DefaultDeleter<ns3::ndn::Name> >::Cleanup() [member function]
cls.add_method('Cleanup',
'void',
[],
@@ -4598,6 +4607,11 @@
cls.add_constructor([param('ns3::ndn::App const &', 'arg0')])
## ndn-app.h (module 'ndnSIM'): ns3::ndn::App::App() [constructor]
cls.add_constructor([])
+ ## ndn-app.h (module 'ndnSIM'): uint32_t ns3::ndn::App::GetId() const [member function]
+ cls.add_method('GetId',
+ 'uint32_t',
+ [],
+ is_const=True)
## ndn-app.h (module 'ndnSIM'): static ns3::TypeId ns3::ndn::App::GetTypeId() [member function]
cls.add_method('GetTypeId',
'ns3::TypeId',
@@ -5038,6 +5052,11 @@
'void',
[param('ns3::Ptr< ns3::ndn::Face >', 'face')],
is_virtual=True)
+ ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidAddFibEntry(ns3::Ptr<ns3::ndn::fib::Entry> fibEntry) [member function]
+ cls.add_method('DidAddFibEntry',
+ 'void',
+ [param('ns3::Ptr< ns3::ndn::fib::Entry >', 'fibEntry')],
+ is_virtual=True)
## ndn-forwarding-strategy.h (module 'ndnSIM'): static std::string ns3::ndn::ForwardingStrategy::GetLogName() [member function]
cls.add_method('GetLogName',
'std::string',
@@ -5068,6 +5087,11 @@
'void',
[param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')],
is_virtual=True)
+ ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::WillRemoveFibEntry(ns3::Ptr<ns3::ndn::fib::Entry> fibEntry) [member function]
+ cls.add_method('WillRemoveFibEntry',
+ 'void',
+ [param('ns3::Ptr< ns3::ndn::fib::Entry >', 'fibEntry')],
+ is_virtual=True)
## ndn-forwarding-strategy.h (module 'ndnSIM'): bool ns3::ndn::ForwardingStrategy::CanSendOutInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Face> outFace, ns3::Ptr<ns3::ndn::InterestHeader const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
cls.add_method('CanSendOutInterest',
'bool',
@@ -5182,6 +5206,10 @@
cls.add_method('AddOrigins',
'void',
[param('std::string const &', 'prefix'), param('ns3::NodeContainer const &', 'nodes')])
+ ## ndn-global-routing-helper.h (module 'ndnSIM'): void ns3::ndn::GlobalRoutingHelper::AddOriginsForAll() [member function]
+ cls.add_method('AddOriginsForAll',
+ 'void',
+ [])
## ndn-global-routing-helper.h (module 'ndnSIM'): void ns3::ndn::GlobalRoutingHelper::CalculateRoutes() [member function]
cls.add_method('CalculateRoutes',
'void',
@@ -5205,6 +5233,10 @@
cls.add_constructor([])
## ndn-header-helper.h (module 'ndnSIM'): ns3::ndn::HeaderHelper::HeaderHelper(ns3::ndn::HeaderHelper const & arg0) [copy constructor]
cls.add_constructor([param('ns3::ndn::HeaderHelper const &', 'arg0')])
+ ## ndn-header-helper.h (module 'ndnSIM'): ns3::Ptr<const ns3::ndn::Name> ns3::ndn::HeaderHelper::GetName(ns3::Ptr<const ns3::Packet> packet) [member function]
+ cls.add_method('GetName',
+ 'ns3::Ptr< ns3::ndn::Name const >',
+ [param('ns3::Ptr< ns3::Packet const >', 'packet')])
## ndn-header-helper.h (module 'ndnSIM'): static ns3::ndn::HeaderHelper::Type ns3::ndn::HeaderHelper::GetNdnHeaderType(ns3::Ptr<const ns3::Packet> packet) [member function]
cls.add_method('GetNdnHeaderType',
'ns3::ndn::HeaderHelper::Type',
@@ -5459,82 +5491,102 @@
visibility='protected')
return
-def register_Ns3NdnNameComponents_methods(root_module, cls):
+def register_Ns3NdnName_methods(root_module, cls):
cls.add_output_stream_operator()
cls.add_binary_comparison_operator('<')
cls.add_binary_comparison_operator('==')
+ ## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::Name::Name(ns3::ndn::Name const & arg0) [copy constructor]
+ cls.add_constructor([param('ns3::ndn::Name const &', 'arg0')])
+ ## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::Name::Name() [constructor]
+ cls.add_constructor([])
+ ## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::Name::Name(std::list<boost::reference_wrapper<std::string const>, std::allocator<boost::reference_wrapper<std::string const> > > const & components) [constructor]
+ cls.add_constructor([param('std::list< boost::reference_wrapper< std::string const > > const &', 'components')])
+ ## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::Name::Name(std::string const & prefix) [constructor]
+ cls.add_constructor([param('std::string const &', 'prefix')])
+ ## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::Name::Name(char const * prefix) [constructor]
+ cls.add_constructor([param('char const *', 'prefix')])
+ ## ndn-name-components.h (module 'ndnSIM'): uint32_t ns3::ndn::Name::Deserialize(ns3::Buffer::Iterator start) [member function]
+ cls.add_method('Deserialize',
+ 'uint32_t',
+ [param('ns3::Buffer::Iterator', 'start')])
+ ## ndn-name-components.h (module 'ndnSIM'): std::list<std::string, std::allocator<std::string> > const & ns3::ndn::Name::GetComponents() const [member function]
+ cls.add_method('GetComponents',
+ 'std::list< std::string > const &',
+ [],
+ is_const=True)
+ ## ndn-name-components.h (module 'ndnSIM'): std::string ns3::ndn::Name::GetLastComponent() const [member function]
+ cls.add_method('GetLastComponent',
+ 'std::string',
+ [],
+ is_const=True)
+ ## ndn-name-components.h (module 'ndnSIM'): size_t ns3::ndn::Name::GetSerializedSize() const [member function]
+ cls.add_method('GetSerializedSize',
+ 'size_t',
+ [],
+ is_const=True)
+ ## ndn-name-components.h (module 'ndnSIM'): std::list<boost::reference_wrapper<std::string const>, std::allocator<boost::reference_wrapper<std::string const> > > ns3::ndn::Name::GetSubComponents(size_t num) const [member function]
+ cls.add_method('GetSubComponents',
+ 'std::list< boost::reference_wrapper< std::string const > >',
+ [param('size_t', 'num')],
+ is_const=True)
+ ## ndn-name-components.h (module 'ndnSIM'): void ns3::ndn::Name::Print(std::ostream & os) const [member function]
+ cls.add_method('Print',
+ 'void',
+ [param('std::ostream &', 'os')],
+ is_const=True)
+ ## ndn-name-components.h (module 'ndnSIM'): uint32_t ns3::ndn::Name::Serialize(ns3::Buffer::Iterator start) const [member function]
+ cls.add_method('Serialize',
+ 'uint32_t',
+ [param('ns3::Buffer::Iterator', 'start')],
+ is_const=True)
+ ## ndn-name-components.h (module 'ndnSIM'): std::_List_iterator<std::string> ns3::ndn::Name::begin() [member function]
+ cls.add_method('begin',
+ 'std::_List_iterator< std::string >',
+ [])
+ ## ndn-name-components.h (module 'ndnSIM'): std::_List_const_iterator<std::string> ns3::ndn::Name::begin() const [member function]
+ cls.add_method('begin',
+ 'std::_List_const_iterator< std::string >',
+ [],
+ is_const=True)
+ ## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::Name ns3::ndn::Name::cut(size_t minusComponents) const [member function]
+ cls.add_method('cut',
+ 'ns3::ndn::Name',
+ [param('size_t', 'minusComponents')],
+ is_const=True)
+ ## ndn-name-components.h (module 'ndnSIM'): std::_List_iterator<std::string> ns3::ndn::Name::end() [member function]
+ cls.add_method('end',
+ 'std::_List_iterator< std::string >',
+ [])
+ ## ndn-name-components.h (module 'ndnSIM'): std::_List_const_iterator<std::string> ns3::ndn::Name::end() const [member function]
+ cls.add_method('end',
+ 'std::_List_const_iterator< std::string >',
+ [],
+ is_const=True)
+ ## ndn-name-components.h (module 'ndnSIM'): size_t ns3::ndn::Name::size() const [member function]
+ cls.add_method('size',
+ 'size_t',
+ [],
+ is_const=True)
+ return
+
+def register_Ns3NdnNameChecker_methods(root_module, cls):
+ ## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::NameChecker::NameChecker() [constructor]
+ cls.add_constructor([])
+ ## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::NameChecker::NameChecker(ns3::ndn::NameChecker const & arg0) [copy constructor]
+ cls.add_constructor([param('ns3::ndn::NameChecker const &', 'arg0')])
+ return
+
+def register_Ns3NdnNameComponents_methods(root_module, cls):
## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::NameComponents::NameComponents(ns3::ndn::NameComponents const & arg0) [copy constructor]
cls.add_constructor([param('ns3::ndn::NameComponents const &', 'arg0')])
## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::NameComponents::NameComponents() [constructor]
cls.add_constructor([])
- ## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::NameComponents::NameComponents(std::list<boost::reference_wrapper<const std::basic_string<char, std::char_traits<char>, std::allocator<char> > >,std::allocator<boost::reference_wrapper<const std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const & components) [constructor]
+ ## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::NameComponents::NameComponents(std::list<boost::reference_wrapper<std::string const>, std::allocator<boost::reference_wrapper<std::string const> > > const & components) [constructor]
cls.add_constructor([param('std::list< boost::reference_wrapper< std::string const > > const &', 'components')])
## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::NameComponents::NameComponents(std::string const & prefix) [constructor]
cls.add_constructor([param('std::string const &', 'prefix')])
## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::NameComponents::NameComponents(char const * prefix) [constructor]
cls.add_constructor([param('char const *', 'prefix')])
- ## ndn-name-components.h (module 'ndnSIM'): uint32_t ns3::ndn::NameComponents::Deserialize(ns3::Buffer::Iterator start) [member function]
- cls.add_method('Deserialize',
- 'uint32_t',
- [param('ns3::Buffer::Iterator', 'start')])
- ## ndn-name-components.h (module 'ndnSIM'): std::list<std::string, std::allocator<std::string> > const & ns3::ndn::NameComponents::GetComponents() const [member function]
- cls.add_method('GetComponents',
- 'std::list< std::string > const &',
- [],
- is_const=True)
- ## ndn-name-components.h (module 'ndnSIM'): std::string ns3::ndn::NameComponents::GetLastComponent() const [member function]
- cls.add_method('GetLastComponent',
- 'std::string',
- [],
- is_const=True)
- ## ndn-name-components.h (module 'ndnSIM'): size_t ns3::ndn::NameComponents::GetSerializedSize() const [member function]
- cls.add_method('GetSerializedSize',
- 'size_t',
- [],
- is_const=True)
- ## ndn-name-components.h (module 'ndnSIM'): std::list<boost::reference_wrapper<const std::basic_string<char, std::char_traits<char>, std::allocator<char> > >,std::allocator<boost::reference_wrapper<const std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > ns3::ndn::NameComponents::GetSubComponents(size_t num) const [member function]
- cls.add_method('GetSubComponents',
- 'std::list< boost::reference_wrapper< std::string const > >',
- [param('size_t', 'num')],
- is_const=True)
- ## ndn-name-components.h (module 'ndnSIM'): void ns3::ndn::NameComponents::Print(std::ostream & os) const [member function]
- cls.add_method('Print',
- 'void',
- [param('std::ostream &', 'os')],
- is_const=True)
- ## ndn-name-components.h (module 'ndnSIM'): uint32_t ns3::ndn::NameComponents::Serialize(ns3::Buffer::Iterator start) const [member function]
- cls.add_method('Serialize',
- 'uint32_t',
- [param('ns3::Buffer::Iterator', 'start')],
- is_const=True)
- ## ndn-name-components.h (module 'ndnSIM'): std::_List_iterator<std::string> ns3::ndn::NameComponents::begin() [member function]
- cls.add_method('begin',
- 'std::_List_iterator< std::string >',
- [])
- ## ndn-name-components.h (module 'ndnSIM'): std::_List_const_iterator<std::string> ns3::ndn::NameComponents::begin() const [member function]
- cls.add_method('begin',
- 'std::_List_const_iterator< std::string >',
- [],
- is_const=True)
- ## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::NameComponents ns3::ndn::NameComponents::cut(size_t minusComponents) const [member function]
- cls.add_method('cut',
- 'ns3::ndn::NameComponents',
- [param('size_t', 'minusComponents')],
- is_const=True)
- ## ndn-name-components.h (module 'ndnSIM'): std::_List_iterator<std::string> ns3::ndn::NameComponents::end() [member function]
- cls.add_method('end',
- 'std::_List_iterator< std::string >',
- [])
- ## ndn-name-components.h (module 'ndnSIM'): std::_List_const_iterator<std::string> ns3::ndn::NameComponents::end() const [member function]
- cls.add_method('end',
- 'std::_List_const_iterator< std::string >',
- [],
- is_const=True)
- ## ndn-name-components.h (module 'ndnSIM'): size_t ns3::ndn::NameComponents::size() const [member function]
- cls.add_method('size',
- 'size_t',
- [],
- is_const=True)
return
def register_Ns3NdnNameComponentsChecker_methods(root_module, cls):
@@ -5577,6 +5629,39 @@
[param('ns3::ndn::NameComponents const &', 'value')])
return
+def register_Ns3NdnNameValue_methods(root_module, cls):
+ ## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::NameValue::NameValue() [constructor]
+ cls.add_constructor([])
+ ## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::NameValue::NameValue(ns3::ndn::NameValue const & arg0) [copy constructor]
+ cls.add_constructor([param('ns3::ndn::NameValue const &', 'arg0')])
+ ## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::NameValue::NameValue(ns3::ndn::Name const & value) [constructor]
+ cls.add_constructor([param('ns3::ndn::Name const &', 'value')])
+ ## ndn-name-components.h (module 'ndnSIM'): ns3::Ptr<ns3::AttributeValue> ns3::ndn::NameValue::Copy() const [member function]
+ cls.add_method('Copy',
+ 'ns3::Ptr< ns3::AttributeValue >',
+ [],
+ is_const=True, is_virtual=True)
+ ## ndn-name-components.h (module 'ndnSIM'): bool ns3::ndn::NameValue::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)
+ ## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::Name ns3::ndn::NameValue::Get() const [member function]
+ cls.add_method('Get',
+ 'ns3::ndn::Name',
+ [],
+ is_const=True)
+ ## ndn-name-components.h (module 'ndnSIM'): std::string ns3::ndn::NameValue::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)
+ ## ndn-name-components.h (module 'ndnSIM'): void ns3::ndn::NameValue::Set(ns3::ndn::Name const & value) [member function]
+ cls.add_method('Set',
+ 'void',
+ [param('ns3::ndn::Name const &', 'value')])
+ return
+
def register_Ns3NdnNetDeviceFace_methods(root_module, cls):
## ndn-net-device-face.h (module 'ndnSIM'): static ns3::TypeId ns3::ndn::NetDeviceFace::GetTypeId() [member function]
cls.add_method('GetTypeId',
@@ -5835,6 +5920,10 @@
cls.add_method('RemoveFace',
'void',
[param('ns3::Ptr< ns3::ndn::Face > const &', 'face')])
+ ## ndn-fib-entry.h (module 'ndnSIM'): void ns3::ndn::fib::Entry::SetRealDelayToProducer(ns3::Ptr<ns3::ndn::Face> face, ns3::Time delay) [member function]
+ cls.add_method('SetRealDelayToProducer',
+ 'void',
+ [param('ns3::Ptr< ns3::ndn::Face >', 'face'), param('ns3::Time', 'delay')])
## ndn-fib-entry.h (module 'ndnSIM'): void ns3::ndn::fib::Entry::UpdateFaceRtt(ns3::Ptr<ns3::ndn::Face> face, ns3::Time const & sample) [member function]
cls.add_method('UpdateFaceRtt',
'void',
@@ -5876,6 +5965,8 @@
[param('ns3::Time const &', 'rttSample')])
## ndn-fib-entry.h (module 'ndnSIM'): ns3::ndn::fib::FaceMetric::m_face [variable]
cls.add_instance_attribute('m_face', 'ns3::Ptr< ns3::ndn::Face >', is_const=False)
+ ## ndn-fib-entry.h (module 'ndnSIM'): ns3::ndn::fib::FaceMetric::m_realDelay [variable]
+ cls.add_instance_attribute('m_realDelay', 'ns3::Time', is_const=False)
## ndn-fib-entry.h (module 'ndnSIM'): ns3::ndn::fib::FaceMetric::m_routingCost [variable]
cls.add_instance_attribute('m_routingCost', 'int32_t', is_const=False)
## ndn-fib-entry.h (module 'ndnSIM'): ns3::ndn::fib::FaceMetric::m_rttVar [variable]
@@ -6108,6 +6199,10 @@
return
def register_functions_ns3_ndn(module, root_module):
+ ## ndn-name-components.h (module 'ndnSIM'): extern ns3::Ptr<ns3::AttributeChecker const> ns3::ndn::MakeNameChecker() [free function]
+ module.add_function('MakeNameChecker',
+ 'ns3::Ptr< ns3::AttributeChecker const >',
+ [])
## ndn-name-components.h (module 'ndnSIM'): extern ns3::Ptr<ns3::AttributeChecker const> ns3::ndn::MakeNameComponentsChecker() [free function]
module.add_function('MakeNameComponentsChecker',
'ns3::Ptr< ns3::AttributeChecker const >',
diff --git a/bindings/modulegen__gcc_LP64.py b/bindings/modulegen__gcc_LP64.py
index db32877..3836b99 100644
--- a/bindings/modulegen__gcc_LP64.py
+++ b/bindings/modulegen__gcc_LP64.py
@@ -172,8 +172,8 @@
module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::ndn::FaceContainer', 'ns3::empty', 'ns3::DefaultDeleter<ns3::ndn::FaceContainer>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::InterestHeader, ns3::Header, ns3::DefaultDeleter<ns3::ndn::InterestHeader> > [class]
module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::ndn::InterestHeader', 'ns3::Header', 'ns3::DefaultDeleter<ns3::ndn::InterestHeader>'], parent=root_module['ns3::Header'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
- ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::NameComponents, ns3::empty, ns3::DefaultDeleter<ns3::ndn::NameComponents> > [class]
- module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::ndn::NameComponents', 'ns3::empty', 'ns3::DefaultDeleter<ns3::ndn::NameComponents>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+ ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::Name, ns3::empty, ns3::DefaultDeleter<ns3::ndn::Name> > [class]
+ module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::ndn::Name', 'ns3::empty', 'ns3::DefaultDeleter<ns3::ndn::Name>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::cs::Entry, ns3::empty, ns3::DefaultDeleter<ns3::ndn::cs::Entry> > [class]
module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::ndn::cs::Entry', 'ns3::empty', 'ns3::DefaultDeleter<ns3::ndn::cs::Entry>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::pit::Entry, ns3::empty, ns3::DefaultDeleter<ns3::ndn::pit::Entry> > [class]
@@ -348,12 +348,18 @@
module.add_class('L3Protocol', parent=root_module['ns3::Object'])
## ndn-limits.h (module 'ndnSIM'): ns3::ndn::Limits [class]
module.add_class('Limits', parent=root_module['ns3::Object'])
+ ## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::Name [class]
+ module.add_class('Name', parent=root_module['ns3::SimpleRefCount< ns3::ndn::Name, ns3::empty, ns3::DefaultDeleter<ns3::ndn::Name> >'])
+ ## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::NameChecker [class]
+ module.add_class('NameChecker', parent=root_module['ns3::AttributeChecker'])
## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::NameComponents [class]
- module.add_class('NameComponents', parent=root_module['ns3::SimpleRefCount< ns3::ndn::NameComponents, ns3::empty, ns3::DefaultDeleter<ns3::ndn::NameComponents> >'])
+ module.add_class('NameComponents', parent=root_module['ns3::ndn::Name'])
## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::NameComponentsChecker [class]
module.add_class('NameComponentsChecker', parent=root_module['ns3::AttributeChecker'])
## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::NameComponentsValue [class]
module.add_class('NameComponentsValue', parent=root_module['ns3::AttributeValue'])
+ ## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::NameValue [class]
+ module.add_class('NameValue', parent=root_module['ns3::AttributeValue'])
## ndn-net-device-face.h (module 'ndnSIM'): ns3::ndn::NetDeviceFace [class]
module.add_class('NetDeviceFace', parent=root_module['ns3::ndn::Face'])
## ndn-pit.h (module 'ndnSIM'): ns3::ndn::Pit [class]
@@ -513,7 +519,7 @@
register_Ns3SimpleRefCount__Ns3NdnContentObjectHeader_Ns3Header_Ns3DefaultDeleter__lt__ns3NdnContentObjectHeader__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::ndn::ContentObjectHeader, ns3::Header, ns3::DefaultDeleter<ns3::ndn::ContentObjectHeader> >'])
register_Ns3SimpleRefCount__Ns3NdnFaceContainer_Ns3Empty_Ns3DefaultDeleter__lt__ns3NdnFaceContainer__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::ndn::FaceContainer, ns3::empty, ns3::DefaultDeleter<ns3::ndn::FaceContainer> >'])
register_Ns3SimpleRefCount__Ns3NdnInterestHeader_Ns3Header_Ns3DefaultDeleter__lt__ns3NdnInterestHeader__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::ndn::InterestHeader, ns3::Header, ns3::DefaultDeleter<ns3::ndn::InterestHeader> >'])
- register_Ns3SimpleRefCount__Ns3NdnNameComponents_Ns3Empty_Ns3DefaultDeleter__lt__ns3NdnNameComponents__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::ndn::NameComponents, ns3::empty, ns3::DefaultDeleter<ns3::ndn::NameComponents> >'])
+ register_Ns3SimpleRefCount__Ns3NdnName_Ns3Empty_Ns3DefaultDeleter__lt__ns3NdnName__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::ndn::Name, ns3::empty, ns3::DefaultDeleter<ns3::ndn::Name> >'])
register_Ns3SimpleRefCount__Ns3NdnCsEntry_Ns3Empty_Ns3DefaultDeleter__lt__ns3NdnCsEntry__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::ndn::cs::Entry, ns3::empty, ns3::DefaultDeleter<ns3::ndn::cs::Entry> >'])
register_Ns3SimpleRefCount__Ns3NdnPitEntry_Ns3Empty_Ns3DefaultDeleter__lt__ns3NdnPitEntry__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::ndn::pit::Entry, ns3::empty, ns3::DefaultDeleter<ns3::ndn::pit::Entry> >'])
register_Ns3Time_methods(root_module, root_module['ns3::Time'])
@@ -577,9 +583,12 @@
register_Ns3NdnInterestHeaderException_methods(root_module, root_module['ns3::ndn::InterestHeaderException'])
register_Ns3NdnL3Protocol_methods(root_module, root_module['ns3::ndn::L3Protocol'])
register_Ns3NdnLimits_methods(root_module, root_module['ns3::ndn::Limits'])
+ register_Ns3NdnName_methods(root_module, root_module['ns3::ndn::Name'])
+ register_Ns3NdnNameChecker_methods(root_module, root_module['ns3::ndn::NameChecker'])
register_Ns3NdnNameComponents_methods(root_module, root_module['ns3::ndn::NameComponents'])
register_Ns3NdnNameComponentsChecker_methods(root_module, root_module['ns3::ndn::NameComponentsChecker'])
register_Ns3NdnNameComponentsValue_methods(root_module, root_module['ns3::ndn::NameComponentsValue'])
+ register_Ns3NdnNameValue_methods(root_module, root_module['ns3::ndn::NameValue'])
register_Ns3NdnNetDeviceFace_methods(root_module, root_module['ns3::ndn::NetDeviceFace'])
register_Ns3NdnPit_methods(root_module, root_module['ns3::ndn::Pit'])
register_Ns3NdnStackHelper_methods(root_module, root_module['ns3::ndn::StackHelper'])
@@ -2908,12 +2917,12 @@
is_static=True)
return
-def register_Ns3SimpleRefCount__Ns3NdnNameComponents_Ns3Empty_Ns3DefaultDeleter__lt__ns3NdnNameComponents__gt___methods(root_module, cls):
- ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::NameComponents, ns3::empty, ns3::DefaultDeleter<ns3::ndn::NameComponents> >::SimpleRefCount() [constructor]
+def register_Ns3SimpleRefCount__Ns3NdnName_Ns3Empty_Ns3DefaultDeleter__lt__ns3NdnName__gt___methods(root_module, cls):
+ ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::Name, ns3::empty, ns3::DefaultDeleter<ns3::ndn::Name> >::SimpleRefCount() [constructor]
cls.add_constructor([])
- ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::NameComponents, ns3::empty, ns3::DefaultDeleter<ns3::ndn::NameComponents> >::SimpleRefCount(ns3::SimpleRefCount<ns3::ndn::NameComponents, ns3::empty, ns3::DefaultDeleter<ns3::ndn::NameComponents> > const & o) [copy constructor]
- cls.add_constructor([param('ns3::SimpleRefCount< ns3::ndn::NameComponents, ns3::empty, ns3::DefaultDeleter< ns3::ndn::NameComponents > > const &', 'o')])
- ## simple-ref-count.h (module 'core'): static void ns3::SimpleRefCount<ns3::ndn::NameComponents, ns3::empty, ns3::DefaultDeleter<ns3::ndn::NameComponents> >::Cleanup() [member function]
+ ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::ndn::Name, ns3::empty, ns3::DefaultDeleter<ns3::ndn::Name> >::SimpleRefCount(ns3::SimpleRefCount<ns3::ndn::Name, ns3::empty, ns3::DefaultDeleter<ns3::ndn::Name> > const & o) [copy constructor]
+ cls.add_constructor([param('ns3::SimpleRefCount< ns3::ndn::Name, ns3::empty, ns3::DefaultDeleter< ns3::ndn::Name > > const &', 'o')])
+ ## simple-ref-count.h (module 'core'): static void ns3::SimpleRefCount<ns3::ndn::Name, ns3::empty, ns3::DefaultDeleter<ns3::ndn::Name> >::Cleanup() [member function]
cls.add_method('Cleanup',
'void',
[],
@@ -4598,6 +4607,11 @@
cls.add_constructor([param('ns3::ndn::App const &', 'arg0')])
## ndn-app.h (module 'ndnSIM'): ns3::ndn::App::App() [constructor]
cls.add_constructor([])
+ ## ndn-app.h (module 'ndnSIM'): uint32_t ns3::ndn::App::GetId() const [member function]
+ cls.add_method('GetId',
+ 'uint32_t',
+ [],
+ is_const=True)
## ndn-app.h (module 'ndnSIM'): static ns3::TypeId ns3::ndn::App::GetTypeId() [member function]
cls.add_method('GetTypeId',
'ns3::TypeId',
@@ -5038,6 +5052,11 @@
'void',
[param('ns3::Ptr< ns3::ndn::Face >', 'face')],
is_virtual=True)
+ ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::DidAddFibEntry(ns3::Ptr<ns3::ndn::fib::Entry> fibEntry) [member function]
+ cls.add_method('DidAddFibEntry',
+ 'void',
+ [param('ns3::Ptr< ns3::ndn::fib::Entry >', 'fibEntry')],
+ is_virtual=True)
## ndn-forwarding-strategy.h (module 'ndnSIM'): static std::string ns3::ndn::ForwardingStrategy::GetLogName() [member function]
cls.add_method('GetLogName',
'std::string',
@@ -5068,6 +5087,11 @@
'void',
[param('ns3::Ptr< ns3::ndn::pit::Entry >', 'pitEntry')],
is_virtual=True)
+ ## ndn-forwarding-strategy.h (module 'ndnSIM'): void ns3::ndn::ForwardingStrategy::WillRemoveFibEntry(ns3::Ptr<ns3::ndn::fib::Entry> fibEntry) [member function]
+ cls.add_method('WillRemoveFibEntry',
+ 'void',
+ [param('ns3::Ptr< ns3::ndn::fib::Entry >', 'fibEntry')],
+ is_virtual=True)
## ndn-forwarding-strategy.h (module 'ndnSIM'): bool ns3::ndn::ForwardingStrategy::CanSendOutInterest(ns3::Ptr<ns3::ndn::Face> inFace, ns3::Ptr<ns3::ndn::Face> outFace, ns3::Ptr<ns3::ndn::InterestHeader const> header, ns3::Ptr<const ns3::Packet> origPacket, ns3::Ptr<ns3::ndn::pit::Entry> pitEntry) [member function]
cls.add_method('CanSendOutInterest',
'bool',
@@ -5182,6 +5206,10 @@
cls.add_method('AddOrigins',
'void',
[param('std::string const &', 'prefix'), param('ns3::NodeContainer const &', 'nodes')])
+ ## ndn-global-routing-helper.h (module 'ndnSIM'): void ns3::ndn::GlobalRoutingHelper::AddOriginsForAll() [member function]
+ cls.add_method('AddOriginsForAll',
+ 'void',
+ [])
## ndn-global-routing-helper.h (module 'ndnSIM'): void ns3::ndn::GlobalRoutingHelper::CalculateRoutes() [member function]
cls.add_method('CalculateRoutes',
'void',
@@ -5205,6 +5233,10 @@
cls.add_constructor([])
## ndn-header-helper.h (module 'ndnSIM'): ns3::ndn::HeaderHelper::HeaderHelper(ns3::ndn::HeaderHelper const & arg0) [copy constructor]
cls.add_constructor([param('ns3::ndn::HeaderHelper const &', 'arg0')])
+ ## ndn-header-helper.h (module 'ndnSIM'): ns3::Ptr<const ns3::ndn::Name> ns3::ndn::HeaderHelper::GetName(ns3::Ptr<const ns3::Packet> packet) [member function]
+ cls.add_method('GetName',
+ 'ns3::Ptr< ns3::ndn::Name const >',
+ [param('ns3::Ptr< ns3::Packet const >', 'packet')])
## ndn-header-helper.h (module 'ndnSIM'): static ns3::ndn::HeaderHelper::Type ns3::ndn::HeaderHelper::GetNdnHeaderType(ns3::Ptr<const ns3::Packet> packet) [member function]
cls.add_method('GetNdnHeaderType',
'ns3::ndn::HeaderHelper::Type',
@@ -5459,82 +5491,102 @@
visibility='protected')
return
-def register_Ns3NdnNameComponents_methods(root_module, cls):
+def register_Ns3NdnName_methods(root_module, cls):
cls.add_output_stream_operator()
cls.add_binary_comparison_operator('<')
cls.add_binary_comparison_operator('==')
+ ## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::Name::Name(ns3::ndn::Name const & arg0) [copy constructor]
+ cls.add_constructor([param('ns3::ndn::Name const &', 'arg0')])
+ ## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::Name::Name() [constructor]
+ cls.add_constructor([])
+ ## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::Name::Name(std::list<boost::reference_wrapper<std::string const>, std::allocator<boost::reference_wrapper<std::string const> > > const & components) [constructor]
+ cls.add_constructor([param('std::list< boost::reference_wrapper< std::string const > > const &', 'components')])
+ ## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::Name::Name(std::string const & prefix) [constructor]
+ cls.add_constructor([param('std::string const &', 'prefix')])
+ ## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::Name::Name(char const * prefix) [constructor]
+ cls.add_constructor([param('char const *', 'prefix')])
+ ## ndn-name-components.h (module 'ndnSIM'): uint32_t ns3::ndn::Name::Deserialize(ns3::Buffer::Iterator start) [member function]
+ cls.add_method('Deserialize',
+ 'uint32_t',
+ [param('ns3::Buffer::Iterator', 'start')])
+ ## ndn-name-components.h (module 'ndnSIM'): std::list<std::string, std::allocator<std::string> > const & ns3::ndn::Name::GetComponents() const [member function]
+ cls.add_method('GetComponents',
+ 'std::list< std::string > const &',
+ [],
+ is_const=True)
+ ## ndn-name-components.h (module 'ndnSIM'): std::string ns3::ndn::Name::GetLastComponent() const [member function]
+ cls.add_method('GetLastComponent',
+ 'std::string',
+ [],
+ is_const=True)
+ ## ndn-name-components.h (module 'ndnSIM'): size_t ns3::ndn::Name::GetSerializedSize() const [member function]
+ cls.add_method('GetSerializedSize',
+ 'size_t',
+ [],
+ is_const=True)
+ ## ndn-name-components.h (module 'ndnSIM'): std::list<boost::reference_wrapper<std::string const>, std::allocator<boost::reference_wrapper<std::string const> > > ns3::ndn::Name::GetSubComponents(size_t num) const [member function]
+ cls.add_method('GetSubComponents',
+ 'std::list< boost::reference_wrapper< std::string const > >',
+ [param('size_t', 'num')],
+ is_const=True)
+ ## ndn-name-components.h (module 'ndnSIM'): void ns3::ndn::Name::Print(std::ostream & os) const [member function]
+ cls.add_method('Print',
+ 'void',
+ [param('std::ostream &', 'os')],
+ is_const=True)
+ ## ndn-name-components.h (module 'ndnSIM'): uint32_t ns3::ndn::Name::Serialize(ns3::Buffer::Iterator start) const [member function]
+ cls.add_method('Serialize',
+ 'uint32_t',
+ [param('ns3::Buffer::Iterator', 'start')],
+ is_const=True)
+ ## ndn-name-components.h (module 'ndnSIM'): std::_List_iterator<std::string> ns3::ndn::Name::begin() [member function]
+ cls.add_method('begin',
+ 'std::_List_iterator< std::string >',
+ [])
+ ## ndn-name-components.h (module 'ndnSIM'): std::_List_const_iterator<std::string> ns3::ndn::Name::begin() const [member function]
+ cls.add_method('begin',
+ 'std::_List_const_iterator< std::string >',
+ [],
+ is_const=True)
+ ## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::Name ns3::ndn::Name::cut(size_t minusComponents) const [member function]
+ cls.add_method('cut',
+ 'ns3::ndn::Name',
+ [param('size_t', 'minusComponents')],
+ is_const=True)
+ ## ndn-name-components.h (module 'ndnSIM'): std::_List_iterator<std::string> ns3::ndn::Name::end() [member function]
+ cls.add_method('end',
+ 'std::_List_iterator< std::string >',
+ [])
+ ## ndn-name-components.h (module 'ndnSIM'): std::_List_const_iterator<std::string> ns3::ndn::Name::end() const [member function]
+ cls.add_method('end',
+ 'std::_List_const_iterator< std::string >',
+ [],
+ is_const=True)
+ ## ndn-name-components.h (module 'ndnSIM'): size_t ns3::ndn::Name::size() const [member function]
+ cls.add_method('size',
+ 'size_t',
+ [],
+ is_const=True)
+ return
+
+def register_Ns3NdnNameChecker_methods(root_module, cls):
+ ## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::NameChecker::NameChecker() [constructor]
+ cls.add_constructor([])
+ ## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::NameChecker::NameChecker(ns3::ndn::NameChecker const & arg0) [copy constructor]
+ cls.add_constructor([param('ns3::ndn::NameChecker const &', 'arg0')])
+ return
+
+def register_Ns3NdnNameComponents_methods(root_module, cls):
## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::NameComponents::NameComponents(ns3::ndn::NameComponents const & arg0) [copy constructor]
cls.add_constructor([param('ns3::ndn::NameComponents const &', 'arg0')])
## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::NameComponents::NameComponents() [constructor]
cls.add_constructor([])
- ## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::NameComponents::NameComponents(std::list<boost::reference_wrapper<const std::basic_string<char, std::char_traits<char>, std::allocator<char> > >,std::allocator<boost::reference_wrapper<const std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const & components) [constructor]
+ ## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::NameComponents::NameComponents(std::list<boost::reference_wrapper<std::string const>, std::allocator<boost::reference_wrapper<std::string const> > > const & components) [constructor]
cls.add_constructor([param('std::list< boost::reference_wrapper< std::string const > > const &', 'components')])
## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::NameComponents::NameComponents(std::string const & prefix) [constructor]
cls.add_constructor([param('std::string const &', 'prefix')])
## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::NameComponents::NameComponents(char const * prefix) [constructor]
cls.add_constructor([param('char const *', 'prefix')])
- ## ndn-name-components.h (module 'ndnSIM'): uint32_t ns3::ndn::NameComponents::Deserialize(ns3::Buffer::Iterator start) [member function]
- cls.add_method('Deserialize',
- 'uint32_t',
- [param('ns3::Buffer::Iterator', 'start')])
- ## ndn-name-components.h (module 'ndnSIM'): std::list<std::string, std::allocator<std::string> > const & ns3::ndn::NameComponents::GetComponents() const [member function]
- cls.add_method('GetComponents',
- 'std::list< std::string > const &',
- [],
- is_const=True)
- ## ndn-name-components.h (module 'ndnSIM'): std::string ns3::ndn::NameComponents::GetLastComponent() const [member function]
- cls.add_method('GetLastComponent',
- 'std::string',
- [],
- is_const=True)
- ## ndn-name-components.h (module 'ndnSIM'): size_t ns3::ndn::NameComponents::GetSerializedSize() const [member function]
- cls.add_method('GetSerializedSize',
- 'size_t',
- [],
- is_const=True)
- ## ndn-name-components.h (module 'ndnSIM'): std::list<boost::reference_wrapper<const std::basic_string<char, std::char_traits<char>, std::allocator<char> > >,std::allocator<boost::reference_wrapper<const std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > ns3::ndn::NameComponents::GetSubComponents(size_t num) const [member function]
- cls.add_method('GetSubComponents',
- 'std::list< boost::reference_wrapper< std::string const > >',
- [param('size_t', 'num')],
- is_const=True)
- ## ndn-name-components.h (module 'ndnSIM'): void ns3::ndn::NameComponents::Print(std::ostream & os) const [member function]
- cls.add_method('Print',
- 'void',
- [param('std::ostream &', 'os')],
- is_const=True)
- ## ndn-name-components.h (module 'ndnSIM'): uint32_t ns3::ndn::NameComponents::Serialize(ns3::Buffer::Iterator start) const [member function]
- cls.add_method('Serialize',
- 'uint32_t',
- [param('ns3::Buffer::Iterator', 'start')],
- is_const=True)
- ## ndn-name-components.h (module 'ndnSIM'): std::_List_iterator<std::string> ns3::ndn::NameComponents::begin() [member function]
- cls.add_method('begin',
- 'std::_List_iterator< std::string >',
- [])
- ## ndn-name-components.h (module 'ndnSIM'): std::_List_const_iterator<std::string> ns3::ndn::NameComponents::begin() const [member function]
- cls.add_method('begin',
- 'std::_List_const_iterator< std::string >',
- [],
- is_const=True)
- ## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::NameComponents ns3::ndn::NameComponents::cut(size_t minusComponents) const [member function]
- cls.add_method('cut',
- 'ns3::ndn::NameComponents',
- [param('size_t', 'minusComponents')],
- is_const=True)
- ## ndn-name-components.h (module 'ndnSIM'): std::_List_iterator<std::string> ns3::ndn::NameComponents::end() [member function]
- cls.add_method('end',
- 'std::_List_iterator< std::string >',
- [])
- ## ndn-name-components.h (module 'ndnSIM'): std::_List_const_iterator<std::string> ns3::ndn::NameComponents::end() const [member function]
- cls.add_method('end',
- 'std::_List_const_iterator< std::string >',
- [],
- is_const=True)
- ## ndn-name-components.h (module 'ndnSIM'): size_t ns3::ndn::NameComponents::size() const [member function]
- cls.add_method('size',
- 'size_t',
- [],
- is_const=True)
return
def register_Ns3NdnNameComponentsChecker_methods(root_module, cls):
@@ -5577,6 +5629,39 @@
[param('ns3::ndn::NameComponents const &', 'value')])
return
+def register_Ns3NdnNameValue_methods(root_module, cls):
+ ## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::NameValue::NameValue() [constructor]
+ cls.add_constructor([])
+ ## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::NameValue::NameValue(ns3::ndn::NameValue const & arg0) [copy constructor]
+ cls.add_constructor([param('ns3::ndn::NameValue const &', 'arg0')])
+ ## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::NameValue::NameValue(ns3::ndn::Name const & value) [constructor]
+ cls.add_constructor([param('ns3::ndn::Name const &', 'value')])
+ ## ndn-name-components.h (module 'ndnSIM'): ns3::Ptr<ns3::AttributeValue> ns3::ndn::NameValue::Copy() const [member function]
+ cls.add_method('Copy',
+ 'ns3::Ptr< ns3::AttributeValue >',
+ [],
+ is_const=True, is_virtual=True)
+ ## ndn-name-components.h (module 'ndnSIM'): bool ns3::ndn::NameValue::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)
+ ## ndn-name-components.h (module 'ndnSIM'): ns3::ndn::Name ns3::ndn::NameValue::Get() const [member function]
+ cls.add_method('Get',
+ 'ns3::ndn::Name',
+ [],
+ is_const=True)
+ ## ndn-name-components.h (module 'ndnSIM'): std::string ns3::ndn::NameValue::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)
+ ## ndn-name-components.h (module 'ndnSIM'): void ns3::ndn::NameValue::Set(ns3::ndn::Name const & value) [member function]
+ cls.add_method('Set',
+ 'void',
+ [param('ns3::ndn::Name const &', 'value')])
+ return
+
def register_Ns3NdnNetDeviceFace_methods(root_module, cls):
## ndn-net-device-face.h (module 'ndnSIM'): static ns3::TypeId ns3::ndn::NetDeviceFace::GetTypeId() [member function]
cls.add_method('GetTypeId',
@@ -5835,6 +5920,10 @@
cls.add_method('RemoveFace',
'void',
[param('ns3::Ptr< ns3::ndn::Face > const &', 'face')])
+ ## ndn-fib-entry.h (module 'ndnSIM'): void ns3::ndn::fib::Entry::SetRealDelayToProducer(ns3::Ptr<ns3::ndn::Face> face, ns3::Time delay) [member function]
+ cls.add_method('SetRealDelayToProducer',
+ 'void',
+ [param('ns3::Ptr< ns3::ndn::Face >', 'face'), param('ns3::Time', 'delay')])
## ndn-fib-entry.h (module 'ndnSIM'): void ns3::ndn::fib::Entry::UpdateFaceRtt(ns3::Ptr<ns3::ndn::Face> face, ns3::Time const & sample) [member function]
cls.add_method('UpdateFaceRtt',
'void',
@@ -5876,6 +5965,8 @@
[param('ns3::Time const &', 'rttSample')])
## ndn-fib-entry.h (module 'ndnSIM'): ns3::ndn::fib::FaceMetric::m_face [variable]
cls.add_instance_attribute('m_face', 'ns3::Ptr< ns3::ndn::Face >', is_const=False)
+ ## ndn-fib-entry.h (module 'ndnSIM'): ns3::ndn::fib::FaceMetric::m_realDelay [variable]
+ cls.add_instance_attribute('m_realDelay', 'ns3::Time', is_const=False)
## ndn-fib-entry.h (module 'ndnSIM'): ns3::ndn::fib::FaceMetric::m_routingCost [variable]
cls.add_instance_attribute('m_routingCost', 'int32_t', is_const=False)
## ndn-fib-entry.h (module 'ndnSIM'): ns3::ndn::fib::FaceMetric::m_rttVar [variable]
@@ -6108,6 +6199,10 @@
return
def register_functions_ns3_ndn(module, root_module):
+ ## ndn-name-components.h (module 'ndnSIM'): extern ns3::Ptr<ns3::AttributeChecker const> ns3::ndn::MakeNameChecker() [free function]
+ module.add_function('MakeNameChecker',
+ 'ns3::Ptr< ns3::AttributeChecker const >',
+ [])
## ndn-name-components.h (module 'ndnSIM'): extern ns3::Ptr<ns3::AttributeChecker const> ns3::ndn::MakeNameComponentsChecker() [free function]
module.add_function('MakeNameComponentsChecker',
'ns3::Ptr< ns3::AttributeChecker const >',
diff --git a/model/ndn-name-components.h b/model/ndn-name-components.h
index c2076d1..04915df 100644
--- a/model/ndn-name-components.h
+++ b/model/ndn-name-components.h
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
/*
- * Copyright (c) 2011 University of California, Los Angeles
+ * Copyright (c) 2013 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
@@ -16,295 +16,13 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
- * Ilya Moiseenko <iliamo@cs.ucla.edu>
*/
-#ifndef _NDN_NAME_COMPONENTS_H_
-#define _NDN_NAME_COMPONENTS_H_
+#ifndef NDN_NAME_COMPONENTS_H
+#define NDN_NAME_COMPONENTS_H
-#include "ns3/simple-ref-count.h"
-#include "ns3/attribute.h"
-#include "ns3/attribute-helper.h"
+// #warning ndn-name-components.h is now deprecated header. Please include ndn-name.h instead
-#include <string>
-#include <algorithm>
-#include <list>
-#include "ns3/object.h"
-#include "ns3/buffer.h"
+#include "ndn-name.h"
-#include <boost/ref.hpp>
-
-namespace ns3 {
-namespace ndn {
-
-/**
- * \ingroup ndn
- * \brief Hierarchical NDN name
- * A Name element represents a hierarchical name for Ndn content.
- * It simply contains a sequence of Component elements.
- * Each Component element contains a sequence of zero or more bytes.
- * There are no restrictions on what byte sequences may be used.
- * The Name element in an Interest is often referred to with the term name prefix or simply prefix.
- */
-class NameComponents : public SimpleRefCount<NameComponents>
-{
-public:
- typedef std::list<std::string>::iterator iterator;
- typedef std::list<std::string>::const_iterator const_iterator;
-
- /**
- * \brief Constructor
- * Creates a prefix with zero components (can be looked as root "/")
- */
- NameComponents ();
-
- /**
- * \brief Constructor
- * Creates a prefix from a list of strings where every string represents a prefix component
- * @param[in] components A list of strings
- */
- NameComponents (const std::list<boost::reference_wrapper<const std::string> > &components);
-
- /**
- * @brief Constructor
- * Creates a prefix from the string (string is parsed using operator>>)
- * @param[in] prefix A string representation of a prefix
- */
- NameComponents (const std::string &prefix);
-
- /**
- * @brief Constructor
- * Creates a prefix from the string (string is parsed using operator>>)
- * @param[in] prefix A string representation of a prefix
- */
- NameComponents (const char *prefix);
-
- /**
- * \brief Generic Add method
- * Appends object of type T to the list of components
- * @param[in] value The object to be appended
- */
- template<class T>
- inline void
- Add (const T &value);
-
- /**
- * \brief Generic constructor operator
- * The object of type T will be appended to the list of components
- */
- template<class T>
- inline NameComponents&
- operator () (const T &value);
-
- /**
- * \brief Get a name
- * Returns a list of components (strings)
- */
- const std::list<std::string> &
- GetComponents () const;
-
- /**
- * @brief Helper call to get the last component of the name
- */
- std::string
- GetLastComponent () const;
-
- /**
- * \brief Get subcomponents of the name, starting with first component
- * @param[in] num Number of components to return. Valid value is in range [1, GetComponents ().size ()]
- */
- std::list<boost::reference_wrapper<const std::string> >
- GetSubComponents (size_t num) const;
-
- /**
- * @brief Get prefix of the name, containing less minusComponents right components
- */
- NameComponents
- cut (size_t minusComponents) const;
-
- /**
- * \brief Print name
- * @param[in] os Stream to print
- */
- void Print (std::ostream &os) const;
-
- /**
- * @brief Get serialized size for ndnSIM packet encoding
- */
- size_t
- GetSerializedSize () const;
-
- /**
- * @brief Serialize Name in ndnSIM packet encoding
- * @param[in] start buffer to contain serialized name
- */
- uint32_t
- Serialize (Buffer::Iterator start) const;
-
- /**
- * \brief Deserialize Name in ndnSIM packet encoding
- * @param[in] start buffer that contains serialized name
- */
- uint32_t
- Deserialize (Buffer::Iterator start);
-
- /**
- * \brief Returns the size of NameComponents
- */
- inline size_t
- size () const;
-
- /**
- * @brief Get read-write begin() iterator
- */
- inline iterator
- begin ();
-
- /**
- * @brief Get read-only begin() iterator
- */
- inline const_iterator
- begin () const;
-
- /**
- * @brief Get read-write end() iterator
- */
- inline iterator
- end ();
-
- /**
- * @brief Get read-only end() iterator
- */
- inline const_iterator
- end () const;
-
- /**
- * \brief Equality operator for NameComponents
- */
- inline bool
- operator== (const NameComponents &prefix) const;
-
- /**
- * \brief Less than operator for NameComponents
- */
- inline bool
- operator< (const NameComponents &prefix) const;
-
- typedef std::string partial_type;
-
-private:
- std::list<std::string> m_prefix; ///< \brief a list of strings (components)
-};
-
-/**
- * \brief Print out name components separated by slashes, e.g., /first/second/third
- */
-std::ostream &
-operator << (std::ostream &os, const NameComponents &components);
-
-/**
- * \brief Read components from input and add them to components. Will read input stream till eof
- * Substrings separated by slashes will become separate components
- */
-std::istream &
-operator >> (std::istream &is, NameComponents &components);
-
-/**
- * \brief Returns the size of NameComponents object
- */
-size_t
-NameComponents::size () const
-{
- return m_prefix.size ();
-}
-
-NameComponents::iterator
-NameComponents::begin ()
-{
- return m_prefix.begin ();
-}
-
-/**
- * @brief Get read-only begin() iterator
- */
-NameComponents::const_iterator
-NameComponents::begin () const
-{
- return m_prefix.begin ();
-}
-
-/**
- * @brief Get read-write end() iterator
- */
-NameComponents::iterator
-NameComponents::end ()
-{
- return m_prefix.end ();
-}
-
-/**
- * @brief Get read-only end() iterator
- */
-NameComponents::const_iterator
-NameComponents::end () const
-{
- return m_prefix.end ();
-}
-
-
-/**
- * \brief Generic constructor operator
- * The object of type T will be appended to the list of components
- */
-template<class T>
-NameComponents&
-NameComponents::operator () (const T &value)
-{
- Add (value);
- return *this;
-}
-
-/**
- * \brief Generic Add method
- * Appends object of type T to the list of components
- * @param[in] value The object to be appended
- */
-template<class T>
-void
-NameComponents::Add (const T &value)
-{
- std::ostringstream os;
- os << value;
- m_prefix.push_back (os.str ());
-}
-
-/**
- * \brief Equality operator for NameComponents
- */
-bool
-NameComponents::operator== (const NameComponents &prefix) const
-{
- if (m_prefix.size () != prefix.m_prefix.size ())
- return false;
-
- return std::equal (m_prefix.begin (), m_prefix.end (), prefix.m_prefix.begin ());
-}
-
-/**
- * \brief Less than operator for NameComponents
- */
-bool
-NameComponents::operator< (const NameComponents &prefix) const
-{
- return std::lexicographical_compare (m_prefix.begin (), m_prefix.end (),
- prefix.m_prefix.begin (), prefix.m_prefix.end ());
-}
-
-
-ATTRIBUTE_HELPER_HEADER (NameComponents);
-
-} // namespace ndn
-} // namespace ns3
-
-#endif // _NDN_NAME_COMPONENTS_H_
-
+#endif // NDN_NAME_COMPONENTS_H
diff --git a/model/ndn-name-components.cc b/model/ndn-name.cc
similarity index 81%
rename from model/ndn-name-components.cc
rename to model/ndn-name.cc
index 4a7965d..8e7a872 100644
--- a/model/ndn-name-components.cc
+++ b/model/ndn-name.cc
@@ -27,18 +27,19 @@
using namespace std;
-NS_LOG_COMPONENT_DEFINE ("ndn.NameComponents");
+NS_LOG_COMPONENT_DEFINE ("ndn.Name");
namespace ns3 {
namespace ndn {
+ATTRIBUTE_HELPER_CPP (Name);
ATTRIBUTE_HELPER_CPP (NameComponents);
-NameComponents::NameComponents (/* root */)
+Name::Name (/* root */)
{
}
-NameComponents::NameComponents (const std::list<boost::reference_wrapper<const std::string> > &components)
+Name::Name (const std::list<boost::reference_wrapper<const std::string> > &components)
{
BOOST_FOREACH (const boost::reference_wrapper<const std::string> &component, components)
{
@@ -46,28 +47,28 @@
}
}
-NameComponents::NameComponents (const std::string &prefix)
+Name::Name (const std::string &prefix)
{
istringstream is (prefix);
is >> *this;
}
-NameComponents::NameComponents (const char *prefix)
+Name::Name (const char *prefix)
{
NS_ASSERT (prefix != 0);
-
+
istringstream is (prefix);
is >> *this;
}
const std::list<std::string> &
-NameComponents::GetComponents () const
+Name::GetComponents () const
{
return m_prefix;
}
std::string
-NameComponents::GetLastComponent () const
+Name::GetLastComponent () const
{
if (m_prefix.size () == 0)
{
@@ -78,25 +79,25 @@
}
std::list<boost::reference_wrapper<const std::string> >
-NameComponents::GetSubComponents (size_t num) const
+Name::GetSubComponents (size_t num) const
{
NS_ASSERT_MSG (0<=num && num<=m_prefix.size (), "Invalid number of subcomponents requested");
-
+
std::list<boost::reference_wrapper<const std::string> > subComponents;
std::list<std::string>::const_iterator component = m_prefix.begin();
for (size_t i=0; i<num; i++, component++)
{
subComponents.push_back (boost::ref (*component));
}
-
+
return subComponents;
}
-NameComponents
-NameComponents::cut (size_t minusComponents) const
+Name
+Name::cut (size_t minusComponents) const
{
- NameComponents retval;
- std::list<std::string>::const_iterator component = m_prefix.begin ();
+ Name retval;
+ std::list<std::string>::const_iterator component = m_prefix.begin ();
for (uint32_t i = 0; i < m_prefix.size () - minusComponents; i++, component++)
{
retval.Add (*component);
@@ -106,10 +107,10 @@
}
size_t
-NameComponents::GetSerializedSize () const
+Name::GetSerializedSize () const
{
size_t nameSerializedSize = 2;
-
+
for (std::list<std::string>::const_iterator i = this->begin ();
i != this->end ();
i++)
@@ -122,7 +123,7 @@
}
uint32_t
-NameComponents::Serialize (Buffer::Iterator start) const
+Name::Serialize (Buffer::Iterator start) const
{
Buffer::Iterator i = start;
@@ -138,12 +139,12 @@
return i.GetDistanceFrom (start);
}
-
+
uint32_t
-NameComponents::Deserialize (Buffer::Iterator start)
+Name::Deserialize (Buffer::Iterator start)
{
Buffer::Iterator i = start;
-
+
uint16_t nameLength = i.ReadU16 ();
while (nameLength > 0)
{
@@ -160,7 +161,7 @@
}
void
-NameComponents::Print (std::ostream &os) const
+Name::Print (std::ostream &os) const
{
for (const_iterator i=m_prefix.begin(); i!=m_prefix.end(); i++)
{
@@ -168,19 +169,19 @@
}
if (m_prefix.size ()==0) os << "/";
}
-
+
std::ostream &
-operator << (std::ostream &os, const NameComponents &components)
+operator << (std::ostream &os, const Name &components)
{
components.Print (os);
return os;
}
std::istream &
-operator >> (std::istream &is, NameComponents &components)
+operator >> (std::istream &is, Name &components)
{
istream_iterator<char> eos; // end of stream
-
+
std::string component = "";
istream_iterator<char> it (is);
for (; it != eos; it++)
@@ -197,9 +198,9 @@
if (component != "")
components.Add (component);
- is.clear ();
+ is.clear ();
// NS_LOG_ERROR (components << ", bad: " << is.bad () <<", fail: " << is.fail ());
-
+
return is;
}
diff --git a/model/ndn-name.h b/model/ndn-name.h
new file mode 100644
index 0000000..7f24784
--- /dev/null
+++ b/model/ndn-name.h
@@ -0,0 +1,327 @@
+/* -*- 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: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
+ * Ilya Moiseenko <iliamo@cs.ucla.edu>
+ */
+
+#ifndef _NDN_NAME_H_
+#define _NDN_NAME_H_
+
+#include "ns3/simple-ref-count.h"
+#include "ns3/attribute.h"
+#include "ns3/attribute-helper.h"
+
+#include <string>
+#include <algorithm>
+#include <list>
+#include "ns3/object.h"
+#include "ns3/buffer.h"
+
+#include <boost/ref.hpp>
+
+namespace ns3 {
+namespace ndn {
+
+/**
+ * \ingroup ndn
+ * \brief Hierarchical NDN name
+ * A Name element represents a hierarchical name for Ndn content.
+ * It simply contains a sequence of Component elements.
+ * Each Component element contains a sequence of zero or more bytes.
+ * There are no restrictions on what byte sequences may be used.
+ * The Name element in an Interest is often referred to with the term name prefix or simply prefix.
+ */
+class Name : public SimpleRefCount<Name>
+{
+public:
+ typedef std::list<std::string>::iterator iterator;
+ typedef std::list<std::string>::const_iterator const_iterator;
+
+ /**
+ * \brief Constructor
+ * Creates a prefix with zero components (can be looked as root "/")
+ */
+ Name ();
+
+ /**
+ * \brief Constructor
+ * Creates a prefix from a list of strings where every string represents a prefix component
+ * @param[in] components A list of strings
+ */
+ Name (const std::list<boost::reference_wrapper<const std::string> > &components);
+
+ /**
+ * @brief Constructor
+ * Creates a prefix from the string (string is parsed using operator>>)
+ * @param[in] prefix A string representation of a prefix
+ */
+ Name (const std::string &prefix);
+
+ /**
+ * @brief Constructor
+ * Creates a prefix from the string (string is parsed using operator>>)
+ * @param[in] prefix A string representation of a prefix
+ */
+ Name (const char *prefix);
+
+ /**
+ * \brief Generic Add method
+ * Appends object of type T to the list of components
+ * @param[in] value The object to be appended
+ */
+ template<class T>
+ inline void
+ Add (const T &value);
+
+ /**
+ * \brief Generic constructor operator
+ * The object of type T will be appended to the list of components
+ */
+ template<class T>
+ inline Name&
+ operator () (const T &value);
+
+ /**
+ * \brief Get a name
+ * Returns a list of components (strings)
+ */
+ const std::list<std::string> &
+ GetComponents () const;
+
+ /**
+ * @brief Helper call to get the last component of the name
+ */
+ std::string
+ GetLastComponent () const;
+
+ /**
+ * \brief Get subcomponents of the name, starting with first component
+ * @param[in] num Number of components to return. Valid value is in range [1, GetComponents ().size ()]
+ */
+ std::list<boost::reference_wrapper<const std::string> >
+ GetSubComponents (size_t num) const;
+
+ /**
+ * @brief Get prefix of the name, containing less minusComponents right components
+ */
+ Name
+ cut (size_t minusComponents) const;
+
+ /**
+ * \brief Print name
+ * @param[in] os Stream to print
+ */
+ void Print (std::ostream &os) const;
+
+ /**
+ * @brief Get serialized size for ndnSIM packet encoding
+ */
+ size_t
+ GetSerializedSize () const;
+
+ /**
+ * @brief Serialize Name in ndnSIM packet encoding
+ * @param[in] start buffer to contain serialized name
+ */
+ uint32_t
+ Serialize (Buffer::Iterator start) const;
+
+ /**
+ * \brief Deserialize Name in ndnSIM packet encoding
+ * @param[in] start buffer that contains serialized name
+ */
+ uint32_t
+ Deserialize (Buffer::Iterator start);
+
+ /**
+ * \brief Returns the size of Name
+ */
+ inline size_t
+ size () const;
+
+ /**
+ * @brief Get read-write begin() iterator
+ */
+ inline iterator
+ begin ();
+
+ /**
+ * @brief Get read-only begin() iterator
+ */
+ inline const_iterator
+ begin () const;
+
+ /**
+ * @brief Get read-write end() iterator
+ */
+ inline iterator
+ end ();
+
+ /**
+ * @brief Get read-only end() iterator
+ */
+ inline const_iterator
+ end () const;
+
+ /**
+ * \brief Equality operator for Name
+ */
+ inline bool
+ operator== (const Name &prefix) const;
+
+ /**
+ * \brief Less than operator for Name
+ */
+ inline bool
+ operator< (const Name &prefix) const;
+
+ typedef std::string partial_type;
+
+private:
+ std::list<std::string> m_prefix; ///< \brief a list of strings (components)
+};
+
+/**
+ * \brief Print out name components separated by slashes, e.g., /first/second/third
+ */
+std::ostream &
+operator << (std::ostream &os, const Name &components);
+
+/**
+ * \brief Read components from input and add them to components. Will read input stream till eof
+ * Substrings separated by slashes will become separate components
+ */
+std::istream &
+operator >> (std::istream &is, Name &components);
+
+/**
+ * \brief Returns the size of Name object
+ */
+size_t
+Name::size () const
+{
+ return m_prefix.size ();
+}
+
+Name::iterator
+Name::begin ()
+{
+ return m_prefix.begin ();
+}
+
+/**
+ * @brief Get read-only begin() iterator
+ */
+Name::const_iterator
+Name::begin () const
+{
+ return m_prefix.begin ();
+}
+
+/**
+ * @brief Get read-write end() iterator
+ */
+Name::iterator
+Name::end ()
+{
+ return m_prefix.end ();
+}
+
+/**
+ * @brief Get read-only end() iterator
+ */
+Name::const_iterator
+Name::end () const
+{
+ return m_prefix.end ();
+}
+
+
+/**
+ * \brief Generic constructor operator
+ * The object of type T will be appended to the list of components
+ */
+template<class T>
+Name&
+Name::operator () (const T &value)
+{
+ Add (value);
+ return *this;
+}
+
+/**
+ * \brief Generic Add method
+ * Appends object of type T to the list of components
+ * @param[in] value The object to be appended
+ */
+template<class T>
+void
+Name::Add (const T &value)
+{
+ std::ostringstream os;
+ os << value;
+ m_prefix.push_back (os.str ());
+}
+
+/**
+ * \brief Equality operator for Name
+ */
+bool
+Name::operator== (const Name &prefix) const
+{
+ if (m_prefix.size () != prefix.m_prefix.size ())
+ return false;
+
+ return std::equal (m_prefix.begin (), m_prefix.end (), prefix.m_prefix.begin ());
+}
+
+/**
+ * \brief Less than operator for Name
+ */
+bool
+Name::operator< (const Name &prefix) const
+{
+ return std::lexicographical_compare (m_prefix.begin (), m_prefix.end (),
+ prefix.m_prefix.begin (), prefix.m_prefix.end ());
+}
+
+ATTRIBUTE_HELPER_HEADER (Name);
+
+/**
+ * @ingroup Ndn
+ * @brief For backwards compatibility
+ */
+class NameComponents : public Name
+{
+public:
+ NameComponents () : Name () { }
+
+ NameComponents (const std::list<boost::reference_wrapper<const std::string> > &components) : Name (components) { }
+
+ NameComponents (const std::string &prefix) : Name (prefix) { }
+
+ NameComponents (const char *prefix) : Name (prefix) { }
+};
+
+ATTRIBUTE_HELPER_HEADER (NameComponents);
+
+} // namespace ndn
+} // namespace ns3
+
+#endif // _NDN_NAME_H_
+
diff --git a/wscript b/wscript
index 2460084..ae00638 100644
--- a/wscript
+++ b/wscript
@@ -111,6 +111,7 @@
"model/ndn-interest.h",
"model/ndn-content-object.h",
"model/ndn-name-components.h",
+ "model/ndn-name.h",
"model/cs/ndn-content-store.h",