socket: allow applications to set seq numbers

refs: #4032

Change-Id: I4ed379baaebc1643abf5864f7b674724f901e0e6
diff --git a/src/socket.hpp b/src/socket.hpp
index 807e173..09fee72 100644
--- a/src/socket.hpp
+++ b/src/socket.hpp
@@ -115,6 +115,24 @@
    *
    * This method will create a data packet with the supplied content.
    * The packet name is the local session + seqNo.
+   * The seqNo is set by the application.
+   *
+   * @throws It will throw error, if the prefix does not exist in m_logic
+   *
+   * @param buf Pointer to the bytes in content
+   * @param len size of the bytes in content
+   * @param freshness FreshnessPeriod of the data packet.
+   * @param seqNo Sequence number of the data
+   */
+  void
+  publishData(const uint8_t* buf, size_t len, const ndn::time::milliseconds& freshness,
+              const uint64_t& seqNo, const Name& prefix = DEFAULT_PREFIX);
+
+  /**
+   * @brief Publish a data packet in the session and trigger synchronization updates
+   *
+   * This method will create a data packet with the supplied content.
+   * The packet name is the local session + seqNo.
    * The seqNo is automatically maintained by internal Logic.
    *
    * @throws It will throw error, if the prefix does not exist in m_logic
@@ -127,6 +145,23 @@
               const Name& prefix = DEFAULT_PREFIX);
 
   /**
+   * @brief Publish a data packet in the session and trigger synchronization updates
+   *
+   * This method will create a data packet with the supplied content.
+   * The packet name is the local session + seqNo.
+   * The seqNo is set by the application.
+   *
+   * @throws It will throw error, if the prefix does not exist in m_logic
+   *
+   * @param content Block that will be set as the content of the data packet.
+   * @param freshness FreshnessPeriod of the data packet.
+   * @param seqNo Sequence number of the data
+   */
+  void
+  publishData(const Block& content, const ndn::time::milliseconds& freshness,
+              const uint64_t& seqNo, const Name& prefix = DEFAULT_PREFIX);
+
+  /**
    * @brief Retrive a data packet with a particular seqNo from a session
    *
    * @param sessionName The name of the target session.