group manager: separate user prefix and data type

Change-Id: Iae3468e22ad740a9eea35652231fdd5a51ccb34a
Refs: #3015
diff --git a/src/group-manager.cpp b/src/group-manager.cpp
index 587c488..deac768 100644
--- a/src/group-manager.cpp
+++ b/src/group-manager.cpp
@@ -28,16 +28,18 @@
 namespace ndn {
 namespace gep {
 
-static const std::string E_KEY_COMPONENT = "E-KEY";
-static const std::string D_KEY_COMPONENT = "D-KEY";
+static const name::Component E_KEY_COMPONENT("E-KEY");
+static const name::Component D_KEY_COMPONENT("D-KEY");
+static const name::Component READ_COMPONENT("read");
 
-GroupManager::GroupManager(const Name& managedNamespace, const std::string& dbDir,
+GroupManager::GroupManager(const Name& prefix, const Name& dataType, const std::string& dbDir,
                            const int paramLength, const int freshPeriod)
-  : m_namespace(managedNamespace)
+  : m_namespace(prefix)
   , m_db(dbDir)
   , m_paramLength(paramLength)
   , m_freshPeriod(freshPeriod)
 {
+  m_namespace.append(READ_COMPONENT).append(dataType);
 }
 
 std::list<Data>
diff --git a/src/group-manager.hpp b/src/group-manager.hpp
index 34937da..f8adeee 100644
--- a/src/group-manager.hpp
+++ b/src/group-manager.hpp
@@ -44,8 +44,16 @@
   };
 
 public:
-  /// @brief Create group manager using @p managedNamespace
-  GroupManager(const Name& managedNamespace, const std::string& dbDir,
+  /**
+   * @brief Create group manager
+   *
+   * The namespace of group manager is /<prefix>/read/<dataType>/
+   * The group management information (including user cert, schedule) is stored in a database
+   * at @p dbDir.
+   * The group key will be an RSA key with @p paramLength bytes.
+   * The FreshnessPeriod of data packet carrying the keys will be set to @p freshPeriod.
+   */
+  GroupManager(const Name& prefix, const Name& dataType, const std::string& dbDir,
                const int paramLength, const int freshPeriod);
 
   /**