face: consistently use the template method pattern in ProtocolFactory

Change-Id: Ied0bf02cfcdffc7e9b2c28c5452441c01f98ccbc
diff --git a/daemon/face/udp-factory.hpp b/daemon/face/udp-factory.hpp
index 4f9d71d..a57cb25 100644
--- a/daemon/face/udp-factory.hpp
+++ b/daemon/face/udp-factory.hpp
@@ -32,44 +32,23 @@
 namespace nfd {
 namespace face {
 
-/** \brief protocol factory for UDP over IPv4 and IPv6
- *
- *  UDP unicast is available over both IPv4 and IPv6.
- *  UDP multicast is available over IPv4 only.
+/** \brief Protocol factory for UDP over IPv4 and IPv6
  */
 class UdpFactory : public ProtocolFactory
 {
 public:
-  /**
-   * \brief Exception of UdpFactory
-   */
   class Error : public ProtocolFactory::Error
   {
   public:
-    explicit
-    Error(const std::string& what)
-      : ProtocolFactory::Error(what)
-    {
-    }
+    using ProtocolFactory::Error::Error;
   };
 
   static const std::string&
-  getId();
+  getId() noexcept;
 
   explicit
   UdpFactory(const CtorParams& params);
 
-  /** \brief process face_system.udp config section
-   */
-  void
-  processConfig(OptionalConfigSection configSection,
-                FaceSystem::ConfigContext& context) override;
-
-  void
-  createFace(const CreateFaceRequest& req,
-             const FaceCreatedCallback& onCreated,
-             const FaceCreationFailedCallback& onFailure) override;
-
   /**
    * \brief Create UDP-based channel using udp::Endpoint
    *
@@ -89,9 +68,6 @@
   createChannel(const udp::Endpoint& localEndpoint,
                 time::nanoseconds idleTimeout);
 
-  std::vector<shared_ptr<const Channel>>
-  getChannels() const override;
-
   /**
    * \brief Create a multicast UDP face
    *
@@ -120,6 +96,20 @@
                       const udp::Endpoint& multicastEndpoint);
 
 private:
+  /** \brief process face_system.udp config section
+   */
+  void
+  doProcessConfig(OptionalConfigSection configSection,
+                  FaceSystem::ConfigContext& context) override;
+
+  void
+  doCreateFace(const CreateFaceRequest& req,
+               const FaceCreatedCallback& onCreated,
+               const FaceCreationFailedCallback& onFailure) override;
+
+  std::vector<shared_ptr<const Channel>>
+  doGetChannels() const override;
+
   /** \brief Create UDP multicast faces on \p netif if needed by \p m_mcastConfig
    *  \return list of faces (just created or already existing) on \p netif
    */