fw: FaceTable signals use Face& instead of shared_ptr

refs #3205

Change-Id: I53ecd0d6a13d379eb1dfb872041bdde8501f05e7
diff --git a/daemon/fw/face-table.hpp b/daemon/fw/face-table.hpp
index c8f93d0..7da4aff 100644
--- a/daemon/fw/face-table.hpp
+++ b/daemon/fw/face-table.hpp
@@ -53,7 +53,7 @@
   VIRTUAL_WITH_TESTS void
   add(shared_ptr<Face> face);
 
-  /** \brief add a special Face with a reserved FaceId
+  /** \brief add a special face with a reserved FaceId
    */
   VIRTUAL_WITH_TESTS void
   addReserved(shared_ptr<Face> face, FaceId faceId);
@@ -86,22 +86,22 @@
   end() const;
 
 public: // signals
-  /** \brief fires after a Face is added
+  /** \brief fires after a face is added
    */
-  signal::Signal<FaceTable, shared_ptr<Face>> afterAdd;
+  signal::Signal<FaceTable, Face&> afterAdd;
 
-  /** \brief fires before a Face is removed
+  /** \brief fires before a face is removed
    *
-   *  FaceId is valid when this event is fired
+   *  When this signal is emitted, face is still in FaceTable and has valid FaceId.
    */
-  signal::Signal<FaceTable, shared_ptr<Face>> beforeRemove;
+  signal::Signal<FaceTable, Face&> beforeRemove;
 
 private:
   void
   addImpl(shared_ptr<Face> face, FaceId faceId);
 
   void
-  remove(shared_ptr<Face> face);
+  remove(FaceId faceId);
 
   ForwardRange
   getForwardRange() const;