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().