7 #ifndef NDN_MANAGEMENT_NFD_CONTROLLER_HPP
8 #define NDN_MANAGEMENT_NFD_CONTROLLER_HPP
12 #include "../face.hpp"
35 template<
typename Command>
55 processCommandResponse(
const Data& data,
56 const shared_ptr<ControlCommand>& command,
61 static time::milliseconds
64 return time::milliseconds(10000);
73 template<
typename Command>
78 time::milliseconds timeout)
80 BOOST_ASSERT(timeout > time::milliseconds::zero());
82 shared_ptr<ControlCommand> command = make_shared<Command>();
88 const uint32_t timeoutCode = 10060;
90 bind(&Controller::processCommandResponse,
this, _2,
91 command, onSuccess, onFailure),
92 bind(onFailure, timeoutCode,
"Command Interest timed out"));
98 #endif // NDN_MANAGEMENT_NFD_CONTROLLER_HPP
CommandInterestGenerator m_commandInterestGenerator
represents parameters in a ControlCommand request or response
Helper class to generate CommandInterests.
function< void()> SuccessCallback
An Interest holds a Name and other fields for an interest.
function< void(const ControlParameters &)> CommandSucceedCallback
a callback on command success
function< void(const std::string &)> FailCallback
Abstraction to communicate with local or remote NDN forwarder.
NFD Management protocol - ControlCommand client.
static time::milliseconds getDefaultCommandTimeout()
A Name holds an array of Name::Component and represents an NDN name.
const PendingInterestId * expressInterest(const Interest &interest, const OnData &onData, const OnTimeout &onTimeout=OnTimeout())
Express Interest.
function< void(uint32_t, const std::string &)> CommandFailCallback
a callback on command failure
virtual void selfRegisterPrefix(const Name &prefixToRegister, const SuccessCallback &onSuccess, const FailCallback &onFail)
Interest & setInterestLifetime(const time::milliseconds &interestLifetime)
virtual void selfDeregisterPrefix(const Name &prefixToDeRegister, const SuccessCallback &onSuccess, const FailCallback &onFail)
void start(const ControlParameters ¶meters, const CommandSucceedCallback &onSuccess, const CommandFailCallback &onFailure, time::milliseconds timeout=getDefaultCommandTimeout())
start command execution