doc+src: More reorganization and fixing of README

Change-Id: I8ff2dcdabd78f38cc0d5b826883121a9444ef664
diff --git a/README.md b/README.md
index 6c66ba2..ace6f72 100644
--- a/README.md
+++ b/README.md
@@ -1,37 +1,51 @@
-Traffic Generator For NDN (ndn-traffic)
-=======================================
+Traffic Generator For NDN (ndn-traffic-generator)
+=================================================
 
 This tool is designed to generate interest and data traffic in an NDN network.
 The client and server tool accept traffic configuration files which can be
 used to specify the pattern of NDN traffic that is required to be generated.
-Sample configuration files are provided which include instructions on how 
-to configure various parameters. 
+Sample configuration files are provided which include instructions on how
+to configure various parameters.
 
-This is an application tool developed over ndn-cpp APIs for TLV packet
-based communication over NDN configured network. The NDN network has to
-be first created with 'ndnx' and 'ndnd-tlv'. This is followed by environment
-security setup with 'ndn-cpp-security-tools'. The application also requires
-installation of ndn-cpp and CPP boost libraries. The installations need to
-follow a strict order as the ndnd
+## Prerequisites ##
 
-To run the following must be ensured(FOLLOW ORDER STRICTLY)
+Compiling and running ndn-traffic-generator requires the following dependencies:
 
-1. Install ndnx (install all necessary dependencies)
-2. Install CPP Boost Library > 1.47
+1. C++ Boost Libraries version >= 1.48
+
+    On Ubuntu 12.04:
 
         sudo apt-get install libboost1.48-all-dev
 
