25 #include <ndn-cxx/mgmt/nfd/control-response.hpp>
34 : m_dispatcher(dispatcher)
35 , m_namePrefixList(namePrefixList)
44 const ndn::mgmt::CommandContinuation& done)
46 const auto& castParams =
static_cast<const ndn::nfd::ControlParameters&
>(parameters);
52 if (castParams.hasFlags() && castParams.getFlags() ==
PREFIX_FLAG) {
55 return done(ndn::nfd::ControlResponse(205,
"OK").setBody(parameters.wireEncode()));
58 return done(ndn::nfd::ControlResponse(406,
"Failed to open configuration file.")
59 .setBody(parameters.wireEncode()));
62 return done(ndn::nfd::ControlResponse(200,
"OK").setBody(parameters.wireEncode()));
65 if (castParams.hasFlags() && castParams.getFlags() ==
PREFIX_FLAG) {
67 NLSR_LOG_INFO(
"Saving an already advertised name: " << castParams.getName());
69 return done(ndn::nfd::ControlResponse(205,
"OK").setBody(parameters.wireEncode()));
72 return done(ndn::nfd::ControlResponse(406,
"Prefix is already Saved/Failed to open configuration file.")
73 .setBody(parameters.wireEncode()));
76 return done(ndn::nfd::ControlResponse(204,
"Prefix is already advertised/inserted.")
77 .setBody(parameters.wireEncode()));
83 const ndn::mgmt::CommandContinuation& done)
85 const auto& castParams =
static_cast<const ndn::nfd::ControlParameters&
>(parameters);
89 NLSR_LOG_INFO(
"Withdrawing/Removing name: " << castParams.getName());
91 if (castParams.hasFlags() && castParams.getFlags() ==
PREFIX_FLAG) {
93 return done(ndn::nfd::ControlResponse(205,
"OK").setBody(parameters.wireEncode()));
96 return done(ndn::nfd::ControlResponse(406,
"Failed to open configuration file.")
97 .setBody(parameters.wireEncode()));
100 return done(ndn::nfd::ControlResponse(200,
"OK").setBody(parameters.wireEncode()));
103 if (castParams.hasFlags() && castParams.getFlags() ==
PREFIX_FLAG) {
105 NLSR_LOG_INFO(
"Deleting an already withdrawn name: " << castParams.getName());
107 return done(ndn::nfd::ControlResponse(205,
"OK").setBody(parameters.wireEncode()));
110 return done(ndn::nfd::ControlResponse(406,
"Prefix is already deleted/Failed to open configuration file.")
111 .setBody(parameters.wireEncode()));
114 return done(ndn::nfd::ControlResponse(204,
"Prefix is already withdrawn/removed.")
115 .setBody(parameters.wireEncode()));
void buildAndInstallOwnNameLsa()
Builds a name LSA for this router and then installs it into the LSDB.
bool erase(const ndn::Name &name, const std::string &source="")
Deletes name and source combination.
bool insert(const ndn::Name &name, const std::string &source="")
Inserts name and source combination.
NamePrefixList & m_namePrefixList
virtual std::optional< bool > afterWithdraw(const ndn::Name &prefix)
Save an advertised prefix to the nlsr configuration file.
void advertiseAndInsertPrefix(const ndn::mgmt::ControlParametersBase ¶meters, const ndn::mgmt::CommandContinuation &done)
Add desired name prefix to the advertised name prefix list or insert a prefix into the FIB if paramet...
virtual std::optional< bool > afterAdvertise(const ndn::Name &prefix)
Save an advertised prefix to the nlsr configuration file.
virtual ~CommandProcessor()=0
void withdrawAndRemovePrefix(const ndn::mgmt::ControlParametersBase ¶meters, const ndn::mgmt::CommandContinuation &done)
Remove desired name prefix from the advertised name prefix list or remove a prefix from the FIB if pa...
CommandProcessor(ndn::mgmt::Dispatcher &m_dispatcher, NamePrefixList &m_namePrefixList, Lsdb &lsdb)
Copyright (c) 2014-2018, The University of Memphis, Regents of the University of California.
#define INIT_LOGGER(name)