an Interest table entry More...
#include <daemon/table/pit-entry.hpp>
Public Member Functions | |
Entry (const Interest &interest) | |
bool | canMatch (const Interest &interest, size_t nEqualNameComps=0) const |
void | clearInRecords () |
delete all in-records More... | |
void | clearStrategyInfo () |
clear all StrategyInfo items More... | |
void | deleteInRecord (const Face &face) |
delete the in-record for face if it exists More... | |
void | deleteOutRecord (const Face &face) |
delete the out-record for face if it exists More... | |
template<typename T > | |
size_t | eraseStrategyInfo () |
erase a StrategyInfo item More... | |
InRecordCollection::iterator | getInRecord (const Face &face) |
get the in-record for face More... | |
const InRecordCollection & | getInRecords () const |
const Interest & | getInterest () const |
const Name & | getName () const |
OutRecordCollection::iterator | getOutRecord (const Face &face) |
get the out-record for face More... | |
const OutRecordCollection & | getOutRecords () const |
template<typename T > | |
T * | getStrategyInfo () const |
get a StrategyInfo item More... | |
bool | hasInRecords () const |
bool | hasOutRecords () const |
InRecordCollection::iterator | in_begin () |
InRecordCollection::const_iterator | in_begin () const |
InRecordCollection::iterator | in_end () |
InRecordCollection::const_iterator | in_end () const |
InRecordCollection::iterator | insertOrUpdateInRecord (Face &face, const Interest &interest) |
insert or update an in-record More... | |
OutRecordCollection::iterator | insertOrUpdateOutRecord (Face &face, const Interest &interest) |
insert or update an out-record More... | |
template<typename T , typename... A> | |
std::pair< T *, bool > | insertStrategyInfo (A &&...args) |
insert a StrategyInfo item More... | |
OutRecordCollection::iterator | out_begin () |
OutRecordCollection::const_iterator | out_begin () const |
OutRecordCollection::iterator | out_end () |
OutRecordCollection::const_iterator | out_end () const |
Public Attributes | |
scheduler::EventId | m_stragglerTimer |
straggler timer More... | |
scheduler::EventId | m_unsatisfyTimer |
unsatisfy timer More... | |
Friends | |
class | name_tree::Entry |
an Interest table entry
An Interest table entry represents either a pending Interest or a recently satisfied Interest. Each entry contains a collection of in-records, a collection of out-records, and two timers used in forwarding pipelines. In addition, the entry, in-records, and out-records are subclasses of StrategyInfoHost, which allows forwarding strategy to store arbitrary information on them.
Definition at line 57 of file pit-entry.hpp.
|
explicit |
Definition at line 32 of file pit-entry.cpp.
bool nfd::pit::Entry::canMatch | ( | const Interest & | interest, |
size_t | nEqualNameComps = 0 |
||
) | const |
interest | the Interest |
nEqualNameComps | number of initial name components guaranteed to be equal |
Definition at line 39 of file pit-entry.cpp.
void nfd::pit::Entry::clearInRecords | ( | ) |
delete all in-records
Definition at line 84 of file pit-entry.cpp.
|
inherited |
clear all StrategyInfo items
Definition at line 31 of file strategy-info-host.cpp.
void nfd::pit::Entry::deleteInRecord | ( | const Face & | face | ) |
delete the in-record for face
if it exists
Definition at line 74 of file pit-entry.cpp.
void nfd::pit::Entry::deleteOutRecord | ( | const Face & | face | ) |
delete the out-record for face
if it exists
Definition at line 113 of file pit-entry.cpp.
|
inlineinherited |
erase a StrategyInfo item
T | type of StrategyInfo, must be a subclass of fw::StrategyInfo |
Definition at line 82 of file strategy-info-host.hpp.
InRecordCollection::iterator nfd::pit::Entry::getInRecord | ( | const Face & | face | ) |
get the in-record for face
Definition at line 51 of file pit-entry.cpp.
|
inline |
Definition at line 93 of file pit-entry.hpp.
|
inline |
Definition at line 69 of file pit-entry.hpp.
|
inline |
Definition at line 77 of file pit-entry.hpp.
OutRecordCollection::iterator nfd::pit::Entry::getOutRecord | ( | const Face & | face | ) |
get the out-record for face
Definition at line 90 of file pit-entry.cpp.
|
inline |
Definition at line 159 of file pit-entry.hpp.
|
inlineinherited |
get a StrategyInfo item
T | type of StrategyInfo, must be a subclass of fw::StrategyInfo |
Definition at line 44 of file strategy-info-host.hpp.
|
inline |
true | There is at least one in-record. This implies some downstream is waiting for Data or Nack. |
false | There is no in-record. This implies the entry is new or has been satisfied or Nacked. |
Definition at line 104 of file pit-entry.hpp.
|
inline |
true | There is at least one out-record. This implies the Interest has been forwarded to some upstream, and they haven't returned Data, but may have returned Nacks. |
false | There is no out-record. This implies the Interest has not been forwarded. |
Definition at line 171 of file pit-entry.hpp.
|
inline |
Definition at line 110 of file pit-entry.hpp.
|
inline |
Definition at line 116 of file pit-entry.hpp.
|
inline |
Definition at line 122 of file pit-entry.hpp.
|
inline |
Definition at line 128 of file pit-entry.hpp.
InRecordCollection::iterator nfd::pit::Entry::insertOrUpdateInRecord | ( | Face & | face, |
const Interest & | interest | ||
) |
insert or update an in-record
Definition at line 58 of file pit-entry.cpp.
OutRecordCollection::iterator nfd::pit::Entry::insertOrUpdateOutRecord | ( | Face & | face, |
const Interest & | interest | ||
) |
insert or update an out-record
Definition at line 97 of file pit-entry.cpp.
|
inlineinherited |
insert a StrategyInfo item
T | type of StrategyInfo, must be a subclass of fw::StrategyInfo |
Definition at line 63 of file strategy-info-host.hpp.
|
inline |
Definition at line 177 of file pit-entry.hpp.
|
inline |
Definition at line 183 of file pit-entry.hpp.
|
inline |
Definition at line 189 of file pit-entry.hpp.
|
inline |
Definition at line 195 of file pit-entry.hpp.
|
friend |
Definition at line 246 of file pit-entry.hpp.
scheduler::EventId nfd::pit::Entry::m_stragglerTimer |
straggler timer
This timer is used in forwarding pipelines to delete the entry when it has been satisfied and is no longer needed for measurement collection purpose.
Either this or the unsatisfy timer should be set at all times, except when this entry is being processed in a pipeline.
Definition at line 237 of file pit-entry.hpp.
scheduler::EventId nfd::pit::Entry::m_unsatisfyTimer |
unsatisfy timer
This timer is used in forwarding pipelines to delete the entry when it expires without being satisfied. It fires when the last InterestLifetime among in-records expires.
Either this or the straggler timer should be set at all times, except when this entry is being processed in a pipeline.
Definition at line 227 of file pit-entry.hpp.