-3. Install ndn-cpp-dev (install all necessary dependencies except boost)
-4. Install ndnd-tlv install all necessary dependencies except boost)
-5. Install and Configure Security Environment with ndn-cpp-security-tools
+    On Ubuntu 13.10 and later
+
+        sudo apt-get install libboost-all-dev
+
+    On OSX with macports
+
+        sudo port install boost
+
+    On OSX with brew
+
+        brew install boost
+
+    On other platforms Boost Libraries can be installed from the packaged version for the
+    distribution, if the version matches requirements, or compiled from source
+    (http://www.boost.org)
+
+2. ndn-cpp-dev library (https://github.com/named-data/ndn-cpp-dev)
+
+    For detailed installation instructions refer to
+    https://github.com/named-data/ndn-cpp-dev/blob/master/INSTALL.md and/or
+    https://github.com/named-data/ndn-cpp-dev
+
+3. NDN forwarding daemon (https://github.com/named-data/NFD)
 
 -----------------------------------------------------
 
 ## 1. Compile And Installation Instructions: ##
 
-    git clone git://github.com/jeraldabraham/ndn-traffic ndn-traffic
-    cd ndn-traffic
-    ./waf configure 
+    ./waf configure
     ./waf
     sudo ./waf install
 
@@ -57,26 +71,21 @@
 
 __ON MACHINE #1__
 
-Start the ndnd-tlv daemon
-
-        ndnd-tlv-start
+(NDN forwarding daemon should be running)
 
 Start traffic server
 
-        ndntrafficserver NDNTrafficServer.conf
+        ndn-traffic-server ndn-traffic-server.conf
 
 __ON MACHINE #2__
 
-Start the ndnd-tlv daemon
-
-        ndnd-tlv-start
+(NDN forwarding daemon should be running)
 
 Start the traffic client
-        
-        ndntraffic NDNTrafficClient.conf
+
+        ndn-traffic ndn-traffic-client.conf
 
 
 * These tools need not be used together and can be used individually as well.
 * Please refer sample configuration files provided for details on how to create your own.
 * Use command line options shown above to adjust traffic configuration.
-
diff --git a/NDNTrafficClient.sample.conf b/ndn-traffic-client.conf.sample
similarity index 99%
rename from NDNTrafficClient.sample.conf
rename to ndn-traffic-client.conf.sample
index 49d63da..d3556fd 100644
--- a/NDNTrafficClient.sample.conf
+++ b/ndn-traffic-client.conf.sample
@@ -47,3 +47,4 @@
 Name=/example/B
 ExpectedContent=BBBBBBBB
 ##########
+
diff --git a/NDNTrafficServer.sample.conf b/ndn-traffic-server.conf.sample
similarity index 99%
rename from NDNTrafficServer.sample.conf
rename to ndn-traffic-server.conf.sample
index b4b98e9..ab95676 100644
--- a/NDNTrafficServer.sample.conf
+++ b/ndn-traffic-server.conf.sample
@@ -33,3 +33,4 @@
 Name=/example/B
 Content=BBBBBBBB
 ##########
+
diff --git a/logger.hpp b/src/logger.hpp
similarity index 95%
rename from logger.hpp
rename to src/logger.hpp
index 192f28f..706c6df 100644
--- a/logger.hpp
+++ b/src/logger.hpp
@@ -84,14 +84,16 @@
               std::cout << "Log File Initialized: " << logFilename << std::endl;
             else
               {
-                std::cout << "ERROR - Unable To Initialize A Log File At: " << m_logLocation << std::endl
+                std::cout << "ERROR - Unable To Initialize A Log File At: "
+                          << m_logLocation << std::endl
                           << "Using Default Output For Logging." << std::endl;
                 m_logLocation = "";
               }
           }
         else
           {
-            std::cout << "Environment Variable NDN_TRAFFIC_LOGFOLDER Should Be A Folder." << std::endl
+            std::cout << "Environment Variable NDN_TRAFFIC_LOGFOLDER Should Be A Folder."
+                      << std::endl
                       << "Using Default Output For Logging." << std::endl;
             m_logLocation = "";
           }
diff --git a/ndn-traffic-client.cpp b/src/ndn-traffic-client.cpp
similarity index 77%
rename from ndn-traffic-client.cpp
rename to src/ndn-traffic-client.cpp
index 6206303..135d4ce 100644
--- a/ndn-traffic-client.cpp
+++ b/src/ndn-traffic-client.cpp
@@ -28,8 +28,7 @@
 class NdnTrafficClient
 {
 public:
-
-  NdnTrafficClient( char* programName )
+  NdnTrafficClient(char* programName)
     : m_logger("NDNTrafficClient")
     , ioService_(new boost::asio::io_service)
     , face_(ioService_)
@@ -51,7 +50,6 @@
   class InterestTrafficConfiguration
   {
   public:
-
     InterestTrafficConfiguration()
     {
       trafficPercentage = -1;
@@ -79,7 +77,7 @@
     }
 
     void
-    printTrafficConfiguration( Logger& logger )
+    printTrafficConfiguration(Logger& logger)
     {
       std::string detail;
       detail = "";
@@ -121,7 +119,7 @@
     }
 
     bool
-    extractParameterValue( std::string detail, std::string& parameter, std::string& value )
+    extractParameterValue(const std::string& detail, std::string& parameter, std::string& value)
     {
       int i;
       std::string allowedCharacters = ":/+._-%";
@@ -136,7 +134,8 @@
       if (i == detail.length())
         return false;
       i++;
-      while ((std::isalnum(detail[i]) || allowedCharacters.find(detail[i]) != std::string::npos) && i < detail.length())
+      while ((std::isalnum(detail[i]) || allowedCharacters.find(detail[i]) != std::string::npos) &&
+             i < detail.length())
         {
           value += detail[i];
           i++;
@@ -147,7 +146,7 @@
     }
 
     bool
-    processConfigurationDetail( std::string detail, Logger& logger, int lineNumber )
+    processConfigurationDetail(const std::string& detail, Logger& logger, int lineNumber)
     {
       std::string parameter, value;
       if (extractParameterValue(detail, parameter, value))
@@ -185,11 +184,13 @@
           else if (parameter == "ExpectedContent")
             expectedContent = value;
           else
-            logger.log("Line "+toString(lineNumber)+" \t- Invalid Parameter='"+parameter+"'", false, true);
+            logger.log("Line "+toString(lineNumber) +
+                       " \t- Invalid Parameter='"+parameter+"'", false, true);
         }
       else
         {
-          logger.log("Line "+toString(lineNumber)+" \t- Improper Traffic Configuration Line- "+detail, false, true);
+          logger.log("Line "+toString(lineNumber) +
+                     " \t- Improper Traffic Configuration Line- "+detail, false, true);
           return false;
         }
       return true;
@@ -223,8 +224,7 @@
     double totalInterestRoundTripTime;
     int contentInconsistencies;
     std::string expectedContent;
-
-  };
+  }; // class InterestTrafficConfiguration
 
   int
   getDefaultInterestLifetime()
@@ -233,7 +233,7 @@
   }
 
   static std::string
-  toString( int integerValue )
+  toString(int integerValue)
   {
     std::stringstream stream;
     stream << integerValue;
@@ -241,7 +241,7 @@
   }
 
   static std::string
-  toString( double doubleValue )
+  toString(double doubleValue)
   {
     std::stringstream stream;
     stream << doubleValue;
@@ -249,7 +249,7 @@
   }
 
   static int
-  toInteger( std::string stringValue )
+  toInteger(const std::string& stringValue)
   {
     int integerValue;
     std::stringstream stream(stringValue);
@@ -324,57 +324,64 @@
     double loss, average, inconsistency;
 
     m_logger.log("\n\n== Interest Traffic Report ==\n", false, true);
-    m_logger.log("Total Traffic Pattern Types = "+toString((int)trafficPattern_.size()), false, true);
-    m_logger.log("Total Interests Sent        = "+toString(totalInterestSent_), false, true);
-    m_logger.log("Total Responses Received    = "+toString(totalInterestReceived_), false, true);
+    m_logger.log("Total Traffic Pattern Types = " + toString((int)trafficPattern_.size()), false, true);
+    m_logger.log("Total Interests Sent        = " + toString(totalInterestSent_), false, true);
+    m_logger.log("Total Responses Received    = " + toString(totalInterestReceived_), false, true);
     if (totalInterestSent_ > 0)
       loss = (totalInterestSent_-totalInterestReceived_)*100.0/totalInterestSent_;
     else
       loss = 0;
-    m_logger.log("Total Interest Loss         = "+toString(loss)+"%", false, true);
+    m_logger.log("Total Interest Loss         = " + toString(loss)+"%", false, true);
     if (totalInterestReceived_ > 0)
-    {
-      average = totalInterestRoundTripTime_/totalInterestReceived_;
-      inconsistency = contentInconsistencies_*100.0/totalInterestReceived_;
-    }
+      {
+        average = totalInterestRoundTripTime_/totalInterestReceived_;
+        inconsistency = contentInconsistencies_*100.0/totalInterestReceived_;
+      }
     else
-    {
-      average = 0;
-      inconsistency = 0;
-    }
-    m_logger.log("Total Data Inconsistency    = "+toString(inconsistency)+"%", false, true);
-    m_logger.log("Total Round Trip Time       = "+toString(totalInterestRoundTripTime_)+"ms", false, true);
-    m_logger.log("Average Round Trip Time     = "+toString(average)+"ms\n", false, true);
+      {
+        average = 0;
+        inconsistency = 0;
+      }
+    m_logger.log("Total Data Inconsistency    = " + toString(inconsistency)+"%", false, true);
+    m_logger.log("Total Round Trip Time       = " +
+                 toString(totalInterestRoundTripTime_)+"ms", false, true);
+    m_logger.log("Average Round Trip Time     = " + toString(average)+"ms\n", false, true);
 
     for (patternId=0; patternId<trafficPattern_.size(); patternId++)
       {
-        m_logger.log("Traffic Pattern Type #"+toString(patternId+1), false, true);
+        m_logger.log("Traffic Pattern Type #" + toString(patternId+1), false, true);
         trafficPattern_[patternId].printTrafficConfiguration(m_logger);
-        m_logger.log("Total Interests Sent        = "+toString(trafficPattern_[patternId].totalInterestSent), false, true);
-        m_logger.log("Total Responses Received    = "+toString(trafficPattern_[patternId].totalInterestReceived), false, true);
+        m_logger.log("Total Interests Sent        = " +
+                     toString(trafficPattern_[patternId].totalInterestSent), false, true);
+        m_logger.log("Total Responses Received    = " +
+                     toString(trafficPattern_[patternId].totalInterestReceived), false, true);
         if (trafficPattern_[patternId].totalInterestSent > 0)
           {
-            loss = (trafficPattern_[patternId].totalInterestSent-trafficPattern_[patternId].totalInterestReceived);
+            loss = (trafficPattern_[patternId].totalInterestSent -
+                    trafficPattern_[patternId].totalInterestReceived);
             loss *= 100.0;
             loss /= trafficPattern_[patternId].totalInterestSent;
           }
         else
           loss = 0;
-        m_logger.log("Total Interest Loss         = "+toString(loss)+"%", false, true);
+        m_logger.log("Total Interest Loss         = " + toString(loss)+"%", false, true);
         if (trafficPattern_[patternId].totalInterestReceived > 0)
-        {
-          average = trafficPattern_[patternId].totalInterestRoundTripTime/trafficPattern_[patternId].totalInterestReceived;
-          inconsistency = trafficPattern_[patternId].contentInconsistencies;
-          inconsistency = inconsistency*100.0/trafficPattern_[patternId].totalInterestReceived;
-        }
+          {
+            average = (trafficPattern_[patternId].totalInterestRoundTripTime /
+                       trafficPattern_[patternId].totalInterestReceived);
+            inconsistency = trafficPattern_[patternId].contentInconsistencies;
+            inconsistency = inconsistency * 100.0 / trafficPattern_[patternId].totalInterestReceived;
+          }
         else
-        {
-          average = 0;
-          inconsistency = 0;
-        }
-        m_logger.log("Total Data Inconsistency    = "+toString(inconsistency)+"%", false, true);
-        m_logger.log("Total Round Trip Time       = "+toString(trafficPattern_[patternId].totalInterestRoundTripTime)+"ms", false, true);
-        m_logger.log("Average Round Trip Time     = "+toString(average)+"ms\n", false, true);
+          {
+            average = 0;
+            inconsistency = 0;
+          }
+        m_logger.log("Total Data Inconsistency    = " + toString(inconsistency)+"%", false, true);
+        m_logger.log("Total Round Trip Time       = " +
+                     toString(trafficPattern_[patternId].totalInterestRoundTripTime)+"ms",
+                     false, true);
+        m_logger.log("Average Round Trip Time     = " + toString(average)+"ms\n", false, true);
       }
   }
 
@@ -411,7 +418,8 @@
                     while (getline(patternFile, patternLine) && std::isalpha(patternLine[0]))
                       {
                         lineNumber++;
-                        if (!interestData.processConfigurationDetail(patternLine, m_logger, lineNumber))
+                        if (!interestData.processConfigurationDetail(patternLine,
+                                                                     m_logger, lineNumber))
                           {
                             skipLine = true;
                             break;
@@ -431,7 +439,8 @@
         patternFile.close();
         if (!checkTrafficPatternCorrectness())
           {
-            m_logger.log("ERROR - Traffic Configuration Provided Is Not Proper- " + configurationFile_, false, true);
+            m_logger.log("ERROR - Traffic Configuration Provided Is Not Proper- " +
+                         configurationFile_, false, true);
             m_logger.shutdownLogger();
             exit(1);
           }
@@ -445,7 +454,8 @@
       }
     else
       {
-        m_logger.log("ERROR - Unable To Open Traffic Configuration File: " + configurationFile_, false, true);
+        m_logger.log("ERROR - Unable To Open Traffic Configuration File: " +
+                     configurationFile_, false, true);
         m_logger.shutdownLogger();
         exit(1);
       }
@@ -462,14 +472,16 @@
           }
         else
           {
-            m_logger.log("ERROR - Traffic Configuration File Is Not A Regular File: " + configurationFile_, false, true);
+            m_logger.log("ERROR - Traffic Configuration File Is Not A Regular File: " +
+                         configurationFile_, false, true);
             m_logger.shutdownLogger();
             exit(1);
           }
       }
     else
       {
-        m_logger.log("ERROR - Traffic Configuration File Does Not Exist: " + configurationFile_, false, true);
+        m_logger.log("ERROR - Traffic Configuration File Does Not Exist: " +
+                     configurationFile_, false, true);
         m_logger.shutdownLogger();
         exit(1);
       }
@@ -543,19 +555,19 @@
     totalInterestReceived_++;
     trafficPattern_[patternId].totalInterestReceived++;
     if (trafficPattern_[patternId].expectedContent != "")
-    {
-      receivedContent = (char*)(data.getContent().value());
-      receivedContentLength = data.getContent().value_size();
-      receivedContent = receivedContent.substr(0, receivedContentLength);
-      if (receivedContent != trafficPattern_[patternId].expectedContent)
       {
-        contentInconsistencies_++;
-        trafficPattern_[patternId].contentInconsistencies++;
-        logLine += ", IsConsistent=No";
+        receivedContent = (char*)(data.getContent().value());
+        receivedContentLength = data.getContent().value_size();
+        receivedContent = receivedContent.substr(0, receivedContentLength);
+        if (receivedContent != trafficPattern_[patternId].expectedContent)
+          {
+            contentInconsistencies_++;
+            trafficPattern_[patternId].contentInconsistencies++;
+            logLine += ", IsConsistent=No";
+          }
+        else
+          logLine += ", IsConsistent=Yes";
       }
-      else
-        logLine += ", IsConsistent=Yes";
-    }
     else
       logLine += ", IsConsistent=NotChecked";
     m_logger.log(logLine, true, false);
@@ -622,7 +634,8 @@
                 if (trafficPattern_[patternId].maxSuffixComponents >= 0)
                   interest.setMaxSuffixComponents(trafficPattern_[patternId].maxSuffixComponents);
                 Exclude exclude;
-                if (trafficPattern_[patternId].excludeBefore != "" &&  trafficPattern_[patternId].excludeAfter != "")
+                if (trafficPattern_[patternId].excludeBefore != "" &&
+                    trafficPattern_[patternId].excludeAfter != "")
                   {
                     exclude.excludeRange(name::Component(trafficPattern_[patternId].excludeAfter),
                                          name::Component(trafficPattern_[patternId].excludeBefore));
@@ -638,20 +651,24 @@
                     exclude.excludeAfter(name::Component(trafficPattern_[patternId].excludeAfter));
                     interest.setExclude(exclude);
                   }
-                if (trafficPattern_[patternId].excludeBeforeBytes > 0 &&  trafficPattern_[patternId].excludeAfterBytes > 0)
+                if (trafficPattern_[patternId].excludeBeforeBytes > 0 &&
+                    trafficPattern_[patternId].excludeAfterBytes > 0)
                   {
-                    exclude.excludeRange(name::Component(getRandomByteString(trafficPattern_[patternId].excludeAfterBytes)),
-                                         name::Component(getRandomByteString(trafficPattern_[patternId].excludeBeforeBytes)));
+                    exclude.excludeRange(
+                      name::Component(getRandomByteString(trafficPattern_[patternId].excludeAfterBytes)),
+                      name::Component(getRandomByteString(trafficPattern_[patternId].excludeBeforeBytes)));
                     interest.setExclude(exclude);
                   }
                 else if (trafficPattern_[patternId].excludeBeforeBytes > 0)
                   {
-                    exclude.excludeBefore(name::Component(getRandomByteString(trafficPattern_[patternId].excludeBeforeBytes)));
+                    exclude.excludeBefore(
+                      name::Component(getRandomByteString(trafficPattern_[patternId].excludeBeforeBytes)));
                     interest.setExclude(exclude);
                   }
                 else if (trafficPattern_[patternId].excludeAfterBytes > 0)
                   {
-                    exclude.excludeAfter(name::Component(getRandomByteString(trafficPattern_[patternId].excludeAfterBytes)));
+                    exclude.excludeAfter(
+                      name::Component(getRandomByteString(trafficPattern_[patternId].excludeAfterBytes)));
                     interest.setExclude(exclude);
                   }
 
@@ -677,26 +694,28 @@
                 if (trafficPattern_[patternId].scope >= 0)
                   interest.setScope(trafficPattern_[patternId].scope);
                 if (trafficPattern_[patternId].interestLifetime >= 0)
-                  interest.setInterestLifetime(time::milliseconds(trafficPattern_[patternId].interestLifetime));
+                  interest.setInterestLifetime(
+                    time::milliseconds(trafficPattern_[patternId].interestLifetime));
                 else
-                  interest.setInterestLifetime(time::milliseconds(getDefaultInterestLifetime()));
+                  interest.setInterestLifetime(
+                    time::milliseconds(getDefaultInterestLifetime()));
                 try {
                   totalInterestSent_++;
                   trafficPattern_[patternId].totalInterestSent++;
                   boost::posix_time::ptime sentTime;
                   sentTime = boost::posix_time::microsec_clock::local_time();
                   face_.expressInterest(interest,
-                                        func_lib::bind( &NdnTrafficClient::onData,
-                                                        this, boost::ref(face_),
-                                                        _1, _2, totalInterestSent_,
-                                                        trafficPattern_[patternId].totalInterestSent,
-                                                        patternId,
-                                                        sentTime),
-                                        func_lib::bind( &NdnTrafficClient::onTimeout,
-                                                        this, boost::ref(face_),
-                                                        _1, totalInterestSent_,
-                                                        trafficPattern_[patternId].totalInterestSent,
-                                                        patternId));
+                                        bind( &NdnTrafficClient::onData,
+                                              this, boost::ref(face_),
+                                              _1, _2, totalInterestSent_,
+                                              trafficPattern_[patternId].totalInterestSent,
+                                              patternId,
+                                              sentTime),
+                                        bind( &NdnTrafficClient::onTimeout,
+                                              this, boost::ref(face_),
+                                              _1, totalInterestSent_,
+                                              trafficPattern_[patternId].totalInterestSent,
+                                              patternId));
                   std::string logLine;
                   logLine = "";
                   logLine += "Sending Interest   - PatternType="+toString(patternId+1);
@@ -706,10 +725,10 @@
                   m_logger.log(logLine, true, false);
                   deadlineTimer->expires_at(deadlineTimer->expires_at() +
                                             boost::posix_time::millisec(interestInterval_));
-                  deadlineTimer->async_wait(boost::bind(&NdnTrafficClient::generateTraffic,
-                                                        this,
-                                                        boost::asio::placeholders::error,
-                                                        deadlineTimer));
+                  deadlineTimer->async_wait(bind(&NdnTrafficClient::generateTraffic,
+                                                 this,
+                                                 boost::asio::placeholders::error,
+                                                 deadlineTimer));
                 }
                 catch (std::exception &e) {
                   m_logger.log("ERROR: "+(std::string)e.what(), true, true);
@@ -721,10 +740,10 @@
           {
             deadlineTimer->expires_at(deadlineTimer->expires_at() +
                                       boost::posix_time::millisec(interestInterval_));
-            deadlineTimer->async_wait(boost::bind(&NdnTrafficClient::generateTraffic,
-                                                  this,
-                                                  boost::asio::placeholders::error,
-                                                  deadlineTimer));
+            deadlineTimer->async_wait(bind(&NdnTrafficClient::generateTraffic,
+                                           this,
+                                           boost::asio::placeholders::error,
+                                           deadlineTimer));
           }
       }
   }
