fw: Basic Forwarder class definition

refs #1131

Change-Id: I6650e88fd60600a8768e1ff236e2cfe4be1c1a4f
diff --git a/daemon/fw/forwarder.hpp b/daemon/fw/forwarder.hpp
new file mode 100644
index 0000000..3f9947a
--- /dev/null
+++ b/daemon/fw/forwarder.hpp
@@ -0,0 +1,43 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/**
+ * Copyright (C) 2014 Named Data Networking Project
+ * See COPYING for copyright and distribution information.
+ */
+
+#ifndef NFD_FW_FORWARDER_HPP
+#define NFD_FW_FORWARDER_HPP
+
+#include "common.hpp"
+#include "face/face.hpp"
+
+namespace ndn {
+
+/**
+ * Forwarder is the main class of NFD.
+ * 
+ * It creates and owns a set of Face listeners
+ */
+class Forwarder
+{
+public:
+  Forwarder(boost::asio::io_service& ioService);
+
+  uint64_t
+  addFace(const shared_ptr<Face>& face);
+
+  void
+  removeFace(const shared_ptr<Face>& face);
+
+  void
+  onInterest(const Face& face, const Interest& interest);
+
+  void
+  onData(const Face& face, const Data& data);
+  
+private:
+  // container< shared_ptr<Face> > m_faces;
+};
+
+}
+
+#endif // NFD_FW_FORWARDER_HPP