31 const std::string& module)
32 : m_dispatcher(dispatcher)
40 return ndn::PartialName(m_module).append(verb);
46 const std::string& module)
48 , m_namePrefixList(namePrefixList)
55 const ndn::Interest& interest,
56 const ndn::mgmt::ControlParametersBase& parameters,
57 const ndn::mgmt::CommandContinuation& done)
59 const auto& castParams =
static_cast<const ndn::nfd::ControlParameters&
>(parameters);
63 NLSR_LOG_INFO(
"Advertising name: " << castParams.getName() <<
"\n");
65 if (castParams.hasFlags() && castParams.getFlags() ==
PREFIX_FLAG) {
68 return done(ndn::nfd::ControlResponse(205,
"OK").setBody(parameters.wireEncode()));
71 return done(ndn::nfd::ControlResponse(406,
"Failed to open configuration file.")
72 .setBody(parameters.wireEncode()));
75 return done(ndn::nfd::ControlResponse(200,
"OK").setBody(parameters.wireEncode()));
78 if (castParams.hasFlags() && castParams.getFlags() ==
PREFIX_FLAG) {
80 NLSR_LOG_INFO(
"Saving an already advertised name: " << castParams.getName() <<
"\n");
82 return done(ndn::nfd::ControlResponse(205,
"OK").setBody(parameters.wireEncode()));
85 return done(ndn::nfd::ControlResponse(406,
"Prefix is already Saved/Failed to open configuration file.")
86 .setBody(parameters.wireEncode()));
89 return done(ndn::nfd::ControlResponse(204,
"Prefix is already advertised/inserted.")
90 .setBody(parameters.wireEncode()));
96 const ndn::Interest& interest,
97 const ndn::mgmt::ControlParametersBase& parameters,
98 const ndn::mgmt::CommandContinuation& done)
100 const auto& castParams =
static_cast<const ndn::nfd::ControlParameters&
>(parameters);
104 NLSR_LOG_INFO(
"Withdrawing/Removing name: " << castParams.getName() <<
"\n");
106 if (castParams.hasFlags() && castParams.getFlags() ==
PREFIX_FLAG) {
108 return done(ndn::nfd::ControlResponse(205,
"OK").setBody(parameters.wireEncode()));
111 return done(ndn::nfd::ControlResponse(406,
"Failed to open configuration file.")
112 .setBody(parameters.wireEncode()));
115 return done(ndn::nfd::ControlResponse(200,
"OK").setBody(parameters.wireEncode()));
118 if (castParams.hasFlags() && castParams.getFlags() ==
PREFIX_FLAG) {
120 NLSR_LOG_INFO(
"Deleting an already withdrawn name: " << castParams.getName() <<
"\n");
122 return done(ndn::nfd::ControlResponse(205,
"OK").setBody(parameters.wireEncode()));
125 return done(ndn::nfd::ControlResponse(406,
"Prefix is already deleted/Failed to open configuration file.")
126 .setBody(parameters.wireEncode()));
129 return done(ndn::nfd::ControlResponse(204,
"Prefix is already withdrawn/removed.")
130 .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.
virtual std::optional< bool > afterWithdraw(const ndn::Name &prefix)
save an advertised prefix to the nlsr configuration file returns bool from the overridden function wh...
void withdrawAndRemovePrefix(const ndn::Name &prefix, const ndn::Interest &interest, 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...
void advertiseAndInsertPrefix(const ndn::Name &prefix, const ndn::Interest &interest, 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...
NamePrefixList & m_namePrefixList
virtual std::optional< bool > afterAdvertise(const ndn::Name &prefix)
save an advertised prefix to the nlsr configuration file returns bool from the overridden function wh...
CommandManagerBase(ndn::mgmt::Dispatcher &m_dispatcher, NamePrefixList &m_namePrefixList, Lsdb &lsdb, const std::string &module)
ManagerBase(ndn::mgmt::Dispatcher &m_dispatcher, const std::string &module)
ndn::PartialName makeRelPrefix(const std::string &verb) const
Generate the relative prefix for a handler by appending the verb name to the module name.
Copyright (c) 2014-2018, The University of Memphis, Regents of the University of California.
#define INIT_LOGGER(name)
Copyright (c) 2014-2020, The University of Memphis, Regents of the University of California.