Initial redesign of internal data structures
diff --git a/model/ccnx-pit-entry.h b/model/ccnx-pit-entry.h
index 6c69f99..bc81c89 100644
--- a/model/ccnx-pit-entry.h
+++ b/model/ccnx-pit-entry.h
@@ -52,29 +52,6 @@
/**
* \ingroup ccnx
- * \brief Typedef for indexed face container of CcnxPitEntryIncomingFace
- *
- * Indexes:
- * - by face (may be it will be possible to replace with just the std::map)
- */
-struct CcnxPitEntryIncomingFaceContainer
-{
- /// @cond include_hidden
- typedef boost::multi_index::multi_index_container<
- CcnxPitEntryIncomingFace,
- boost::multi_index::indexed_by<
- // For fast access to elements using CcnxFace
- boost::multi_index::ordered_unique<
- boost::multi_index::tag<__ccnx_private::i_face>,
- boost::multi_index::member<CcnxPitEntryIncomingFace, Ptr<CcnxFace>, &CcnxPitEntryIncomingFace::m_face>
- >
- >
- > type;
- /// @endcond
-};
-
-/**
- * \ingroup ccnx
* \brief Typedef for indexed face container of CcnxPitEntryOutgoingFace
*
* Indexes:
@@ -108,13 +85,21 @@
struct CcnxPitEntry
{
public:
+ typedef std::set< CcnxPitEntryIncomingFace > in_container; ///< @brief incoming faces container type
+ typedef in_container::iterator in_iterator; ///< @brief iterator to incoming faces
+
+ typedef CcnxPitEntryOutgoingFaceContainer::type 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
+
/**
* \brief PIT entry constructor
* \param prefix Prefix of the PIT entry
* \param offsetTime Relative time to the current moment, representing PIT entry lifetime
* \param fibEntry A FIB entry associated with the PIT entry
*/
- CcnxPitEntry (Ptr<CcnxNameComponents> prefix, const Time &offsetTime, const CcnxFibEntry &fibEntry);
+ CcnxPitEntry (Ptr<CcnxNameComponents> prefix, const Time &offsetTime, CcnxFib::iterator fibEntry);
/**
* @brief Update lifetime of PIT entry
@@ -177,7 +162,7 @@
* @param face Face to add to the list of incoming faces
* @returns iterator to the added entry
*/
- CcnxPitEntryIncomingFaceContainer::type::iterator
+ in_iterator
AddIncoming (Ptr<CcnxFace> face);
/**
@@ -199,7 +184,7 @@
* @param face Face to add to the list of outgoing faces
* @returns iterator to the added entry
*/
- CcnxPitEntryOutgoingFaceContainer::type::iterator
+ out_iterator
AddOutgoing (Ptr<CcnxFace> face);
/**
@@ -222,7 +207,7 @@
* @brief Flag outgoing face as hopeless
*/
void
- SetWaitingInVain (CcnxPitEntryOutgoingFaceContainer::type::iterator face);
+ SetWaitingInVain (out_iterator face);
/**
* @brief Check if all outgoing faces are NACKed
@@ -250,15 +235,15 @@
/**
* \brief Default constructor
*/
- CcnxPitEntry () : m_fibEntry(*((CcnxFibEntry*)0)) {};
+ CcnxPitEntry () {};
public:
Ptr<CcnxNameComponents> m_prefix; ///< \brief Prefix of the PIT entry
- const CcnxFibEntry &m_fibEntry; ///< \brief FIB entry related to this prefix
- std::set<uint32_t> m_seenNonces; ///< \brief map of nonces that were seen for this prefix
+ CcnxFib::iterator m_fibEntry; ///< \brief FIB entry related to this prefix
- CcnxPitEntryIncomingFaceContainer::type m_incoming; ///< \brief container for incoming interests
- CcnxPitEntryOutgoingFaceContainer::type m_outgoing; ///< \brief container for outgoing interests
+ nonce_container m_seenNonces; ///< \brief map of nonces that were seen for this prefix
+ in_container m_incoming; ///< \brief container for incoming interests
+ out_container m_outgoing; ///< \brief container for outgoing interests
Time m_expireTime; ///< \brief Time when PIT entry will be removed