Debugging and resolving problems with interest serialization/deserialization
diff --git a/examples/interest-header-example.cc b/examples/interest-header-example.cc
index 8a4a57a..83895ad 100644
--- a/examples/interest-header-example.cc
+++ b/examples/interest-header-example.cc
@@ -12,46 +12,68 @@
 #include "ns3/log.h"
 
 using namespace ns3;
+#include <fstream>
 
 NS_LOG_COMPONENT_DEFINE ("InterestHeaderExample");
 
 int
 main (int argc, char *argv[])
 {
+	LogComponentEnable ("InterestHeaderExample", LOG_ALL);
+	
     NS_LOG_INFO ("Test started");
-    uint32_t randomNonce = UniformVariable().GetInteger(1, std::numeric_limits<uint32_t>::max ());
-    Ptr<CcnxNameComponents> testname = Create<CcnxNameComponents> ();
-    (*testname) ("test") ("test2");
-    
-    Ptr<CcnxNameComponents> exclude = Create<CcnxNameComponents> ();
-    (*testname) ("exclude") ("exclude2");
-    
-    Time lifetime = Seconds(4.0);
-    bool child = true;
-    
-    uint32_t maxSuffixComponents = 40;
-    uint32_t minSuffixComponents = 20;
-    
+
     CcnxInterestHeader interestHeader;
-    interestHeader.SetNonce(randomNonce);
+	
+    Ptr<CcnxNameComponents> testname = Create<CcnxNameComponents> ();
+    (*testname) ("first") ("second");
     interestHeader.SetName(testname);
-    interestHeader.SetInterestLifetime(lifetime);
-    interestHeader.SetChildSelector(child);
-    interestHeader.SetExclude(exclude);
-    interestHeader.SetMaxSuffixComponents(maxSuffixComponents);
+	
+    uint32_t minSuffixComponents = 20;
     interestHeader.SetMinSuffixComponents(minSuffixComponents);
+	
+    uint32_t maxSuffixComponents = 40;
+    interestHeader.SetMaxSuffixComponents(maxSuffixComponents);
+	
+    Time lifetime = Seconds(661777) + MicroSeconds(1234);
+    interestHeader.SetInterestLifetime(lifetime);
+
+    bool child = true;
+    interestHeader.SetChildSelector(child);
+
+    Ptr<CcnxNameComponents> exclude = Create<CcnxNameComponents> ();
+    (*exclude) ("exclude1") ("exclude2");
+    interestHeader.SetExclude(exclude);
+
+	UniformVariable random(1, std::numeric_limits<uint32_t>::max ());
+    uint32_t randomNonce = static_cast<uint32_t> (random.GetValue());
+    interestHeader.SetNonce(randomNonce);
+	NS_LOG_INFO ("Source: \n" <<interestHeader);
     
     uint32_t size = interestHeader.GetSerializedSize();
-    NS_LOG_INFO ("Size = " << size);
+    NS_LOG_INFO ("GetSerializedSize = " << size);
     //uint32_t size = 5;
     //NS_TEST_ASSERT_MSG_EQ (false, true, "GetSize = " << size);
     
-    Buffer buf(size);
+    Buffer buf;
+	buf.AddAtStart (size);
     Buffer::Iterator iter = buf.Begin ();
     //interestHeader.
-    //interestHeader.Serialize(iter);
-    
+    interestHeader.Serialize(iter);
+
+	std::ofstream of( "/tmp/file" );
+	of.write (reinterpret_cast<const char*> (buf.PeekData ()), size);
+	of.close ();
+
+	NS_LOG_INFO ("start = " << buf.GetCurrentStartOffset () << " " <<
+				 "end = " << buf.GetCurrentEndOffset ());	
+	
     iter = buf.Begin ();
     CcnxInterestHeader target;
-    
-}
\ No newline at end of file
+	NS_LOG_INFO ("Trying to deserialize");
+	std::cout << "\n";
+	size = target.Deserialize (iter);
+	buf.RemoveAtEnd (size);
+	NS_LOG_INFO ("Deserialized size = " << size);
+	NS_LOG_INFO ("Target: \n" << target);
+}