25 #include "interest.hpp"
27 #include "network-nack.hpp"
28 #include "forwarding-flags.hpp"
29 #include "encoding/wire-format.hpp"
30 #include "interest-filter.hpp"
31 #include "transport/transport.hpp"
40 typedef func_lib::function<void
41 (
const ptr_lib::shared_ptr<const Interest>& interest,
42 const ptr_lib::shared_ptr<Data>& data)>
OnData;
47 typedef func_lib::function<void
48 (
const ptr_lib::shared_ptr<const Interest>& interest)>
OnTimeout;
53 typedef func_lib::function<void
54 (
const ptr_lib::shared_ptr<const Interest>& interest,
61 typedef func_lib::function<void
62 (
const ptr_lib::shared_ptr<const Name>& prefix,
63 const ptr_lib::shared_ptr<const Interest>& interest,
Face& face,
64 uint64_t interestFilterId,
70 typedef func_lib::function<void
76 typedef func_lib::function<void
77 (
const ptr_lib::shared_ptr<const Name>& prefix,
93 Face(
const ptr_lib::shared_ptr<Transport>& transport,
const ptr_lib::shared_ptr<const Transport::ConnectionInfo>& connectionInfo);
101 Face(
const char *host,
unsigned short port = 6363);
149 (
const Interest& interest,
const OnData& onData,
150 const OnTimeout& onTimeout,
const OnNetworkNack& onNetworkNack,
192 (
const Name& name,
const Interest *interestTemplate,
const OnData& onData,
193 const OnTimeout& onTimeout,
const OnNetworkNack& onNetworkNack,
232 (
const Name& name,
const OnData& onData,
233 const OnTimeout& onTimeout,
const OnNetworkNack& onNetworkNack,
236 return expressInterest(name, 0, onData, onTimeout, onNetworkNack, wireFormat);
303 (
const Name& name,
const Interest *interestTemplate,
const OnData& onData,
308 (name, interestTemplate, onData, onTimeout,
OnNetworkNack(), wireFormat);
339 (
const Name& name,
const OnData& onData,
370 commandKeyChain_ = &keyChain;
371 commandCertificateName_ = certificateName;
383 commandCertificateName_ = certificateName;
387 getCommandKeyChain() {
return commandKeyChain_; }
390 getCommandCertificateName() {
return commandCertificateName_; }
447 (
const Name& prefix,
const OnInterestCallback& onInterest,
449 const OnRegisterSuccess& onRegisterSuccess,
450 const ForwardingFlags& flags = ForwardingFlags(),
481 (
const Name& prefix,
const OnInterestCallback& onInterest,
515 (
const Name& prefix,
const OnInterestCallback& onInterest,
552 (
const InterestFilter& filter,
const OnInterestCallback& onInterest);
617 send(
const uint8_t *encoding,
size_t encodingLength);
691 static ptr_lib::shared_ptr<const Interest>
694 if (interestTemplate) {
696 ptr_lib::shared_ptr<Interest> interestCopy(
new Interest(*interestTemplate));
697 interestCopy->setName(name);
701 return ptr_lib::make_shared<Interest>(name, 4000.0);
706 Name commandCertificateName_;
709 static ptr_lib::shared_ptr<Transport>
710 getDefaultTransport();
712 static ptr_lib::shared_ptr<Transport::ConnectionInfo>
713 getDefaultConnectionInfo();
double Milliseconds
A time interval represented as the number of milliseconds.
Definition: common.hpp:112
void setCommandCertificateName(const Name &certificateName)
Set the certificate name used to sign command interest (e.g.
Definition: face.hpp:381
Copyright (C) 2013-2016 Regents of the University of California.
Definition: common.hpp:36
func_lib::function< void(const ptr_lib::shared_ptr< const Name > &prefix, const ptr_lib::shared_ptr< const Interest > &interest, Face &face, uint64_t interestFilterId, const ptr_lib::shared_ptr< const InterestFilter > &filter)> OnInterestCallback
An OnInterestCallback function object is used to pass a callback to setInterestFilter and optionally ...
Definition: face.hpp:65
The Face class provides the main methods for NDN communication.
Definition: face.hpp:86
virtual void removeRegisteredPrefix(uint64_t registeredPrefixId)
Remove the registered prefix entry with the registeredPrefixId from the registered prefix table...
Definition: face.cpp:162
A ForwardingFlags object holds the flags which specify how the forwarding daemon should forward an in...
Definition: forwarding-flags.hpp:35
static ptr_lib::shared_ptr< const Interest > getInterestCopy(const Name &name, const Interest *interestTemplate)
Do the work of expressInterest to make an Interest based on name and interestTemplate.
Definition: face.hpp:692
func_lib::function< void(const ptr_lib::shared_ptr< const Name > &prefix, uint64_t registeredPrefixId)> OnRegisterSuccess
An OnRegisterSuccess function object is used to report when registerPrefix succeeds.
Definition: face.hpp:78
virtual uint64_t expressInterest(const Interest &interest, const OnData &onData, const OnTimeout &onTimeout, const OnNetworkNack &onNetworkNack, WireFormat &wireFormat=*WireFormat::getDefaultWireFormat())
Send the Interest through the transport, read the entire response and call onData, onTimeout or onNetworkNack as described below.
Definition: face.cpp:101
func_lib::function< void(const ptr_lib::shared_ptr< const Interest > &interest, const ptr_lib::shared_ptr< NetworkNack > &networkNack)> OnNetworkNack
An OnNetworkNack function object is used to pass a callback to expressInterest.
Definition: face.hpp:55
virtual void removePendingInterest(uint64_t pendingInterestId)
Remove the pending interest entry with the pendingInterestId from the pending interest table...
Definition: face.cpp:131
KeyChain is the main class of the security library.
Definition: key-chain.hpp:45
void putData(const Data &data, WireFormat &wireFormat=*WireFormat::getDefaultWireFormat())
The OnInterestCallback calls this to put a Data packet which satisfies an Interest.
Definition: face.cpp:203
virtual void unsetInterestFilter(uint64_t interestFilterId)
Remove the interest filter entry which has the interestFilterId from the interest filter table...
Definition: face.cpp:197
A Name holds an array of Name::Component and represents an NDN name.
Definition: name.hpp:40
func_lib::function< void(const ptr_lib::shared_ptr< const Interest > &interest)> OnTimeout
An OnTimeout function object is used to pass a callback to expressInterest.
Definition: face.hpp:48
A Blob holds a pointer to an immutable byte array implemented as const std::vector.
Definition: blob.hpp:42
An Interest holds a Name and other fields for an interest.
Definition: interest.hpp:42
const uint8_t * buf() const
Return a const pointer to the first byte of the immutable byte array, or 0 if the pointer is null...
Definition: blob.hpp:159
static size_t getMaxNdnPacketSize()
Get the practical limit of the size of a network-layer packet.
Definition: face.hpp:657
Face()
Create a new Face for communication with an NDN hub using a default connection as follows...
func_lib::function< void()> Callback
Face::Callback is used internally in callLater.
Definition: face.hpp:662
virtual void makeCommandInterest(Interest &interest, WireFormat &wireFormat=*WireFormat::getDefaultWireFormat())
Append a timestamp component and a random value component to interest's name.
Definition: face.cpp:137
size_t size() const
Return the length of the immutable byte array.
Definition: blob.hpp:147
func_lib::function< void(const ptr_lib::shared_ptr< const Interest > &interest, const ptr_lib::shared_ptr< Data > &data)> OnData
An OnData function object is used to pass a callback to expressInterest.
Definition: face.hpp:35
virtual uint64_t setInterestFilter(const InterestFilter &filter, const OnInterestCallback &onInterest)
Add an entry to the local interest filter table to call the onInterest callback for a matching incomi...
Definition: face.cpp:169
func_lib::function< void(const ptr_lib::shared_ptr< const Name > &prefix)> OnRegisterFailed
An OnRegisterFailed function object is used to report when registerPrefix fails.
Definition: face.hpp:71
virtual bool isLocal()
Check if the face is local based on the current connection through the Transport; some Transport may ...
Definition: face.cpp:229
static std::string getUnixSocketFilePathForLocalhost()
If the forwarder's Unix socket file path exists, then return the file path.
virtual void shutdown()
Shut down and disconnect this Face.
Definition: face.cpp:235
void processEvents()
Process any packets to receive and call callbacks such as onData, onInterest or onTimeout.
Definition: face.cpp:222
virtual void callLater(Milliseconds delayMilliseconds, const Callback &callback)
Call callback() after the given delay.
Definition: face.cpp:241
An InterestFilter holds a Name prefix and optional regex match expression for use in Face::setInteres...
Definition: interest-filter.hpp:33
void send(const Blob &encoding)
Send the encoded packet out through the face.
Definition: face.hpp:604
virtual uint64_t registerPrefix(const Name &prefix, const OnInterestCallback &onInterest, const OnRegisterFailed &onRegisterFailed, const OnRegisterSuccess &onRegisterSuccess, const ForwardingFlags &flags=ForwardingFlags(), WireFormat &wireFormat=*WireFormat::getDefaultWireFormat())
Register prefix with the connected NDN hub and call onInterest when a matching interest is received...
Definition: face.cpp:145
void setCommandSigningInfo(KeyChain &keyChain, const Name &certificateName)
Set the KeyChain and certificate name used to sign command interests (e.g.
Definition: face.hpp:368