fw: give strategy access to FaceTable

refs #2272
Change-Id: I1a390dac1da8489adcffb71d488b3b8a52d257bd
diff --git a/daemon/fw/strategy.cpp b/daemon/fw/strategy.cpp
index 96f132f..f1a16f5 100644
--- a/daemon/fw/strategy.cpp
+++ b/daemon/fw/strategy.cpp
@@ -33,7 +33,9 @@
 NFD_LOG_INIT("Strategy");
 
 Strategy::Strategy(Forwarder& forwarder, const Name& name)
-  : m_name(name)
+  : afterAddFace(forwarder.getFaceTable().onAdd)
+  , beforeRemoveFace(forwarder.getFaceTable().onRemove)
+  , m_name(name)
   , m_forwarder(forwarder)
   , m_measurements(m_forwarder.getMeasurements(),
                    m_forwarder.getStrategyChoice(), this)
diff --git a/daemon/fw/strategy.hpp b/daemon/fw/strategy.hpp
index e1ff23c..813cce0 100644
--- a/daemon/fw/strategy.hpp
+++ b/daemon/fw/strategy.hpp
@@ -131,6 +131,13 @@
   shared_ptr<Face>
   getFace(FaceId id);
 
+  const FaceTable&
+  getFaceTable();
+
+protected: // accessors
+  signal::Signal<FaceTable, shared_ptr<Face>>& afterAddFace;
+  signal::Signal<FaceTable, shared_ptr<Face>>& beforeRemoveFace;
+
 private:
   Name m_name;
 
@@ -175,6 +182,12 @@
   return m_forwarder.getFace(id);
 }
 
+inline const FaceTable&
+Strategy::getFaceTable()
+{
+  return m_forwarder.getFaceTable();
+}
+
 } // namespace fw
 } // namespace nfd