model: Updated API for pluggable wire format

As of this commit, the selected (default) wire format is controlled via
global variable ndn::WireFormat:

    Config::SetGlobal ("ndn::WireFormat", IntegerValue (ndn::Wire::WIRE_FORMAT_CCNB));

or

    ./waf --run="... --ndn::WireFormat=1

Refs #1008 (http://redmine.named-data.net/issues/1008)
diff --git a/model/ndn-face.cc b/model/ndn-face.cc
index a408dc4..18231f5 100644
--- a/model/ndn-face.cc
+++ b/model/ndn-face.cc
@@ -34,10 +34,8 @@
 
 #include "ns3/ndn-header-helper.h"
 #include "ns3/ndnSIM/utils/ndn-fw-hop-count-tag.h"
-#include "ns3/ndnSIM/model/wire/ndnsim.h"
-#include "ns3/ndnSIM/model/wire/ndnsim/wire-ndnsim.h"
-#include "ns3/ndnSIM/model/wire/ccnb.h"
-#include "ns3/ndnSIM/model/wire/ccnb/wire-ccnb.h"
+
+#include "ns3/ndn-wire.h"
 
 #include <boost/ref.hpp>
 
@@ -59,14 +57,6 @@
                    UintegerValue (0),
                    MakeUintegerAccessor (&Face::m_id),
                    MakeUintegerChecker<uint32_t> ())
-
-    .AddAttribute ("WireFormat",
-                   "Default wire format for the face.  The face will be accepting packets "
-                   "in any supported packet formats, but if encoding requested, it will "
-                   "use default wire format to encode (0 for ndnSIM (default), 1 for CCNb)",
-                   UintegerValue (WIRE_FORMAT_NDNSIM),
-                   MakeUintegerAccessor (&Face::m_wireFormat),
-                   MakeUintegerChecker<uint32_t> ())
     ;
   return tid;
 }
@@ -139,16 +129,7 @@
       return false;
     }
 
-  Ptr<Packet> packet;
-  if (m_wireFormat == WIRE_FORMAT_NDNSIM)
-    packet = wire::ndnSIM::Interest::ToWire (interest);
-  else if (m_wireFormat == WIRE_FORMAT_CCNB)
-    packet = wire::ccnb::Interest::ToWire (interest);
-  else
-    {
-      NS_FATAL_ERROR ("Unsupported format requested");
-    }
-  return Send (packet);
+  return Send (Wire::FromInterest (interest));
 }
 
 bool
@@ -161,16 +142,7 @@
       return false;
     }
 
-  Ptr<Packet> packet;
-  if (m_wireFormat == WIRE_FORMAT_NDNSIM)
-    packet = wire::ndnSIM::Data::ToWire (data);
-  else if (m_wireFormat == WIRE_FORMAT_CCNB)
-    packet = wire::ccnb::Data::ToWire (data);
-  else
-    {
-      NS_FATAL_ERROR ("Unsupported format requested");
-    }
-  return Send (packet);
+  return Send (Wire::FromData (data));
 }
 
 bool
@@ -205,33 +177,20 @@
       switch (type)
         {
         case HeaderHelper::INTEREST_NDNSIM:
-          {
-            Ptr<Interest> interest = wire::ndnSIM::Interest::FromWire (packet);
-            return ReceiveInterest (interest);
-          }
-        case HeaderHelper::CONTENT_OBJECT_NDNSIM:
-          {
-            Ptr<ContentObject> data = wire::ndnSIM::Data::FromWire (packet);
-            return ReceiveData (data);
-          }
+          return ReceiveInterest (Wire::ToInterest (packet, Wire::WIRE_FORMAT_NDNSIM));
         case HeaderHelper::INTEREST_CCNB:
-          {
-            Ptr<Interest> interest = wire::ccnb::Interest::FromWire (packet);
-            return ReceiveInterest (interest);
-          }
+          return ReceiveInterest (Wire::ToInterest (packet, Wire::WIRE_FORMAT_CCNB));
+        case HeaderHelper::CONTENT_OBJECT_NDNSIM:
+          return ReceiveData (Wire::ToData (packet, Wire::WIRE_FORMAT_NDNSIM));
         case HeaderHelper::CONTENT_OBJECT_CCNB:
-          {
-            Ptr<ContentObject> data = wire::ccnb::Data::FromWire (packet);
-            return ReceiveData (data);
-          }
+          return ReceiveData (Wire::ToData (packet, Wire::WIRE_FORMAT_CCNB));
         }
 
       // exception will be thrown if packet is not recognized
     }
   catch (UnknownHeaderException)
     {
-      NS_ASSERT_MSG (false, "Unknown NDN header. Should not happen");
-      NS_LOG_ERROR ("Unknown NDN header. Should not happen");
+      NS_FATAL_ERROR ("Unknown NDN header. Should not happen");
       return false;
     }
 }
@@ -313,56 +272,6 @@
   return os;
 }
 
-uint32_t
-Face::NameToWireSize (Ptr<Name> name) const
-{
-  if (m_wireFormat == WIRE_FORMAT_NDNSIM)
-    return wire::NdnSim::SerializedSizeName (*name);
-  else if (m_wireFormat == WIRE_FORMAT_CCNB)
-    return wire::Ccnb::SerializedSizeName (*name);
-  else
-    {
-      NS_FATAL_ERROR ("Unsupported format requested");
-    }
-  return 0;
-}
-  
-/**
- * @brief Convert name to wire format
- */
-void
-Face::NameToWire (Buffer::Iterator start, Ptr<const Name> name) const
-{
-  if (m_wireFormat == WIRE_FORMAT_NDNSIM)
-    wire::NdnSim::SerializedSizeName (*name);
-  else if (m_wireFormat == WIRE_FORMAT_CCNB)
-    wire::Ccnb::SerializedSizeName (*name);
-  else
-    {
-      NS_FATAL_ERROR ("Unsupported format requested");
-    }
-}
-
-/**
- * @brief Convert name from wire format
- */
-Ptr<Name>
-Face::NameFromWire (Buffer::Iterator start) const
-{
-  if (m_wireFormat == WIRE_FORMAT_NDNSIM)
-    return wire::NdnSim::DeserializeName (start);
-  else if (m_wireFormat == WIRE_FORMAT_CCNB)
-    {
-      return wire::Ccnb::DeserializeName (start);
-    }
-  else
-    {
-      NS_FATAL_ERROR ("Unsupported format requested");
-    }
-  return 0;
-}
-
-
 } // namespace ndn
 } // namespace ns3