@@ -733,15 +752,15 @@
   initialize()
   {
     boost::asio::signal_set signalSet(*ioService_, SIGINT, SIGTERM);
-    signalSet.async_wait(boost::bind(&NdnTrafficClient::signalHandler, this));
+    signalSet.async_wait(bind(&NdnTrafficClient::signalHandler, this));
     m_logger.initializeLog(instanceId_);
     initializeTrafficConfiguration();
     boost::asio::deadline_timer deadlineTimer(*ioService_,
                                               boost::posix_time::millisec(interestInterval_));
-    deadlineTimer.async_wait(boost::bind(&NdnTrafficClient::generateTraffic,
-                                         this,
-                                         boost::asio::placeholders::error,
-                                         &deadlineTimer));
+    deadlineTimer.async_wait(bind(&NdnTrafficClient::generateTraffic,
+                                  this,
+                                  boost::asio::placeholders::error,
+                                  &deadlineTimer));
     try {
       face_.processEvents();
     }
diff --git a/ndn-traffic-server.cpp b/src/ndn-traffic-server.cpp
similarity index 82%
rename from ndn-traffic-server.cpp
rename to src/ndn-traffic-server.cpp
index 5efcb0a..0769c69 100644
--- a/ndn-traffic-server.cpp
+++ b/src/ndn-traffic-server.cpp
@@ -21,8 +21,7 @@
 class NdnTrafficServer
 {
 public:
-  
-  NdnTrafficServer( char* programName )
+  NdnTrafficServer(char* programName)
     : m_logger("NDNTrafficServer")
     , ioService_(new boost::asio::io_service)
     , face_(ioService_)
@@ -40,7 +39,6 @@
   class DataTrafficConfiguration
   {
   public:
-
     DataTrafficConfiguration()
     {
       name = "";
@@ -52,7 +50,7 @@
     }
 
     void
-    printTrafficConfiguration( Logger& logger )
+    printTrafficConfiguration(Logger& logger)
     {
       std::string detail;
       detail = "";
@@ -73,7 +71,8 @@
 
 
     bool
-    extractParameterValue( std::string detail, std::string& parameter, std::string& value )
+    extractParameterValue(const std::string& detail,
+                          std::string& parameter, std::string& value)
     {
       int i;
       std::string allowedCharacters = ":/+._-%";
@@ -88,7 +87,9 @@
       if (i == detail.length())
         return false;
       i++;
-      while ((std::isalnum(detail[i]) || allowedCharacters.find(detail[i]) != std::string::npos) && i < detail.length())
+      while ((std::isalnum(detail[i]) ||
+              allowedCharacters.find(detail[i]) != std::string::npos) &&
+             i < detail.length())
         {
           value += detail[i];
           i++;
@@ -99,7 +100,8 @@
     }
 
     bool
-    processConfigurationDetail( std::string detail, Logger& logger, int lineNumber )
+    processConfigurationDetail(const std::string& detail,
+                               Logger& logger, int lineNumber)
     {
       std::string parameter, value;
       if (extractParameterValue(detail, parameter, value))
@@ -115,11 +117,13 @@
           else if (parameter == "Content")
             content = value;
           else
-            logger.log("Line "+toString(lineNumber)+" \t- Invalid Parameter='"+parameter+"'", false, true);
+            logger.log("Line "+toString(lineNumber)+
+                       " \t- Invalid Parameter='"+parameter+"'", false, true);
         }
       else
         {
-          logger.log("Line "+toString(lineNumber)+" \t- Improper Traffic Configuration Line- "+detail, false, true);
+          logger.log("Line "+toString(lineNumber)+
+                     " \t- Improper Traffic Configuration Line- "+detail, false, true);
           return false;
         }
       return true;
@@ -147,7 +151,7 @@
   }
 
   static std::string
-  toString( int integerValue )
+  toString(int integerValue)
   {
     std::stringstream stream;
     stream << integerValue;
@@ -155,7 +159,7 @@
   }
 
   static int
-  toInteger( std::string stringValue )
+  toInteger(std::string stringValue)
   {
     int integerValue;
     std::stringstream stream(stringValue);
@@ -185,7 +189,7 @@
   }
 
   void
-  setContentDelayTime( int contentDelayTime )
+  setContentDelayTime(int contentDelayTime)
   {
     if (contentDelayTime < 0)
       usage();
@@ -193,7 +197,7 @@
   }
 
   void
-  setConfigurationFile( char* configurationFile )
+  setConfigurationFile(char* configurationFile)
   {
     configurationFile_ = configurationFile;
   }
@@ -213,13 +217,17 @@
   {
     int patternId;
     m_logger.log("\n\n== Interest Traffic Report ==\n", false, true);
-    m_logger.log("Total Traffic Pattern Types = "+toString((int)trafficPattern_.size()), false, true);
-    m_logger.log("Total Interests Received    = "+toString(totalInterestReceived_), false, true);
+    m_logger.log("Total Traffic Pattern Types = " +
+                 toString((int)trafficPattern_.size()), false, true);
+    m_logger.log("Total Interests Received    = " +
+                 toString(totalInterestReceived_), false, true);
+
     for (patternId=0; patternId<trafficPattern_.size(); patternId++)
       {
         m_logger.log("\nTraffic Pattern Type #"+toString(patternId+1), false, true);
         trafficPattern_[patternId].printTrafficConfiguration(m_logger);
-        m_logger.log("Total Interests Received    = "+toString(trafficPattern_[patternId].totalInterestReceived)+"\n", false, true);
+        m_logger.log("Total Interests Received    = " +
+                     toString(trafficPattern_[patternId].totalInterestReceived)+"\n", false, true);
       }
   }
 
@@ -276,7 +284,8 @@
         patternFile.close();
         if (!checkTrafficPatternCorrectness())
           {
-            m_logger.log("ERROR - Traffic Configuration Provided Is Not Proper- " + configurationFile_, false, true);
+            m_logger.log("ERROR - Traffic Configuration Provided Is Not Proper- " +
+                         configurationFile_, false, true);
             m_logger.shutdownLogger();
             exit(1);
           }
@@ -290,7 +299,8 @@
       }
     else
       {
-        m_logger.log("ERROR - Unable To Open Traffic Configuration File: " + configurationFile_, false, true);
+        m_logger.log("ERROR - Unable To Open Traffic Configuration File: " +
+                     configurationFile_, false, true);
         m_logger.shutdownLogger();
         exit(1);
       }
@@ -307,21 +317,23 @@
           }
         else
           {
-            m_logger.log("ERROR - Traffic Configuration File Is Not A Regular File: " + configurationFile_, false, true);
+            m_logger.log("ERROR - Traffic Configuration File Is Not A Regular File: " +
+                         configurationFile_, false, true);
             m_logger.shutdownLogger();
             exit(1);
           }
       }
     else
       {
-        m_logger.log("ERROR - Traffic Configuration File Does Not Exist: " + configurationFile_, false, true);
+        m_logger.log("ERROR - Traffic Configuration File Does Not Exist: " +
+                     configurationFile_, false, true);
         m_logger.shutdownLogger();
         exit(1);
       }
   }
 
   static std::string
