Replacing boost::multi_index to std::set for OutgoingFaces in PIT entry
diff --git a/bindings/modulegen__gcc_ILP32.py b/bindings/modulegen__gcc_ILP32.py
index c0a2ee1..c950b42 100644
--- a/bindings/modulegen__gcc_ILP32.py
+++ b/bindings/modulegen__gcc_ILP32.py
@@ -302,6 +302,7 @@
module.add_class('UnknownHeaderException')
## ndn-app-face.h (module 'ndnSIM'): ns3::ndn::AppFace [class]
module.add_class('AppFace', parent=root_module['ns3::ndn::Face'])
+ module.add_container('std::vector< ns3::Ptr< ns3::ndn::Face > >', 'ns3::Ptr< ns3::ndn::Face >', container_type='vector')
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')
@@ -358,13 +359,12 @@
module.add_class('IncomingFace')
## ndn-pit-entry-outgoing-face.h (module 'ndnSIM'): ns3::ndn::pit::OutgoingFace [struct]
module.add_class('OutgoingFace')
- ## ndn-pit-entry.h (module 'ndnSIM'): ns3::ndn::pit::OutgoingFaceContainer [struct]
- module.add_class('OutgoingFaceContainer')
## ndn-pit-entry.h (module 'ndnSIM'): ns3::ndn::pit::i_face [class]
module.add_class('i_face')
## ndn-pit-entry.h (module 'ndnSIM'): ns3::ndn::pit::i_retx [class]
module.add_class('i_retx')
module.add_container('std::set< ns3::ndn::pit::IncomingFace >', 'ns3::ndn::pit::IncomingFace', container_type='set')
+ module.add_container('std::set< ns3::ndn::pit::OutgoingFace >', 'ns3::ndn::pit::OutgoingFace', container_type='set')
module.add_container('std::set< unsigned int >', 'unsigned int', container_type='set')
def register_methods(root_module):
@@ -494,7 +494,6 @@
register_Ns3NdnPitEntry_methods(root_module, root_module['ns3::ndn::pit::Entry'])
register_Ns3NdnPitIncomingFace_methods(root_module, root_module['ns3::ndn::pit::IncomingFace'])
register_Ns3NdnPitOutgoingFace_methods(root_module, root_module['ns3::ndn::pit::OutgoingFace'])
- register_Ns3NdnPitOutgoingFaceContainer_methods(root_module, root_module['ns3::ndn::pit::OutgoingFaceContainer'])
register_Ns3NdnPitI_face_methods(root_module, root_module['ns3::ndn::pit::i_face'])
register_Ns3NdnPitI_retx_methods(root_module, root_module['ns3::ndn::pit::i_retx'])
return
@@ -4649,6 +4648,11 @@
'ns3::Ptr< ns3::ndn::Face >',
[param('uint32_t', 'face')],
is_const=True, is_virtual=True)
+ ## ndn-l3-protocol.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::Face> ns3::ndn::L3Protocol::GetFaceById(uint32_t face) const [member function]
+ cls.add_method('GetFaceById',
+ 'ns3::Ptr< ns3::ndn::Face >',
+ [param('uint32_t', 'face')],
+ is_const=True, is_virtual=True)
## ndn-l3-protocol.h (module 'ndnSIM'): void ns3::ndn::L3Protocol::RemoveFace(ns3::Ptr<ns3::ndn::Face> face) [member function]
cls.add_method('RemoveFace',
'void',
@@ -4659,6 +4663,16 @@
'ns3::Ptr< ns3::ndn::Face >',
[param('ns3::Ptr< ns3::NetDevice >', 'netDevice')],
is_const=True, is_virtual=True)
+ ## ndn-l3-protocol.h (module 'ndnSIM'): static uint64_t ns3::ndn::L3Protocol::GetInterestCounter() [member function]
+ cls.add_method('GetInterestCounter',
+ 'uint64_t',
+ [],
+ is_static=True)
+ ## ndn-l3-protocol.h (module 'ndnSIM'): static uint64_t ns3::ndn::L3Protocol::GetDataCounter() [member function]
+ cls.add_method('GetDataCounter',
+ 'uint64_t',
+ [],
+ is_static=True)
## ndn-l3-protocol.h (module 'ndnSIM'): void ns3::ndn::L3Protocol::DoDispose() [member function]
cls.add_method('DoDispose',
'void',
@@ -5113,9 +5127,9 @@
'std::_Rb_tree_const_iterator< ns3::ndn::pit::IncomingFace >',
[param('ns3::Ptr< ns3::ndn::Face >', 'face')],
is_virtual=True)
- ## ndn-pit-entry.h (module 'ndnSIM'): boost::multi_index::detail::bidir_node_iterator<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::index_node_base<ns3::ndn::pit::OutgoingFace, std::allocator<ns3::ndn::pit::OutgoingFace> > > > > ns3::ndn::pit::Entry::AddOutgoing(ns3::Ptr<ns3::ndn::Face> face) [member function]
+ ## ndn-pit-entry.h (module 'ndnSIM'): std::_Rb_tree_const_iterator<ns3::ndn::pit::OutgoingFace> ns3::ndn::pit::Entry::AddOutgoing(ns3::Ptr<ns3::ndn::Face> face) [member function]
cls.add_method('AddOutgoing',
- 'boost::multi_index::detail::bidir_node_iterator< boost::multi_index::detail::ordered_index_node< boost::multi_index::detail::ordered_index_node< boost::multi_index::detail::index_node_base< ns3::ndn::pit::OutgoingFace, std::allocator< ns3::ndn::pit::OutgoingFace > > > > >',
+ 'std::_Rb_tree_const_iterator< ns3::ndn::pit::OutgoingFace >',
[param('ns3::Ptr< ns3::ndn::Face >', 'face')],
is_virtual=True)
## ndn-pit-entry.h (module 'ndnSIM'): void ns3::ndn::pit::Entry::AddSeenNonce(uint32_t nonce) [member function]
@@ -5162,9 +5176,9 @@
'uint32_t',
[],
is_const=True)
- ## ndn-pit-entry.h (module 'ndnSIM'): boost::multi_index::multi_index_container<ns3::ndn::pit::OutgoingFace, boost::multi_index::indexed_by<boost::multi_index::ordered_unique<boost::multi_index::tag<ns3::ndn::pit::i_face, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::multi_index::member<ns3::ndn::pit::OutgoingFace, ns3::Ptr<ns3::ndn::Face>, &(ns3::ndn::pit::OutgoingFace::m_face)>, mpl_::na>, boost::multi_index::ordered_non_unique<boost::multi_index::tag<ns3::ndn::pit::i_retx, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::multi_index::member<ns3::ndn::pit::OutgoingFace, unsigned int, &(ns3::ndn::pit::OutgoingFace::m_retxCount)>, mpl_::na>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, std::allocator<ns3::ndn::pit::OutgoingFace> > const & ns3::ndn::pit::Entry::GetOutgoing() const [member function]
+ ## ndn-pit-entry.h (module 'ndnSIM'): std::set<ns3::ndn::pit::OutgoingFace, std::less<ns3::ndn::pit::OutgoingFace>, std::allocator<ns3::ndn::pit::OutgoingFace> > const & ns3::ndn::pit::Entry::GetOutgoing() const [member function]
cls.add_method('GetOutgoing',
- 'boost::multi_index::multi_index_container< ns3::ndn::pit::OutgoingFace, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::tag< ns3::ndn::pit::i_face, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na >, boost::multi_index::member< ns3::ndn::pit::OutgoingFace, ns3::Ptr< ns3::ndn::Face >, & ( ns3::ndn::pit::OutgoingFace::m_face ) >, mpl_::na >, boost::multi_index::ordered_non_unique< boost::multi_index::tag< ns3::ndn::pit::i_retx, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na >, boost::multi_index::member< ns3::ndn::pit::OutgoingFace, unsigned int, & ( ns3::ndn::pit::OutgoingFace::m_retxCount ) >, mpl_::na >, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na >, std::allocator< ns3::ndn::pit::OutgoingFace > > const &',
+ 'std::set< ns3::ndn::pit::OutgoingFace > const &',
[],
is_const=True)
## ndn-pit-entry.h (module 'ndnSIM'): ns3::ndn::NameComponents const & ns3::ndn::pit::Entry::GetPrefix() const [member function]
@@ -5240,13 +5254,6 @@
cls.add_instance_attribute('m_waitingInVain', 'bool', is_const=False)
return
-def register_Ns3NdnPitOutgoingFaceContainer_methods(root_module, cls):
- ## ndn-pit-entry.h (module 'ndnSIM'): ns3::ndn::pit::OutgoingFaceContainer::OutgoingFaceContainer() [constructor]
- cls.add_constructor([])
- ## ndn-pit-entry.h (module 'ndnSIM'): ns3::ndn::pit::OutgoingFaceContainer::OutgoingFaceContainer(ns3::ndn::pit::OutgoingFaceContainer const & arg0) [copy constructor]
- cls.add_constructor([param('ns3::ndn::pit::OutgoingFaceContainer const &', 'arg0')])
- return
-
def register_Ns3NdnPitI_face_methods(root_module, cls):
## ndn-pit-entry.h (module 'ndnSIM'): ns3::ndn::pit::i_face::i_face() [constructor]
cls.add_constructor([])
diff --git a/bindings/modulegen__gcc_LP64.py b/bindings/modulegen__gcc_LP64.py
index c0a2ee1..c950b42 100644
--- a/bindings/modulegen__gcc_LP64.py
+++ b/bindings/modulegen__gcc_LP64.py
@@ -302,6 +302,7 @@
module.add_class('UnknownHeaderException')
## ndn-app-face.h (module 'ndnSIM'): ns3::ndn::AppFace [class]
module.add_class('AppFace', parent=root_module['ns3::ndn::Face'])
+ module.add_container('std::vector< ns3::Ptr< ns3::ndn::Face > >', 'ns3::Ptr< ns3::ndn::Face >', container_type='vector')
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')
@@ -358,13 +359,12 @@
module.add_class('IncomingFace')
## ndn-pit-entry-outgoing-face.h (module 'ndnSIM'): ns3::ndn::pit::OutgoingFace [struct]
module.add_class('OutgoingFace')
- ## ndn-pit-entry.h (module 'ndnSIM'): ns3::ndn::pit::OutgoingFaceContainer [struct]
- module.add_class('OutgoingFaceContainer')
## ndn-pit-entry.h (module 'ndnSIM'): ns3::ndn::pit::i_face [class]
module.add_class('i_face')
## ndn-pit-entry.h (module 'ndnSIM'): ns3::ndn::pit::i_retx [class]
module.add_class('i_retx')
module.add_container('std::set< ns3::ndn::pit::IncomingFace >', 'ns3::ndn::pit::IncomingFace', container_type='set')
+ module.add_container('std::set< ns3::ndn::pit::OutgoingFace >', 'ns3::ndn::pit::OutgoingFace', container_type='set')
module.add_container('std::set< unsigned int >', 'unsigned int', container_type='set')
def register_methods(root_module):
@@ -494,7 +494,6 @@
register_Ns3NdnPitEntry_methods(root_module, root_module['ns3::ndn::pit::Entry'])
register_Ns3NdnPitIncomingFace_methods(root_module, root_module['ns3::ndn::pit::IncomingFace'])
register_Ns3NdnPitOutgoingFace_methods(root_module, root_module['ns3::ndn::pit::OutgoingFace'])
- register_Ns3NdnPitOutgoingFaceContainer_methods(root_module, root_module['ns3::ndn::pit::OutgoingFaceContainer'])
register_Ns3NdnPitI_face_methods(root_module, root_module['ns3::ndn::pit::i_face'])
register_Ns3NdnPitI_retx_methods(root_module, root_module['ns3::ndn::pit::i_retx'])
return
@@ -4649,6 +4648,11 @@
'ns3::Ptr< ns3::ndn::Face >',
[param('uint32_t', 'face')],
is_const=True, is_virtual=True)
+ ## ndn-l3-protocol.h (module 'ndnSIM'): ns3::Ptr<ns3::ndn::Face> ns3::ndn::L3Protocol::GetFaceById(uint32_t face) const [member function]
+ cls.add_method('GetFaceById',
+ 'ns3::Ptr< ns3::ndn::Face >',
+ [param('uint32_t', 'face')],
+ is_const=True, is_virtual=True)
## ndn-l3-protocol.h (module 'ndnSIM'): void ns3::ndn::L3Protocol::RemoveFace(ns3::Ptr<ns3::ndn::Face> face) [member function]
cls.add_method('RemoveFace',
'void',
@@ -4659,6 +4663,16 @@
'ns3::Ptr< ns3::ndn::Face >',
[param('ns3::Ptr< ns3::NetDevice >', 'netDevice')],
is_const=True, is_virtual=True)
+ ## ndn-l3-protocol.h (module 'ndnSIM'): static uint64_t ns3::ndn::L3Protocol::GetInterestCounter() [member function]
+ cls.add_method('GetInterestCounter',
+ 'uint64_t',
+ [],
+ is_static=True)
+ ## ndn-l3-protocol.h (module 'ndnSIM'): static uint64_t ns3::ndn::L3Protocol::GetDataCounter() [member function]
+ cls.add_method('GetDataCounter',
+ 'uint64_t',
+ [],
+ is_static=True)
## ndn-l3-protocol.h (module 'ndnSIM'): void ns3::ndn::L3Protocol::DoDispose() [member function]
cls.add_method('DoDispose',
'void',
@@ -5113,9 +5127,9 @@
'std::_Rb_tree_const_iterator< ns3::ndn::pit::IncomingFace >',
[param('ns3::Ptr< ns3::ndn::Face >', 'face')],
is_virtual=True)
- ## ndn-pit-entry.h (module 'ndnSIM'): boost::multi_index::detail::bidir_node_iterator<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::index_node_base<ns3::ndn::pit::OutgoingFace, std::allocator<ns3::ndn::pit::OutgoingFace> > > > > ns3::ndn::pit::Entry::AddOutgoing(ns3::Ptr<ns3::ndn::Face> face) [member function]
+ ## ndn-pit-entry.h (module 'ndnSIM'): std::_Rb_tree_const_iterator<ns3::ndn::pit::OutgoingFace> ns3::ndn::pit::Entry::AddOutgoing(ns3::Ptr<ns3::ndn::Face> face) [member function]
cls.add_method('AddOutgoing',
- 'boost::multi_index::detail::bidir_node_iterator< boost::multi_index::detail::ordered_index_node< boost::multi_index::detail::ordered_index_node< boost::multi_index::detail::index_node_base< ns3::ndn::pit::OutgoingFace, std::allocator< ns3::ndn::pit::OutgoingFace > > > > >',
+ 'std::_Rb_tree_const_iterator< ns3::ndn::pit::OutgoingFace >',
[param('ns3::Ptr< ns3::ndn::Face >', 'face')],
is_virtual=True)
## ndn-pit-entry.h (module 'ndnSIM'): void ns3::ndn::pit::Entry::AddSeenNonce(uint32_t nonce) [member function]
@@ -5162,9 +5176,9 @@
'uint32_t',
[],
is_const=True)
- ## ndn-pit-entry.h (module 'ndnSIM'): boost::multi_index::multi_index_container<ns3::ndn::pit::OutgoingFace, boost::multi_index::indexed_by<boost::multi_index::ordered_unique<boost::multi_index::tag<ns3::ndn::pit::i_face, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::multi_index::member<ns3::ndn::pit::OutgoingFace, ns3::Ptr<ns3::ndn::Face>, &(ns3::ndn::pit::OutgoingFace::m_face)>, mpl_::na>, boost::multi_index::ordered_non_unique<boost::multi_index::tag<ns3::ndn::pit::i_retx, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::multi_index::member<ns3::ndn::pit::OutgoingFace, unsigned int, &(ns3::ndn::pit::OutgoingFace::m_retxCount)>, mpl_::na>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, std::allocator<ns3::ndn::pit::OutgoingFace> > const & ns3::ndn::pit::Entry::GetOutgoing() const [member function]
+ ## ndn-pit-entry.h (module 'ndnSIM'): std::set<ns3::ndn::pit::OutgoingFace, std::less<ns3::ndn::pit::OutgoingFace>, std::allocator<ns3::ndn::pit::OutgoingFace> > const & ns3::ndn::pit::Entry::GetOutgoing() const [member function]
cls.add_method('GetOutgoing',
- 'boost::multi_index::multi_index_container< ns3::ndn::pit::OutgoingFace, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::tag< ns3::ndn::pit::i_face, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na >, boost::multi_index::member< ns3::ndn::pit::OutgoingFace, ns3::Ptr< ns3::ndn::Face >, & ( ns3::ndn::pit::OutgoingFace::m_face ) >, mpl_::na >, boost::multi_index::ordered_non_unique< boost::multi_index::tag< ns3::ndn::pit::i_retx, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na >, boost::multi_index::member< ns3::ndn::pit::OutgoingFace, unsigned int, & ( ns3::ndn::pit::OutgoingFace::m_retxCount ) >, mpl_::na >, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na >, std::allocator< ns3::ndn::pit::OutgoingFace > > const &',
+ 'std::set< ns3::ndn::pit::OutgoingFace > const &',
[],
is_const=True)
## ndn-pit-entry.h (module 'ndnSIM'): ns3::ndn::NameComponents const & ns3::ndn::pit::Entry::GetPrefix() const [member function]
@@ -5240,13 +5254,6 @@
cls.add_instance_attribute('m_waitingInVain', 'bool', is_const=False)
return
-def register_Ns3NdnPitOutgoingFaceContainer_methods(root_module, cls):
- ## ndn-pit-entry.h (module 'ndnSIM'): ns3::ndn::pit::OutgoingFaceContainer::OutgoingFaceContainer() [constructor]
- cls.add_constructor([])
- ## ndn-pit-entry.h (module 'ndnSIM'): ns3::ndn::pit::OutgoingFaceContainer::OutgoingFaceContainer(ns3::ndn::pit::OutgoingFaceContainer const & arg0) [copy constructor]
- cls.add_constructor([param('ns3::ndn::pit::OutgoingFaceContainer const &', 'arg0')])
- return
-
def register_Ns3NdnPitI_face_methods(root_module, cls):
## ndn-pit-entry.h (module 'ndnSIM'): ns3::ndn::pit::i_face::i_face() [constructor]
cls.add_constructor([])
diff --git a/model/pit/ndn-pit-entry-outgoing-face.cc b/model/pit/ndn-pit-entry-outgoing-face.cc
index 265529c..1ddf1d6 100644
--- a/model/pit/ndn-pit-entry-outgoing-face.cc
+++ b/model/pit/ndn-pit-entry-outgoing-face.cc
@@ -34,6 +34,26 @@
{
}
+OutgoingFace::OutgoingFace ()
+ : m_face (0)
+ , m_sendTime (0)
+ , m_retxCount (0)
+ , m_waitingInVain (false)
+{
+}
+
+OutgoingFace &
+OutgoingFace::operator = (const OutgoingFace &other)
+{
+ m_face = other.m_face;
+ m_sendTime = other.m_sendTime;
+ m_retxCount = other.m_retxCount;
+ m_waitingInVain = other.m_waitingInVain;
+
+ return *this;
+}
+
+
void
OutgoingFace::UpdateOnRetransmit ()
{
diff --git a/model/pit/ndn-pit-entry-outgoing-face.h b/model/pit/ndn-pit-entry-outgoing-face.h
index 1a4d8b5..63c6378 100644
--- a/model/pit/ndn-pit-entry-outgoing-face.h
+++ b/model/pit/ndn-pit-entry-outgoing-face.h
@@ -51,6 +51,17 @@
OutgoingFace (Ptr<Face> face);
/**
+ * @brief Default constructor, necessary for Python bindings, but should not be used anywhere else.
+ */
+ OutgoingFace ();
+
+ /**
+ * @brie Copy operator
+ */
+ OutgoingFace &
+ operator = (const OutgoingFace &other);
+
+ /**
* @brief Update outgoing entry upon retransmission
*/
void
diff --git a/model/pit/ndn-pit-entry.cc b/model/pit/ndn-pit-entry.cc
index b578c0e..765693f 100644
--- a/model/pit/ndn-pit-entry.cc
+++ b/model/pit/ndn-pit-entry.cc
@@ -90,8 +90,9 @@
if (!ret.second)
{ // outgoing face already exists
- m_outgoing.modify (ret.first,
- ll::bind (&OutgoingFace::UpdateOnRetransmit, ll::_1));
+ const_cast<OutgoingFace&>(*ret.first).UpdateOnRetransmit ();
+ // m_outgoing.modify (ret.first,
+ // ll::bind (&OutgoingFace::UpdateOnRetransmit, ll::_1));
}
return ret.first;
@@ -129,9 +130,10 @@
out_iterator item = m_outgoing.find (face);
if (item == m_outgoing.end ())
return;
-
- m_outgoing.modify (item,
- (&ll::_1)->*&OutgoingFace::m_waitingInVain = true);
+
+ const_cast<OutgoingFace&>(*item).m_waitingInVain = true;
+ // m_outgoing.modify (item,
+ // (&ll::_1)->*&OutgoingFace::m_waitingInVain = true);
}
diff --git a/model/pit/ndn-pit-entry.h b/model/pit/ndn-pit-entry.h
index 8dc5d24..55aa7de 100644
--- a/model/pit/ndn-pit-entry.h
+++ b/model/pit/ndn-pit-entry.h
@@ -57,25 +57,26 @@
* Indexes:
* - by face (may be it will be possible to replace with just the std::map)
*/
-struct OutgoingFaceContainer
-{
- /// @cond include_hidden
- typedef boost::multi_index::multi_index_container<
- OutgoingFace,
- boost::multi_index::indexed_by<
- // For fast access to elements using NdnFace
- boost::multi_index::ordered_unique<
- boost::multi_index::tag<i_face>,
- boost::multi_index::member<OutgoingFace, Ptr<Face>, &OutgoingFace::m_face>
- >,
- boost::multi_index::ordered_non_unique<
- boost::multi_index::tag<i_retx>,
- boost::multi_index::member<OutgoingFace, uint32_t, &OutgoingFace::m_retxCount>
- >
- >
- > type;
- /// @endcond
-};
+// struct OutgoingFaceContainer
+// {
+// /// @cond include_hidden
+// typedef boost::multi_index::multi_index_container<
+// OutgoingFace,
+// boost::multi_index::indexed_by<
+// // For fast access to elements using NdnFace
+// boost::multi_index::ordered_unique<
+// boost::multi_index::tag<i_face>,
+// boost::multi_index::member<OutgoingFace, Ptr<Face>, &OutgoingFace::m_face>
+// >
+// // ,
+// // boost::multi_index::ordered_non_unique<
+// // boost::multi_index::tag<i_retx>,
+// // boost::multi_index::member<OutgoingFace, uint32_t, &OutgoingFace::m_retxCount>
+// // >
+// >
+// > type;
+// /// @endcond
+// };
/**
@@ -90,7 +91,8 @@
typedef std::set< IncomingFace > in_container; ///< @brief incoming faces container type
typedef in_container::iterator in_iterator; ///< @brief iterator to incoming faces
- typedef OutgoingFaceContainer::type out_container; ///< @brief outgoing faces container type
+ // typedef OutgoingFaceContainer::type out_container; ///< @brief outgoing faces container type
+ typedef std::set< OutgoingFace > out_container; ///< @brief outgoing faces container type
typedef out_container::iterator out_iterator; ///< @brief iterator to outgoing faces
typedef std::set< uint32_t > nonce_container; ///< @brief nonce container type