mgmt: Add router name configuration options

refs: #3026

Change-Id: I44250476e7e7f25cbc2b40d6a59f64b55872b24a
diff --git a/daemon/mgmt/general-config-section.hpp b/daemon/mgmt/general-config-section.hpp
index 6ce5473..e86abd2 100644
--- a/daemon/mgmt/general-config-section.hpp
+++ b/daemon/mgmt/general-config-section.hpp
@@ -25,6 +25,8 @@
 #ifndef NFD_MGMT_GENERAL_CONFIG_SECTION_HPP
 #define NFD_MGMT_GENERAL_CONFIG_SECTION_HPP
 
+#include <ndn-cxx/name.hpp>
+
 namespace nfd {
 
 class ConfigFile;
@@ -34,6 +36,33 @@
 void
 setConfigFile(ConfigFile& configFile);
 
+class RouterName
+{
+public:
+  /**
+   * \brief Return the router name constructed from the network, site, and
+   *        router variables.
+   *
+   *        The router name is constructed in the following manner:
+   *        /<network>/<site>/<ROUTER_MARKER>/<router>
+   *
+   * \return The constructed router name if the network, site, and router
+   *         configuration options are non-empty; otherwise, an empty ndn::Name.
+   */
+  const ndn::Name
+  getName() const;
+
+public:
+  ndn::PartialName network;
+  ndn::PartialName site;
+  ndn::PartialName router;
+
+  static const ndn::PartialName ROUTER_MARKER;
+};
+
+const RouterName&
+getRouterName();
+
 } // namespace general
 
 } // namespace nfd