-  getRandomByteString( int randomSize )
+  getRandomByteString(int randomSize)
   {
     int i;
     std::string characterSet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw0123456789";
@@ -332,7 +344,7 @@
   }
 
   void
-  onInterest( const Name& name, const Interest& interest, int patternId )
+  onInterest(const Name& name, const Interest& interest, int patternId)
   {
     std::string content, logLine;
     content = "";
@@ -361,7 +373,7 @@
   }
 
   void
-  onRegisterFailed( const ndn::Name& prefix, const std::string& reason, int patternId )
+  onRegisterFailed(const ndn::Name& prefix, const std::string& reason, int patternId)
   {
     std::string logLine;
     logLine = "";
@@ -382,15 +394,15 @@
     initializeTrafficConfiguration();
 
     int patternId;
-    for (patternId=0; patternId<trafficPattern_.size(); patternId++ )
+    for (patternId=0; patternId<trafficPattern_.size(); patternId++)
       {
-        face_.setInterestFilter(  trafficPattern_[patternId].name,
-                                  func_lib::bind( &NdnTrafficServer::onInterest,
-                                                  this, _1, _2,
-                                                  patternId),
-                                  func_lib::bind( &NdnTrafficServer::onRegisterFailed,
-                                                  this, _1, _2,
-                                                  patternId));
+        face_.setInterestFilter(trafficPattern_[patternId].name,
+                                bind(&NdnTrafficServer::onInterest,
+                                     this, _1, _2,
+                                     patternId),
+                                bind(&NdnTrafficServer::onRegisterFailed,
+                                     this, _1, _2,
+                                     patternId));
       }
 
     try {
@@ -403,7 +415,6 @@
   }
 
 private:
-
   KeyChain keyChain_;
   std::string programName_;
   std::string instanceId_;
@@ -415,12 +426,12 @@
   Face face_;
   std::vector<DataTrafficConfiguration> trafficPattern_;
   int totalInterestReceived_;
-
 };
 
 } // namespace ndn
 
