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 NFD. 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::RecordBase< PendingInterest >
RecordId getId () const
 

Additional Inherited Members

- Protected Member Functions inherited from ndn::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 65 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 74 of file pending-interest.hpp.

References ndn::APP.

◆ PendingInterest() [2/2]

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

Construct a pending Interest record for an Interest from NFD.

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

References ndn::FORWARDER.

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 116 of file pending-interest.hpp.

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

◆ 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 127 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 144 of file pending-interest.hpp.

◆ 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 156 of file pending-interest.hpp.


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