NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.5: NDN, CCN, CCNx, content centric networks
API Documentation
ndn::PendingInterest Class Reference

Stores a pending Interest and associated callbacks. More...

#include <pending-interest.hpp>

Inheritance diagram for ndn::PendingInterest:
Collaboration diagram for ndn::PendingInterest:

Public Member Functions

 PendingInterest (shared_ptr< const Interest > interest, const DataCallback &dataCallback, const NackCallback &nackCallback, const TimeoutCallback &timeoutCallback, Scheduler &scheduler)
 Construct a pending Interest record for an Interest from Face::expressInterest. More...
 
 PendingInterest (shared_ptr< const Interest > interest, Scheduler &scheduler)
 Construct a pending Interest record for an Interest from the forwarder. More...
 
shared_ptr< const InterestgetInterest () const
 
PendingInterestOrigin getOrigin () const
 
void recordForwarding ()
 Record that the Interest has been forwarded to one destination. More...
 
optional< lp::NackrecordNack (const lp::Nack &nack)
 Record an incoming Nack against a forwarded Interest. More...
 
void invokeDataCallback (const Data &data)
 Invoke the Data callback. More...
 
void invokeNackCallback (const lp::Nack &nack)
 Invoke the Nack callback. More...
 
- Public Member Functions inherited from ndn::detail::RecordBase< PendingInterest >
RecordId getId () const
 

Additional Inherited Members

- Protected Member Functions inherited from ndn::detail::RecordBase< PendingInterest >
 ~RecordBase ()=default
 
void deleteSelf ()
 Delete this record from the container. More...
 

Detailed Description

Stores a pending Interest and associated callbacks.

Definition at line 58 of file pending-interest.hpp.

Constructor & Destructor Documentation

◆ PendingInterest() [1/2]

ndn::PendingInterest::PendingInterest ( shared_ptr< const Interest interest,
const DataCallback dataCallback,
const NackCallback nackCallback,
const TimeoutCallback timeoutCallback,
Scheduler scheduler 
)
inline

Construct a pending Interest record for an Interest from Face::expressInterest.

The timeout is set based on the current time and InterestLifetime. This class will invoke the timeout callback unless the record is deleted before timeout.

Definition at line 67 of file pending-interest.hpp.

◆ PendingInterest() [2/2]

ndn::PendingInterest::PendingInterest ( shared_ptr< const Interest interest,
Scheduler scheduler 
)
inline

Construct a pending Interest record for an Interest from the forwarder.

Definition at line 82 of file pending-interest.hpp.

Member Function Documentation

◆ getInterest()

shared_ptr<const Interest> ndn::PendingInterest::getInterest ( ) const
inline

◆ getOrigin()

◆ recordForwarding()

void ndn::PendingInterest::recordForwarding ( )
inline

Record that the Interest has been forwarded to one destination.

A "destination" could be either a local InterestFilter or the forwarder.

Definition at line 107 of file pending-interest.hpp.

Referenced by ndn::Face::Impl::shutdown().

◆ recordNack()

optional<lp::Nack> ndn::PendingInterest::recordNack ( const lp::Nack nack)
inline

Record an incoming Nack against a forwarded Interest.

Returns
least severe Nack if all destinations where the Interest was forwarded have Nacked; otherwise, nullopt

Definition at line 118 of file pending-interest.hpp.

References ndn::lp::Nack::getReason(), ndn::lp::isLessSevere(), and nonstd::optional_lite::nullopt.

Referenced by ndn::Face::Impl::nackPendingInterests().

◆ invokeDataCallback()

void ndn::PendingInterest::invokeDataCallback ( const Data data)
inline

Invoke the Data callback.

Note
This method does nothing if the Data callback is empty

Definition at line 135 of file pending-interest.hpp.

Referenced by ndn::Face::Impl::satisfyPendingInterests().

◆ invokeNackCallback()

void ndn::PendingInterest::invokeNackCallback ( const lp::Nack nack)
inline

Invoke the Nack callback.

Note
This method does nothing if the Nack callback is empty

Definition at line 147 of file pending-interest.hpp.

References ndn::scheduler::Scheduler::schedule().

Referenced by ndn::Face::Impl::nackPendingInterests().


The documentation for this class was generated from the following file: