face: make ProtocolFactory::processConfig pure virtual

refs #3904

Change-Id: I1f2cb0a85b75f9adbabd4c9e5afb7d81567cfbd7
diff --git a/daemon/face/protocol-factory.hpp b/daemon/face/protocol-factory.hpp
index 48f755a..72018f0 100644
--- a/daemon/face/protocol-factory.hpp
+++ b/daemon/face/protocol-factory.hpp
@@ -104,11 +104,7 @@
    */
   virtual void
   processConfig(OptionalConfigSection configSection,
-                FaceSystem::ConfigContext& context)
-  {
-    ///\todo implement in every subclass and make this pure-virtual
-    BOOST_THROW_EXCEPTION(Error("processConfig is not implemented"));
-  }
+                FaceSystem::ConfigContext& context) = 0;
 
   /** \return FaceUri schemes accepted by this ProtocolFactory
    */
diff --git a/tests/daemon/mgmt/face-manager.t.cpp b/tests/daemon/mgmt/face-manager.t.cpp
index 5015151..6b54d74 100644
--- a/tests/daemon/mgmt/face-manager.t.cpp
+++ b/tests/daemon/mgmt/face-manager.t.cpp
@@ -250,7 +250,13 @@
 class TestProtocolFactory : public ProtocolFactory
 {
 public:
-  virtual void
+  void
+  processConfig(OptionalConfigSection configSection,
+                FaceSystem::ConfigContext& context) final
+  {
+  }
+
+  void
   createFace(const FaceUri& uri,
              ndn::nfd::FacePersistency persistency,
              bool wantLocalFieldsEnabled,
@@ -259,7 +265,7 @@
   {
   }
 
-  virtual std::vector<shared_ptr<const Channel>>
+  std::vector<shared_ptr<const Channel>>
   getChannels() const final
   {
     return m_channels;