20 #ifndef NDN_CONSUMER_H
21 #define NDN_CONSUMER_H
23 #include "ns3/ndnSIM/model/ndn-common.hpp"
27 #include "ns3/random-variable-stream.h"
28 #include "ns3/nstime.h"
29 #include "ns3/data-rate.h"
31 #include "ns3/ndnSIM/model/ndn-common.hpp"
32 #include "ns3/ndnSIM/utils/ndn-rtt-estimator.hpp"
37 #include <boost/multi_index_container.hpp>
38 #include <boost/multi_index/tag.hpp>
39 #include <boost/multi_index/ordered_index.hpp>
40 #include <boost/multi_index/member.hpp>
63 OnData(shared_ptr<const Data> contentObject);
67 OnNack(shared_ptr<const lp::Nack> nack);
153 struct RetxSeqsContainer :
public std::set<uint32_t> {
156 RetxSeqsContainer m_retxSeqs;
162 SeqTimeout(uint32_t _seq, Time _time)
184 struct SeqTimeoutsContainer
185 :
public boost::multi_index::
186 multi_index_container<SeqTimeout,
188 indexed_by<boost::multi_index::
189 ordered_unique<boost::multi_index::tag<i_seq>,
191 member<SeqTimeout, uint32_t,
194 ordered_non_unique<boost::multi_index::
197 member<SeqTimeout, Time,
198 &SeqTimeout::time>>>> {
201 SeqTimeoutsContainer m_seqTimeouts;
203 SeqTimeoutsContainer m_seqLastDelay;
204 SeqTimeoutsContainer m_seqFullDelay;
205 std::map<uint32_t, uint32_t> m_seqRetxCounts;
207 TracedCallback<Ptr<App> , uint32_t , Time , int32_t >
208 m_lastRetransmittedInterestDataDelay;
209 TracedCallback<Ptr<App> , uint32_t , Time ,
210 uint32_t , int32_t > m_firstInterestDataDelay;