30 using ndn::mgmt::ValidateParameters;
31 using ndn::mgmt::Authorization;
34 const std::string& module)
35 : m_dispatcher(dispatcher)
42 const ndn::mgmt::StatusDatasetHandler& handler)
44 m_dispatcher.addStatusDataset(makeRelPrefix(verb),
45 ndn::mgmt::makeAcceptAllAuthorization(),
49 ndn::mgmt::PostNotification
52 return m_dispatcher.addNotificationStream(makeRelPrefix(verb));
57 ndn::mgmt::AcceptContinuation accept)
59 const Name& interestName = interest.getName();
62 ndn::SignatureInfo sigInfo(interestName.at(ndn::signed_interest::POS_SIG_INFO).blockFromValue());
63 if (!sigInfo.hasKeyLocator() ||
64 sigInfo.getKeyLocator().getType() != ndn::KeyLocator::KeyLocator_Name) {
68 accept(sigInfo.getKeyLocator().getName().toUri());
70 catch (
const tlv::Error&) {
76 ManagerBase::validateParameters(
const nfd::ControlCommand& command,
const ndn::mgmt::ControlParameters& parameters)
78 BOOST_ASSERT(dynamic_cast<const ControlParameters*>(¶meters) !=
nullptr);
81 command.validateRequest(static_cast<const ControlParameters&>(parameters));
83 catch (
const ControlCommand::ArgumentError&) {
90 ManagerBase::handleCommand(shared_ptr<nfd::ControlCommand> command,
91 const ControlCommandHandler& handler,
92 const Name& prefix,
const Interest& interest,
93 const ndn::mgmt::ControlParameters& params,
94 ndn::mgmt::CommandContinuation done)
96 BOOST_ASSERT(dynamic_cast<const ControlParameters*>(¶ms) !=
nullptr);
97 ControlParameters parameters =
static_cast<const ControlParameters&
>(params);
98 command->applyDefaultsToRequest(parameters);
99 handler(*command, prefix, interest, parameters, done);
void registerStatusDatasetHandler(const std::string &verb, const ndn::mgmt::StatusDatasetHandler &handler)
ManagerBase(Dispatcher &dispatcher, const std::string &module)
Copyright (c) 2014-2015, Regents of the University of California, Arizona Board of Regents...
ndn::mgmt::PostNotification registerNotificationStream(const std::string &verb)
void extractRequester(const Interest &interest, ndn::mgmt::AcceptContinuation accept)
extract a requester from a ControlCommand request