docs: wrote Doxygen comments for all files
refs: #4118
Change-Id: Ib0e7f1926cdabcca5aa401b59b24519412a099f7
diff --git a/src/tlv/adjacency-lsa.hpp b/src/tlv/adjacency-lsa.hpp
index 217366a..f1854a4 100644
--- a/src/tlv/adjacency-lsa.hpp
+++ b/src/tlv/adjacency-lsa.hpp
@@ -43,7 +43,7 @@
LsaInfo
Adjacency*
- \sa http://redmine.named-data.net/projects/nlsr/wiki/LSDB_DataSet
+ \sa https://redmine.named-data.net/projects/nlsr/wiki/LSDB_DataSet
*/
class AdjacencyLsa
{
@@ -109,13 +109,33 @@
return *this;
}
+ /*! \brief Encodes the Adjacent objects and some info using the method in TAG.
+ *
+ * This function will TLV-format the Adjacent objects and some LSA
+ * info using the implementation speciifed by TAG. Usually this is
+ * called with an estimator first to guess how long the buffer needs
+ * to be, then with an encoder to do the real work. This process is
+ * automated by the other wireEncode.
+ * \sa AdjacencyLsa::wireEncode()
+ */
template<ndn::encoding::Tag TAG>
size_t
wireEncode(ndn::EncodingImpl<TAG>& block) const;
+ /*! \brief Create a TLV encoding of this object.
+ *
+ * Create a block containing the TLV encoding of this object. That
+ * involves two steps: estimating the size that the information will
+ * take up, and then creating a buffer of that size and encoding the
+ * information into it. Both steps are accomplished by
+ * AdjacencyLsa::wireEncode(ndn::EncodingImpl<TAG>&)
+ */
const ndn::Block&
wireEncode() const;
+ /*! \brief Populate this object by decoding the one contained in the
+ * given block.
+ */
void
wireDecode(const ndn::Block& wire);
diff --git a/src/tlv/adjacency.hpp b/src/tlv/adjacency.hpp
index 5767ce6..2e5dec7 100644
--- a/src/tlv/adjacency.hpp
+++ b/src/tlv/adjacency.hpp
@@ -39,7 +39,7 @@
Uri
Cost
- \sa http://redmine.named-data.net/projects/nlsr/wiki/LSDB_DataSet
+ \sa https://redmine.named-data.net/projects/nlsr/wiki/LSDB_DataSet
*/
class Adjacency
{
@@ -101,13 +101,31 @@
return *this;
}
+ /*! \brief TLV-encode this object using the implementation in from TAG.
+ *
+ * This method TLV-encodes this Adjacency object using the
+ * implementation given by TAG. Usually two implementations are
+ * provided: a size estimator and a real encoder, which are used in
+ * sequence to allocate the necessary block size and then encode it.
+ * \sa Adjacency::wireEncode()
+ */
template<ndn::encoding::Tag TAG>
size_t
wireEncode(ndn::EncodingImpl<TAG>& block) const;
+ /*! \brief Create a TLV encoding of this object.
+ *
+ * This function automates the process of guessing the necessary
+ * size of a block containing this object, and then creating a block
+ * and putting the TLV encoding into it.
+ * \sa Adjacency::wireEncode(ndn::EncodingImpl<TAG>&)
+ */
const ndn::Block&
wireEncode() const;
+ /*! \brief Populate this object by decoding the object contained in
+ * the given block.
+ */
void
wireDecode(const ndn::Block& wire);
diff --git a/src/tlv/coordinate-lsa.hpp b/src/tlv/coordinate-lsa.hpp
index 0568cc1..18c32ab 100644
--- a/src/tlv/coordinate-lsa.hpp
+++ b/src/tlv/coordinate-lsa.hpp
@@ -103,13 +103,33 @@
return *this;
}
+ /*! \brief Encodes the hyperbolic coordinates and some info using the method in TAG.
+ *
+ * This function will TLV-format the hyperbolic coordinates objects and some LSA
+ * info using the implementation speciifed by TAG. Usually this is
+ * called with an estimator first to guess how long the buffer needs
+ * to be, then with an encoder to do the real work. This process is
+ * automated by the other wireEncode.
+ * \sa CoordinateLsa::wireEncode()
+ */
template<ndn::encoding::Tag TAG>
size_t
wireEncode(ndn::EncodingImpl<TAG>& block) const;
+ /*! \brief Create a TLV encoding of this object.
+ *
+ * Create a block containing the TLV encoding of this object. That
+ * involves two steps: estimating the size that the information will
+ * take up, and then creating a buffer of that size and encoding the
+ * information into it. Both steps are accomplished by
+ * CoordinateLsa::wireEncode(ndn::EncodingImpl<TAG>&)
+ */
const ndn::Block&
wireEncode() const;
+ /*! \brief Populate this object by decoding the one contained in the
+ * given block.
+ */
void
wireDecode(const ndn::Block& wire);
diff --git a/src/tlv/lsa-info.hpp b/src/tlv/lsa-info.hpp
index ef2142a..4573661 100644
--- a/src/tlv/lsa-info.hpp
+++ b/src/tlv/lsa-info.hpp
@@ -22,6 +22,8 @@
#ifndef NLSR_TLV_LSA_INFO_HPP
#define NLSR_TLV_LSA_INFO_HPP
+#include "lsa.hpp"
+
#include <ndn-cxx/util/time.hpp>
#include <ndn-cxx/encoding/block.hpp>
#include <ndn-cxx/encoding/encoding-buffer.hpp>
@@ -29,8 +31,6 @@
#include <ndn-cxx/name.hpp>
#include <boost/throw_exception.hpp>
-#include "lsa.hpp"
-
namespace nlsr {
namespace tlv {
@@ -115,13 +115,33 @@
return m_hasInfiniteExpirationPeriod;
}
+ /*! \brief Encodes LSA info using the method in TAG.
+ *
+ * This function will TLV-format LSA info using the implementation
+ * speciifed by TAG. Usually this is called with an estimator first
+ * to guess how long the buffer needs to be, then with an encoder to
+ * do the real work. This process is automated by the other
+ * wireEncode.
+ * \sa LsaInfo::wireEncode()
+ */
template<ndn::encoding::Tag TAG>
size_t
wireEncode(ndn::EncodingImpl<TAG>& block) const;
+ /*! \brief Create a TLV encoding of this object.
+ *
+ * Create a block containing the TLV encoding of this object. That
+ * involves two steps: estimating the size that the information will
+ * take up, and then creating a buffer of that size and encoding the
+ * information into it. Both steps are accomplished by
+ * LsaInfo::wireEncode(ndn::EncodingImpl<TAG>&)
+ */
const ndn::Block&
wireEncode() const;
+ /*! \brief Populate this object by decoding the one contained in the
+ * given block.
+ */
void
wireDecode(const ndn::Block& wire);
diff --git a/src/tlv/lsdb-status.hpp b/src/tlv/lsdb-status.hpp
index 5fc8f8c..fb494e6 100644
--- a/src/tlv/lsdb-status.hpp
+++ b/src/tlv/lsdb-status.hpp
@@ -45,7 +45,7 @@
CoordinateLsa*
NameLsa*
- \sa http://redmine.named-data.net/projects/nlsr/wiki/LSDB_DataSet
+ \sa https://redmine.named-data.net/projects/nlsr/wiki/LSDB_DataSet
*/
class LsdbStatus
{
@@ -156,13 +156,34 @@
return m_hasNameLsas;
}
+ /*! \brief Encodes the LSA objects and some info for each LSA using
+ * the method in TAG.
+ *
+ * This function will TLV-format the LSA objects and some LSA
+ * info using the implementation specified by TAG. Usually this is
+ * called with an estimator first to guess how long the buffer needs
+ * to be, then with an encoder to do the real work. This process is
+ * automated by the other wireEncode.
+ * \sa LsdbStatus::wireEncode()
+ */
template<ndn::encoding::Tag TAG>
size_t
wireEncode(ndn::EncodingImpl<TAG>& block) const;
+ /*! \brief Create a TLV encoding of this object.
+ *
+ * Create a block containing the TLV encoding of this object. That
+ * involves two steps: estimating the size that the information will
+ * take up, and then creating a buffer of that size and encoding the
+ * information into it. Both steps are accomplished by
+ * LsdbStatus::wireEncode(ndn::EncodingImpl<TAG>&)
+ */
const ndn::Block&
wireEncode() const;
+ /*! \brief Populate this object by decoding the one contained in the
+ * given block.
+ */
void
wireDecode(const ndn::Block& wire);
diff --git a/src/tlv/name-lsa.hpp b/src/tlv/name-lsa.hpp
index e120af8..2e137be 100644
--- a/src/tlv/name-lsa.hpp
+++ b/src/tlv/name-lsa.hpp
@@ -42,7 +42,7 @@
LsaInfo
Name+
- \sa http://redmine.named-data.net/projects/nlsr/wiki/LSDB_DataSet
+ \sa https://redmine.named-data.net/projects/nlsr/wiki/LSDB_DataSet
*/
class NameLsa
{
@@ -108,13 +108,33 @@
return *this;
}
+ /*! \brief Encodes the Name objects and some info using the method in TAG.
+ *
+ * This function will TLV-format the Name objects and some LSA
+ * info using the implementation speciifed by TAG. Usually this is
+ * called with an estimator first to guess how long the buffer needs
+ * to be, then with an encoder to do the real work. This process is
+ * automated by the other wireEncode.
+ * \sa NameLsa::wireEncode()
+ */
template<ndn::encoding::Tag TAG>
size_t
wireEncode(ndn::EncodingImpl<TAG>& block) const;
+ /*! \brief Create a TLV encoding of this object.
+ *
+ * Create a block containing the TLV encoding of this object. That
+ * involves two steps: estimating the size that the information will
+ * take up, and then creating a buffer of that size and encoding the
+ * information into it. Both steps are accomplished by
+ * NameLsa::wireEncode(ndn::EncodingImpl<TAG>&)
+ */
const ndn::Block&
wireEncode() const;
+ /*! \brief Populate this object by decoding the one contained in the
+ * given block.
+ */
void
wireDecode(const ndn::Block& wire);
diff --git a/src/tlv/tlv-nlsr.hpp b/src/tlv/tlv-nlsr.hpp
index e202b64..4a52b1b 100644
--- a/src/tlv/tlv-nlsr.hpp
+++ b/src/tlv/tlv-nlsr.hpp
@@ -24,11 +24,15 @@
#include <ndn-cxx/encoding/tlv.hpp>
-namespace ndn {
-namespace tlv {
+namespace ndn {
+namespace tlv {
namespace nlsr {
-// LSDB DataSet
+/*! The TLV block types that NLSR uses to encode/decode LSA types. The
+ * way NLSR encodes LSAs to TLV is by encoding each element of the
+ * LSA as a separate TLV block. So, block types are needed. These are
+ * used in the LSDB Status Dataset.
+ */
enum {
LsaInfo = 128,
OriginRouter = 129,