30 const std::string& module)
31 : m_dispatcher(dispatcher)
39 return ndn::PartialName(m_module).append(verb);
45 const std::string& module)
47 , m_namePrefixList(namePrefixList)
54 const ndn::Interest& interest,
55 const ndn::mgmt::ControlParameters& parameters,
56 const ndn::mgmt::CommandContinuation& done)
58 const ndn::nfd::ControlParameters& castParams =
59 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::ControlParameters& parameters,
98 const ndn::mgmt::CommandContinuation& done)
100 const ndn::nfd::ControlParameters& castParams =
101 static_cast<const ndn::nfd::ControlParameters&
>(parameters);
105 NLSR_LOG_INFO(
"Withdrawing/Removing name: " << castParams.getName() <<
"\n");
107 if (castParams.hasFlags() && castParams.getFlags() ==
PREFIX_FLAG) {
109 return done(ndn::nfd::ControlResponse(205,
"OK").setBody(parameters.wireEncode()));
112 return done(ndn::nfd::ControlResponse(406,
"Failed to open configuration file.")
113 .setBody(parameters.wireEncode()));
116 return done(ndn::nfd::ControlResponse(200,
"OK").setBody(parameters.wireEncode()));
119 if (castParams.hasFlags() && castParams.getFlags() ==
PREFIX_FLAG) {
121 NLSR_LOG_INFO(
"Deleting an already withdrawn name: " << castParams.getName() <<
"\n");
123 return done(ndn::nfd::ControlResponse(205,
"OK").setBody(parameters.wireEncode()));
126 return done(ndn::nfd::ControlResponse(406,
"Prefix is already deleted/Failed to open configuration file.")
127 .setBody(parameters.wireEncode()));
130 return done(ndn::nfd::ControlResponse(204,
"Prefix is already withdrawn/removed.")
131 .setBody(parameters.wireEncode()));
void buildAndInstallOwnNameLsa()
Builds a name LSA for this router and then installs it into the LSDB.
bool remove(const ndn::Name &name, const std::string &source="")
removes name from NamePrefixList
bool insert(const ndn::Name &name, const std::string &source="")
inserts name into NamePrefixList
virtual ndn::optional< bool > afterAdvertise(const ndn::Name &prefix)
save an advertised prefix to the nlsr configuration file returns bool from the overridden function wh...
NamePrefixList & m_namePrefixList
void withdrawAndRemovePrefix(const ndn::Name &prefix, const ndn::Interest &interest, const ndn::mgmt::ControlParameters ¶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...
virtual ndn::optional< bool > afterWithdraw(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)
void advertiseAndInsertPrefix(const ndn::Name &prefix, const ndn::Interest &interest, const ndn::mgmt::ControlParameters ¶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...
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
#define INIT_LOGGER(name)
Copyright (c) 2014-2020, The University of Memphis, Regents of the University of California,...