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/helper/boost-graph-ndn-global-routing-helper.hpp b/helper/boost-graph-ndn-global-routing-helper.hpp
index 85bac72..87d02f5 100644
--- a/helper/boost-graph-ndn-global-routing-helper.hpp
+++ b/helper/boost-graph-ndn-global-routing-helper.hpp
@@ -23,6 +23,8 @@
 
 /// @cond include_hidden
 
+#include "ns3/ndnSIM/model/ndn-common.hpp"
+
 #include <boost/graph/graph_traits.hpp>
 #include <boost/graph/properties.hpp>
 #include <boost/ref.hpp>
diff --git a/helper/ndn-app-helper.hpp b/helper/ndn-app-helper.hpp
index 63fa705..fab41ad 100644
--- a/helper/ndn-app-helper.hpp
+++ b/helper/ndn-app-helper.hpp
@@ -21,6 +21,8 @@
 #ifndef NDN_APP_HELPER_H
 #define NDN_APP_HELPER_H
 
+#include "ns3/ndnSIM/model/ndn-common.hpp"
+
 #include "ns3/object-factory.h"
 #include "ns3/attribute.h"
 #include "ns3/node-container.h"
diff --git a/helper/ndn-face-container.hpp b/helper/ndn-face-container.hpp
index 776a5ec..b5dd2c0 100644
--- a/helper/ndn-face-container.hpp
+++ b/helper/ndn-face-container.hpp
@@ -21,6 +21,8 @@
 #ifndef NDN_FACE_CONTAINER_H
 #define NDN_FACE_CONTAINER_H
 
+#include "ns3/ndnSIM/model/ndn-common.hpp"
+
 #include <stdint.h>
 #include <vector>
 
diff --git a/helper/ndn-global-routing-helper.cpp b/helper/ndn-global-routing-helper.cpp
index 0528be3..972f1d8 100644
--- a/helper/ndn-global-routing-helper.cpp
+++ b/helper/ndn-global-routing-helper.cpp
@@ -29,7 +29,6 @@
 #include "ns3/ndn-l3-protocol.hpp"
 #include "../model/ndn-net-device-face.hpp"
 #include "../model/ndn-global-router.hpp"
-#include "ns3/ndn-name.hpp"
 #include "ns3/ndn-fib.hpp"
 
 #include "ns3/node.h"
@@ -179,7 +178,7 @@
   Ptr<GlobalRouter> gr = node->GetObject<GlobalRouter>();
   NS_ASSERT_MSG(gr != 0, "GlobalRouter is not installed on the node");
 
-  Ptr<Name> name = Create<Name>(boost::lexical_cast<Name>(prefix));
+  auto name = make_shared<Name>(prefix);
   gr->AddLocalPrefix(name);
 }
 
@@ -267,7 +266,7 @@
           // cout << " is unreachable" << endl;
         }
         else {
-          BOOST_FOREACH (const Ptr<const Name>& prefix, i->first->GetLocalPrefixes()) {
+          BOOST_FOREACH (const std::shared_ptr<const Name>& prefix, i->first->GetLocalPrefixes()) {
             NS_LOG_DEBUG(" prefix " << prefix << " reachable via face " << *i->second.get<0>()
                                     << " with distance " << i->second.get<1>() << " with delay "
                                     << i->second.get<2>());
@@ -371,7 +370,8 @@
             // cout << " is unreachable" << endl;
           }
           else {
-            BOOST_FOREACH (const Ptr<const Name>& prefix, i->first->GetLocalPrefixes()) {
+            BOOST_FOREACH (const std::shared_ptr<const Name>& prefix,
+                           i->first->GetLocalPrefixes()) {
               NS_LOG_DEBUG(" prefix " << *prefix << " reachable via face " << *i->second.get<0>()
                                       << " with distance " << i->second.get<1>() << " with delay "
                                       << i->second.get<2>());
diff --git a/helper/ndn-global-routing-helper.hpp b/helper/ndn-global-routing-helper.hpp
index a765ebf..b3dffa4 100644
--- a/helper/ndn-global-routing-helper.hpp
+++ b/helper/ndn-global-routing-helper.hpp
@@ -21,6 +21,8 @@
 #ifndef NDN_GLOBAL_ROUTING_HELPER_H
 #define NDN_GLOBAL_ROUTING_HELPER_H
 
+#include "ns3/ndnSIM/model/ndn-common.hpp"
+
 #include "ns3/ptr.h"
 
 namespace ns3 {
diff --git a/helper/ndn-link-control-helper.hpp b/helper/ndn-link-control-helper.hpp
index 6411a39..c210834 100644
--- a/helper/ndn-link-control-helper.hpp
+++ b/helper/ndn-link-control-helper.hpp
@@ -22,6 +22,8 @@
 #ifndef NDN_LINK_CONTROL_HELPER_H
 #define NDN_LINK_CONTROL_HELPER_H
 
+#include "ns3/ndnSIM/model/ndn-common.hpp"
+
 #include "ns3/ptr.h"
 #include "ns3/node.h"
 
diff --git a/helper/ndn-stack-helper.cpp b/helper/ndn-stack-helper.cpp
index d1c2577..5559d2e 100644
--- a/helper/ndn-stack-helper.cpp
+++ b/helper/ndn-stack-helper.cpp
@@ -42,11 +42,9 @@
 #include "ns3/ndn-forwarding-strategy.hpp"
 #include "ns3/ndn-fib.hpp"
 #include "ns3/ndn-pit.hpp"
-#include "ns3/ndn-name.hpp"
 #include "ns3/ndn-content-store.hpp"
 
 #include "ns3/node-list.h"
-// #include "ns3/loopback-net-device.h"
 
 #include "ns3/data-rate.h"
 
diff --git a/helper/ndn-stack-helper.hpp b/helper/ndn-stack-helper.hpp
index 155c22d..bad1234 100644
--- a/helper/ndn-stack-helper.hpp
+++ b/helper/ndn-stack-helper.hpp
@@ -22,6 +22,8 @@
 #ifndef NDN_STACK_HELPER_H
 #define NDN_STACK_HELPER_H
 
+#include "ns3/ndnSIM/model/ndn-common.hpp"
+
 #include "ns3/packet.h"
 #include "ns3/ptr.h"
 #include "ns3/object-factory.h"