ndnSIM-v2: Initial implementation

- Name, name::Components, Interest, Data now use ndn-cxx
- Ptr is replaced with shared_ptr for ndn-cxx structures

Credits for the change also to Mickey Sweat, Wentao Shang, and Alex Afanasyev
diff --git a/apps/ndn-app.hpp b/apps/ndn-app.hpp
index edede34..f0ac19b 100644
--- a/apps/ndn-app.hpp
+++ b/apps/ndn-app.hpp
@@ -21,6 +21,9 @@
 #ifndef NDN_APP_H
 #define NDN_APP_H
 
+#include "ns3/ndnSIM/model/ndn-common.hpp"
+#include "ns3/ndnSIM/model/ndn-app-face.hpp"
+
 #include "ns3/application.h"
 #include "ns3/ptr.h"
 #include "ns3/callback.h"
@@ -32,11 +35,6 @@
 
 namespace ndn {
 
-class Interest;
-class Data;
-
-class Face;
-
 /**
  * \ingroup ndn
  * \defgroup ndn-apps NDN applications
@@ -72,14 +70,7 @@
    *                 may be useful to get packet tags
    */
   virtual void
-  OnInterest(Ptr<const Interest> interest);
-
-  /**
-   * @brief Method that will be called every time new NACK arrives
-   * @param interest Interest header
-   */
-  virtual void
-  OnNack(Ptr<const Interest> interest);
+  OnInterest(shared_ptr<const Interest> interest);
 
   /**
    * @brief Method that will be called every time new Data arrives
@@ -88,7 +79,7 @@
    * original packet)
    */
   virtual void
-  OnData(Ptr<const Data> contentObject);
+  OnData(shared_ptr<const Data> data);
 
 protected:
   /**
@@ -110,19 +101,16 @@
   Ptr<Face> m_face; ///< @brief automatically created application face through which application
   /// communicates
 
-  TracedCallback<Ptr<const Interest>, Ptr<App>, Ptr<Face>>
+  TracedCallback<shared_ptr<const Interest>, Ptr<App>, Ptr<Face>>
     m_receivedInterests; ///< @brief App-level trace of received Interests
 
-  TracedCallback<Ptr<const Interest>, Ptr<App>, Ptr<Face>>
-    m_receivedNacks; ///< @brief App-level trace of received NACKs
+  TracedCallbackshared_ptr<const Data>, Ptr<App>,
+    Ptr<Face>> m_receivedDatas; ///< @brief App-level trace of received Data
 
-  TracedCallback<Ptr<const Data>, Ptr<App>, Ptr<Face>>
-    m_receivedDatas; ///< @brief App-level trace of received Data
-
-  TracedCallback<Ptr<const Interest>, Ptr<App>, Ptr<Face>>
+  TracedCallback<shared_ptr<const Interest>, Ptr<App>, Ptr<Face>>
     m_transmittedInterests; ///< @brief App-level trace of transmitted Interests
 
-  TracedCallback<Ptr<const Data>, Ptr<App>, Ptr<Face>>
+  TracedCallback<shared_ptr<const Data>, Ptr<App>, Ptr<Face>>
     m_transmittedDatas; ///< @brief App-level trace of transmitted Data
 };