mgmt: expose ControlCommand module and verb

Change-Id: I34473b5111f632c1d17e9edd4ffcfe8960e1a3aa
diff --git a/ndn-cxx/mgmt/nfd/control-command.hpp b/ndn-cxx/mgmt/nfd/control-command.hpp
index adcf534..a67e28e 100644
--- a/ndn-cxx/mgmt/nfd/control-command.hpp
+++ b/ndn-cxx/mgmt/nfd/control-command.hpp
@@ -132,7 +132,7 @@
   static PartialName
   getName()
   {
-    return PartialName().append(Derived::s_module).append(Derived::s_verb);
+    return PartialName().append(Derived::module).append(Derived::verb);
   }
 
   /**
@@ -144,7 +144,7 @@
   {
     validateRequest(params);
 
-    Interest request(commandPrefix.append(Derived::s_module).append(Derived::s_verb));
+    Interest request(commandPrefix.append(Derived::module).append(Derived::verb));
     Derived::s_requestFormat.encode(request, params);
     return request;
   }
@@ -155,7 +155,7 @@
   static shared_ptr<mgmt::ControlParametersBase>
   parseRequest(const Interest& interest, size_t prefixLen)
   {
-    // /<prefix>/<module>/<verb>
+    // +2 to account for module and verb components
     return Derived::s_requestFormat.decode(interest, prefixLen + 2);
   }
 
@@ -221,13 +221,14 @@
   }
 };
 
-#define NDN_CXX_CONTROL_COMMAND(cmd, module, verb) \
+#define NDN_CXX_CONTROL_COMMAND(module_, verb_) \
+  public: \
+  static inline const ::ndn::name::Component module{std::string_view(module_)}; \
+  static inline const ::ndn::name::Component verb{std::string_view(verb_)}; \
   private: \
-  friend Base; \
-  static inline const ::ndn::name::Component s_module{module}; \
-  static inline const ::ndn::name::Component s_verb{verb}; \
   static const RequestFormat s_requestFormat; \
-  static const ResponseFormat s_responseFormat
+  static const ResponseFormat s_responseFormat; \
+  friend Base
 
 
 /**
@@ -237,7 +238,7 @@
  */
 class FaceCreateCommand : public ControlCommand<FaceCreateCommand>
 {
-  NDN_CXX_CONTROL_COMMAND(FaceCreateCommand, "faces", "create");
+  NDN_CXX_CONTROL_COMMAND("faces", "create");
 
   static void
   applyDefaultsToRequestImpl(ControlParameters& parameters);
@@ -254,7 +255,7 @@
  */
 class FaceUpdateCommand : public ControlCommand<FaceUpdateCommand>
 {
-  NDN_CXX_CONTROL_COMMAND(FaceUpdateCommand, "faces", "update");
+  NDN_CXX_CONTROL_COMMAND("faces", "update");
 
   static void
   applyDefaultsToRequestImpl(ControlParameters& parameters);
@@ -275,7 +276,7 @@
  */
 class FaceDestroyCommand : public ControlCommand<FaceDestroyCommand>
 {
-  NDN_CXX_CONTROL_COMMAND(FaceDestroyCommand, "faces", "destroy");
+  NDN_CXX_CONTROL_COMMAND("faces", "destroy");
 
   static void
   validateRequestImpl(const ControlParameters& parameters);
@@ -292,7 +293,7 @@
  */
 class FibAddNextHopCommand : public ControlCommand<FibAddNextHopCommand>
 {
-  NDN_CXX_CONTROL_COMMAND(FibAddNextHopCommand, "fib", "add-nexthop");
+  NDN_CXX_CONTROL_COMMAND("fib", "add-nexthop");
 
   static void
   applyDefaultsToRequestImpl(ControlParameters& parameters);
@@ -309,7 +310,7 @@
  */
 class FibRemoveNextHopCommand : public ControlCommand<FibRemoveNextHopCommand>
 {
-  NDN_CXX_CONTROL_COMMAND(FibRemoveNextHopCommand, "fib", "remove-nexthop");
+  NDN_CXX_CONTROL_COMMAND("fib", "remove-nexthop");
 
   static void
   applyDefaultsToRequestImpl(ControlParameters& parameters);
@@ -326,7 +327,7 @@
  */
 class CsConfigCommand : public ControlCommand<CsConfigCommand>
 {
-  NDN_CXX_CONTROL_COMMAND(CsConfigCommand, "cs", "config");
+  NDN_CXX_CONTROL_COMMAND("cs", "config");
 };
 
 
@@ -337,7 +338,7 @@
  */
 class CsEraseCommand : public ControlCommand<CsEraseCommand>
 {
-  NDN_CXX_CONTROL_COMMAND(CsEraseCommand, "cs", "erase");
+  NDN_CXX_CONTROL_COMMAND("cs", "erase");
 
   static void
   validateRequestImpl(const ControlParameters& parameters);
@@ -354,7 +355,7 @@
  */
 class StrategyChoiceSetCommand : public ControlCommand<StrategyChoiceSetCommand>
 {
-  NDN_CXX_CONTROL_COMMAND(StrategyChoiceSetCommand, "strategy-choice", "set");
+  NDN_CXX_CONTROL_COMMAND("strategy-choice", "set");
 };
 
 
@@ -365,7 +366,7 @@
  */
 class StrategyChoiceUnsetCommand : public ControlCommand<StrategyChoiceUnsetCommand>
 {
-  NDN_CXX_CONTROL_COMMAND(StrategyChoiceUnsetCommand, "strategy-choice", "unset");
+  NDN_CXX_CONTROL_COMMAND("strategy-choice", "unset");
 
   static void
   validateRequestImpl(const ControlParameters& parameters);
@@ -382,7 +383,7 @@
  */
 class RibRegisterCommand : public ControlCommand<RibRegisterCommand>
 {
-  NDN_CXX_CONTROL_COMMAND(RibRegisterCommand, "rib", "register");
+  NDN_CXX_CONTROL_COMMAND("rib", "register");
 
   static void
   applyDefaultsToRequestImpl(ControlParameters& parameters);
@@ -399,7 +400,7 @@
  */
 class RibUnregisterCommand : public ControlCommand<RibUnregisterCommand>
 {
-  NDN_CXX_CONTROL_COMMAND(RibUnregisterCommand, "rib", "unregister");
+  NDN_CXX_CONTROL_COMMAND("rib", "unregister");
 
   static void
   applyDefaultsToRequestImpl(ControlParameters& parameters);