27 #include <ndn-cxx/mgmt/nfd/cs-info.hpp> 37 registerCommandHandler<ndn::nfd::CsConfigCommand>(
"config",
38 bind(&CsManager::changeConfig,
this, _4, _5));
44 CsManager::changeConfig(
const ControlParameters& parameters,
45 const ndn::mgmt::CommandContinuation& done)
47 using ndn::nfd::CsFlagBit;
49 if (parameters.hasCapacity()) {
50 m_cs.setLimit(parameters.getCapacity());
53 if (parameters.hasFlagBit(CsFlagBit::BIT_CS_ENABLE_ADMIT)) {
54 m_cs.enableAdmit(parameters.getFlagBit(CsFlagBit::BIT_CS_ENABLE_ADMIT));
57 if (parameters.hasFlagBit(CsFlagBit::BIT_CS_ENABLE_SERVE)) {
58 m_cs.enableServe(parameters.getFlagBit(CsFlagBit::BIT_CS_ENABLE_SERVE));
61 ControlParameters body;
62 body.setCapacity(m_cs.getLimit());
63 body.setFlagBit(CsFlagBit::BIT_CS_ENABLE_ADMIT, m_cs.shouldAdmit(),
false);
64 body.setFlagBit(CsFlagBit::BIT_CS_ENABLE_SERVE, m_cs.shouldServe(),
false);
65 done(ControlResponse(200,
"OK").setBody(body.wireEncode()));
69 CsManager::serveInfo(
const Name& topPrefix,
const Interest& interest,
70 ndn::mgmt::StatusDatasetContext& context)
const 72 ndn::nfd::CsInfo info;
73 info.setCapacity(m_cs.getLimit());
74 info.setEnableAdmit(m_cs.shouldAdmit());
75 info.setEnableServe(m_cs.shouldServe());
76 info.setNEntries(m_cs.size());
80 context.append(info.wireEncode());
void registerStatusDatasetHandler(const std::string &verb, const ndn::mgmt::StatusDatasetHandler &handler)
provides ControlCommand authorization according to NFD configuration file
Copyright (c) 2014-2015, Regents of the University of California, Arizona Board of Regents...
a collection of common functions shared by all NFD managers, such as communicating with the dispatche...
counters provided by Forwarder
CsManager(Cs &cs, const ForwarderCounters &fwCnt, Dispatcher &dispatcher, CommandAuthenticator &authenticator)