-int main( int argc, char* argv[] )
+int
+main(int argc, char* argv[])
 {
   int option;
   ndn::NdnTrafficServer ndnTrafficServer (argv[0]);
diff --git a/wscript b/wscript
index bb8df5b..946b472 100644
--- a/wscript
+++ b/wscript
@@ -1,25 +1,29 @@
 # -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
-VERSION='0.3'
-NAME="ndn-traffic"
+VERSION='0.1'
+NAME="ndn-traffic-generator"
 
 def options(opt):
-    opt.load('compiler_cxx')
+    opt.load('compiler_cxx gnu_dirs')
 
 def configure(conf):
-    conf.load("compiler_cxx")
-    conf.check_cfg(package='libndn-cpp-dev', args=['--cflags', '--libs'], uselib_store='NDN_CPP', mandatory=True)
+    conf.load("compiler_cxx gnu_dirs")
+    conf.check_cfg(package='libndn-cpp-dev', args=['--cflags', '--libs'],
+                   uselib_store='NDN_CPP', mandatory=True)
 
 def build (bld):
     bld.program (
         features = 'cxx',
-        target   = 'ndntraffic',
-        source   = 'ndn-traffic-client.cpp',
+        target   = 'ndn-traffic',
+        source   = 'src/ndn-traffic-client.cpp',
         use      = 'NDN_CPP',
         )
 
     bld.program (
         features = 'cxx',
-        target   = 'ndntrafficserver',
-        source   = 'ndn-traffic-server.cpp',
+        target   = 'ndn-traffic-server',
+        source   = 'src/ndn-traffic-server.cpp',
         use      = 'NDN_CPP',
         )
+
+    bld.install_files('${SYSCONFDIR}/ndn', ['ndn-traffic-client.conf.sample',
+                                            'ndn-traffic-server.conf.sample'])