face-management-protocol: Converting ForwardingEntry and ForwardingFlags to TLV

Change-Id: I84f60d8c0bc33b6631f7886238ed958aa020428f
diff --git a/include/ndn-cpp/forwarding-entry.hpp b/include/ndn-cpp/forwarding-entry.hpp
index b828a7b..9ac4df6 100644
--- a/include/ndn-cpp/forwarding-entry.hpp
+++ b/include/ndn-cpp/forwarding-entry.hpp
@@ -10,11 +10,8 @@
 
 #include <string>
 #include "name.hpp"
-#include "publisher-public-key-digest.hpp"
 #include "forwarding-flags.hpp"
-#include "encoding/wire-format.hpp"
-
-struct ndn_ForwardingEntry;
+#include "encoding/block.hpp"
 
 namespace ndn {
 
@@ -24,46 +21,39 @@
 class ForwardingEntry {
 public:    
   ForwardingEntry
-    (const std::string& action, const Name& prefix, const PublisherPublicKeyDigest publisherPublicKeyDigest,
-     int faceId, const ForwardingFlags& forwardingFlags, int freshnessSeconds) 
-  : action_(action), prefix_(prefix), publisherPublicKeyDigest_(publisherPublicKeyDigest), 
-    faceId_(faceId), forwardingFlags_(forwardingFlags), freshnessSeconds_(freshnessSeconds)
+    (const std::string& action,
+       const Name& prefix,
+       int faceId,
+       const ForwardingFlags& forwardingFlags,
+       int freshnessPeriod) 
+  : action_(action)
+  , prefix_(prefix)
+  , faceId_(faceId)
+  , forwardingFlags_(forwardingFlags)
+  , freshnessPeriod_(freshnessPeriod)
   {
   }
 
   ForwardingEntry()
-  : faceId_(-1), freshnessSeconds_(-1)
+  : faceId_(-1), freshnessPeriod_(-1)
   {
     forwardingFlags_.setActive(true);
     forwardingFlags_.setChildInherit(true);
   }
   
-  Blob 
-  wireEncode(WireFormat& wireFormat = *WireFormat::getDefaultWireFormat()) const 
+  Block 
+  wireEncode() const 
   {
-    return wireFormat.encodeForwardingEntry(*this);
+    return wire_;
+    // return wireFormat.encodeForwardingEntry(*this);
   }
   
   void 
-  wireDecode(const uint8_t *input, size_t inputLength, WireFormat& wireFormat = *WireFormat::getDefaultWireFormat()) 
+  wireDecode(const Block &wire) 
   {
-    wireFormat.decodeForwardingEntry(*this, input, inputLength);
+    // wireFormat.decodeForwardingEntry(*this, input, inputLength);
   }
   
-  void 
-  wireDecode(const std::vector<uint8_t>& input, WireFormat& wireFormat = *WireFormat::getDefaultWireFormat()) 
-  {
-    wireDecode(&input[0], input.size(), wireFormat);
-  }
-  
-  /**
-   * Set the forwardingEntryStruct to point to the components in this forwarding entry, without copying any memory.
-   * WARNING: The resulting pointers in forwardingEntryStruct are invalid after a further use of this object which could reallocate memory.
-   * @param forwardingEntryStruct a C ndn_ForwardingEntry struct where the prefix name components array is already allocated.
-   */
-  void 
-  get(struct ndn_ForwardingEntry& forwardingEntryStruct) const;
-
   const std::string& 
   getAction() const { return action_; }
   
@@ -73,12 +63,6 @@
   const Name& 
   getPrefix() const { return prefix_; }
   
-  PublisherPublicKeyDigest& 
-  getPublisherPublicKeyDigest() { return publisherPublicKeyDigest_; }
-  
-  const PublisherPublicKeyDigest& 
-  getPublisherPublicKeyDigest() const { return publisherPublicKeyDigest_; }
-  
   int 
   getFaceId() const { return faceId_; }
 
@@ -86,14 +70,7 @@
   getForwardingFlags() const { return forwardingFlags_; }
 
   int 
-  getFreshnessSeconds() const { return freshnessSeconds_; }
-  
-  /**
-   * Clear this forwarding entry, and set the values by copying from forwardingEntryStruct.
-   * @param forwardingEntryStruct a C ndn_ForwardingEntry struct.
-   */
-  void 
-  set(const struct ndn_ForwardingEntry& forwardingEntryStruct);
+  getFreshnessPeriod() const { return freshnessPeriod_; }
 
   void 
   setAction(const std::string& action) { action_ = action; }
@@ -105,15 +82,16 @@
   setForwardingFlags(const ForwardingFlags& forwardingFlags) { forwardingFlags_ = forwardingFlags; }
       
   void 
-  setFreshnessSeconds(int freshnessSeconds) { freshnessSeconds_ = freshnessSeconds; }
+  setFreshnessPeriod(int freshnessPeriod) { freshnessPeriod_ = freshnessPeriod; }
       
 private:
   std::string action_;   /**< empty for none. */
   Name prefix_;
-  PublisherPublicKeyDigest publisherPublicKeyDigest_;
   int faceId_;           /**< -1 for none. */
   ForwardingFlags forwardingFlags_;
-  int freshnessSeconds_; /**< -1 for none. */
+  int freshnessPeriod_; /**< -1 for none. */
+
+  Block wire_;
 };
 
 }