An application NDN face, providing richer API interface, compared to ndn::AppFace. More...
#include <ndn-api-face.h>
Public Types | |
typedef Callback< void, Ptr < const Name >, Ptr< const Interest > > | InterestCallback |
typedef Callback< void, Ptr < const Interest >, Ptr< const Data > > | DataCallback |
typedef Callback< void, Ptr < const Interest > > | TimeoutCallback |
Public Types inherited from ns3::ndn::Face | |
enum | Flags { APPLICATION = 1 } |
List of currently defined face flags. More... | |
typedef Callback< void, Ptr < Face >, Ptr< Interest > > | InterestHandler |
NDN protocol handlers. More... | |
typedef Callback< void, Ptr < Face >, Ptr< Data > > | DataHandler |
Public Member Functions | |
ApiFace (Ptr< Node > node) | |
initialize the handler; a lot of things needs to be done. More... | |
virtual void | Shutdown () |
Shutdown the API face. | |
void | ExpressInterest (Ptr< Interest > interest, DataCallback onData, TimeoutCallback onTimeout) |
Express Interest. More... | |
void | SetInterestFilter (Ptr< const Name > prefix, InterestCallback onInterest) |
set Interest filter (specify what interest you want to receive) More... | |
void | ClearInterestFilter (Ptr< const Name > prefix) |
clear Interest filter More... | |
void | Put (Ptr< Data > data) |
Publish data. More... | |
virtual bool | SendInterest (Ptr< const Interest > interest) |
Send out interest through the face. More... | |
virtual bool | SendData (Ptr< const Data > data) |
Send out Dat packet through the face. More... | |
virtual std::ostream & | Print (std::ostream &os) const |
Print information about the face into the stream. More... | |
Public Member Functions inherited from ns3::ndn::Face | |
Face (Ptr< Node > node) | |
Default constructor. More... | |
Ptr< Node > | GetNode () const |
Get node to which this face is associated. | |
virtual void | RegisterProtocolHandlers (const InterestHandler &interestHandler, const DataHandler &dataHandler) |
Register callback to call when new packet arrives on the face. More... | |
virtual void | UnRegisterProtocolHandlers () |
Un-Register callback to call when new packet arrives on the face. More... | |
virtual bool | ReceiveInterest (Ptr< Interest > interest) |
Receive interest from application or another node and forward it up to the NDN stack. More... | |
virtual bool | ReceiveData (Ptr< Data > data) |
Receive Data packet from application or another node and forward it up to the NDN stack. More... | |
virtual void | SetMetric (uint16_t metric) |
Assign routing/forwarding metric with face. More... | |
virtual uint16_t | GetMetric (void) const |
Get routing/forwarding metric assigned to the face. More... | |
void | SetUp (bool up=true) |
These are face states and may be distinct from actual lower-layer device states, such as found in real implementations (where the device may be down but ndn face state is still up). More... | |
bool | IsUp () const |
Returns true if this face is enabled, false otherwise. | |
uint32_t | GetFlags () const |
Get face flags. More... | |
void | SetId (uint32_t id) |
Set face Id. More... | |
uint32_t | GetId () const |
Get face Id. More... | |
bool | operator== (const Face &face) const |
Compare two faces. More... | |
bool | operator!= (const Face &face) const |
Compare two faces. More... | |
bool | operator< (const Face &face) const |
Compare two faces. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from ns3::ndn::Face | |
static TypeId | GetTypeId () |
Protected Member Functions inherited from ns3::ndn::Face | |
virtual bool | Send (Ptr< Packet > packet) |
Send packet down to the stack (towards app or network) | |
virtual bool | Receive (Ptr< const Packet > p) |
Send packet up to the stack (towards forwarding strategy) | |
void | SetFlags (uint32_t flags) |
Set face flags. | |
Protected Attributes inherited from ns3::ndn::Face | |
Ptr< Node > | m_node |
Smart pointer to Node. | |
An application NDN face, providing richer API interface, compared to ndn::AppFace.
Definition at line 51 of file ndn-api-face.h.
ns3::ndn::ApiFace::ApiFace | ( | Ptr< Node > | node | ) |
initialize the handler; a lot of things needs to be done.
1) init keystore 2) init keylocator 3) start a thread to hold a loop of ccn_run
Definition at line 62 of file ndn-api-face.cc.
References ns3::ndn::Face::APPLICATION, ns3::ndn::Face::GetNode(), ns3::ndn::Face::SetFlags(), and ns3::ndn::Face::SetUp().
void ns3::ndn::ApiFace::ClearInterestFilter | ( | Ptr< const Name > | prefix | ) |
clear Interest filter
prefix | the prefix of Interest |
Definition at line 156 of file ndn-api-face.cc.
References ns3::ndn::ndnSIM::trie_with_policy< FullKey, PayloadTraits, PolicyTraits >::find_exact().
void ns3::ndn::ApiFace::ExpressInterest | ( | Ptr< Interest > | interest, |
DataCallback | onData, | ||
TimeoutCallback | onTimeout | ||
) |
Express Interest.
name | the Interest name |
onData | the callback function to deal with the returned data |
onTimeout | the callback function to deal with timeouts |
Definition at line 102 of file ndn-api-face.cc.
References ns3::ndn::ndnSIM::trie_with_policy< FullKey, PayloadTraits, PolicyTraits >::find_exact(), and ns3::ndn::Face::ReceiveInterest().
|
virtual |
Print information about the face into the stream.
os | stream to write information to |
Reimplemented from ns3::ndn::Face.
Definition at line 234 of file ndn-api-face.cc.
References ns3::ndn::Face::GetId().
void ns3::ndn::ApiFace::Put | ( | Ptr< Data > | data | ) |
Publish data.
data | Data packet to publish |
Definition at line 167 of file ndn-api-face.cc.
References ns3::ndn::Face::ReceiveData().
|
virtual |
Send out Dat packet through the face.
Reimplemented from ns3::ndn::Face.
Definition at line 204 of file ndn-api-face.cc.
References ns3::ndn::Face::IsUp(), and ns3::ndn::ndnSIM::trie_with_policy< FullKey, PayloadTraits, PolicyTraits >::longest_prefix_match().
|
virtual |
Send out interest through the face.
interest | Interest to send out |
packet | "payload" that is attached to the interest (can carry some packet tags) |
Reimplemented from ns3::ndn::Face.
Definition at line 180 of file ndn-api-face.cc.
References ns3::ndn::Face::IsUp(), and ns3::ndn::ndnSIM::trie_with_policy< FullKey, PayloadTraits, PolicyTraits >::longest_prefix_match().
void ns3::ndn::ApiFace::SetInterestFilter | ( | Ptr< const Name > | prefix, |
InterestCallback | onInterest | ||
) |
set Interest filter (specify what interest you want to receive)
prefix | the prefix of Interest |
onInterest | the callback function to deal with the returned data |
Definition at line 134 of file ndn-api-face.cc.
References ns3::ndn::Fib::Add(), ns3::ndn::ndnSIM::trie_with_policy< FullKey, PayloadTraits, PolicyTraits >::find_exact(), ns3::ndn::Face::GetId(), and ns3::ndn::Face::GetNode().