Add onRequestUpdateCallback in CA and also fix a status bug

Change-Id: I82ace0ee982b4b1bb5c1c10d316b314d9300348e
diff --git a/src/ca-module.hpp b/src/ca-module.hpp
index 39597e9..0e768da 100644
--- a/src/ca-module.hpp
+++ b/src/ca-module.hpp
@@ -47,6 +47,11 @@
    */
   using ProbeHandler = function<std::string (const std::string&)>;
 
+  /**
+   * @brief The function would be invoked whenever the certificate request gets update
+   */
+  using RequestUpdateCallback = function<void (const CertificateRequest&)>;
+
 public:
   CaModule(Face& face, security::v2::KeyChain& keyChain, const std::string& configPath,
            const std::string& storageType = "ca-storage-sqlite3");
@@ -71,6 +76,12 @@
     m_probeHandler = handler;
   }
 
+  void
+  setRequestUpdateCallback(const RequestUpdateCallback& onUpateCallback)
+  {
+    m_requestUpdateCallback = onUpateCallback;
+  }
+
 PUBLIC_WITH_TESTS_ELSE_PRIVATE:
   void
   handleProbe(const Interest& request, const CaItem& caItem);
@@ -105,13 +116,14 @@
   static Block
   dataContentFromJson(const JsonSection& jsonSection);
 
-PUBLIC_WITH_TESTS_ELSE_PROTECTED:
+PUBLIC_WITH_TESTS_ELSE_PRIVATE:
   Face& m_face;
   CaConfig m_config;
   unique_ptr<CaStorage> m_storage;
   security::v2::KeyChain& m_keyChain;
 
   ProbeHandler m_probeHandler;
+  RequestUpdateCallback m_requestUpdateCallback;
   std::list<const RegisteredPrefixId*> m_registeredPrefixIds;
   std::list<const InterestFilterId*> m_interestFilterIds;
 };