tlv: remove unused class LsdbStatus

refs: #4787

Change-Id: I9c7ce59238a3bac06d3db32423853f11f22e9160
diff --git a/src/publisher/dataset-interest-handler.cpp b/src/publisher/dataset-interest-handler.cpp
index d6f8ce7..f31cdbd 100644
--- a/src/publisher/dataset-interest-handler.cpp
+++ b/src/publisher/dataset-interest-handler.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2014-2019,  The University of Memphis,
+ * Copyright (c) 2014-2020,  The University of Memphis,
  *                           Regents of the University of California,
  *                           Arizona Board of Regents.
  *
@@ -21,7 +21,6 @@
 
 #include "dataset-interest-handler.hpp"
 #include "nlsr.hpp"
-#include "tlv/lsdb-status.hpp"
 #include "logger.hpp"
 
 #include <ndn-cxx/mgmt/nfd/control-response.hpp>
diff --git a/src/tlv/lsdb-status.cpp b/src/tlv/lsdb-status.cpp
deleted file mode 100644
index f39cd27..0000000
--- a/src/tlv/lsdb-status.cpp
+++ /dev/null
@@ -1,239 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2014-2018,  The University of Memphis,
- *                           Regents of the University of California,
- *                           Arizona Board of Regents.
- *
- * This file is part of NLSR (Named-data Link State Routing).
- * See AUTHORS.md for complete list of NLSR authors and contributors.
- *
- * NLSR is free software: you can redistribute it and/or modify it under the terms
- * of the GNU General Public License as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- *
- * NLSR is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
- * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE.  See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * NLSR, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "lsdb-status.hpp"
-#include "tlv-nlsr.hpp"
-
-#include <ndn-cxx/util/concepts.hpp>
-#include <ndn-cxx/encoding/block-helpers.hpp>
-
-namespace nlsr {
-namespace tlv {
-
-BOOST_CONCEPT_ASSERT((ndn::WireEncodable<LsdbStatus>));
-BOOST_CONCEPT_ASSERT((ndn::WireDecodable<LsdbStatus>));
-static_assert(std::is_base_of<ndn::tlv::Error, LsdbStatus::Error>::value,
-              "LsdbStatus::Error must inherit from tlv::Error");
-
-LsdbStatus::LsdbStatus()
-  : m_hasAdjacencyLsas(false)
-  , m_hasCoordinateLsas(false)
-  , m_hasNameLsas(false)
-{
-}
-
-LsdbStatus::LsdbStatus(const ndn::Block& block)
-{
-  wireDecode(block);
-}
-
-LsdbStatus&
-LsdbStatus::addAdjacencyLsa(const AdjacencyLsa& adjacencyLsa)
-{
-  m_adjacencyLsas.push_back(adjacencyLsa);
-  m_wire.reset();
-  m_hasAdjacencyLsas = true;
-  return *this;
-}
-
-LsdbStatus&
-LsdbStatus::clearAdjacencyLsas()
-{
-  m_adjacencyLsas.clear();
-  m_hasAdjacencyLsas = false;
-  return *this;
-}
-
-LsdbStatus&
-LsdbStatus::addCoordinateLsa(const CoordinateLsa& coordinateLsa)
-{
-  m_coordinateLsas.push_back(coordinateLsa);
-  m_wire.reset();
-  m_hasCoordinateLsas = true;
-  return *this;
-}
-
-LsdbStatus&
-LsdbStatus::clearCoordinateLsas()
-{
-  m_coordinateLsas.clear();
-  m_hasCoordinateLsas = false;
-  return *this;
-}
-
-LsdbStatus&
-LsdbStatus::addNameLsa(const NameLsa& nameLsa)
-{
-  m_nameLsas.push_back(nameLsa);
-  m_wire.reset();
-  m_hasNameLsas = true;
-  return *this;
-}
-
-LsdbStatus&
-LsdbStatus::clearNameLsas()
-{
-  m_nameLsas.clear();
-  m_hasNameLsas = false;
-  return *this;
-}
-
-template<ndn::encoding::Tag TAG>
-size_t
-LsdbStatus::wireEncode(ndn::EncodingImpl<TAG>& block) const
-{
-  size_t totalLength = 0;
-
-  for (std::list<NameLsa>::const_reverse_iterator it = m_nameLsas.rbegin();
-       it != m_nameLsas.rend(); ++it) {
-    totalLength += it->wireEncode(block);
-  }
-
-  for (std::list<CoordinateLsa>::const_reverse_iterator it = m_coordinateLsas.rbegin();
-       it != m_coordinateLsas.rend(); ++it) {
-    totalLength += it->wireEncode(block);
-  }
-
-  for (std::list<AdjacencyLsa>::const_reverse_iterator it = m_adjacencyLsas.rbegin();
-       it != m_adjacencyLsas.rend(); ++it) {
-    totalLength += it->wireEncode(block);
-  }
-
-  totalLength += block.prependVarNumber(totalLength);
-  totalLength += block.prependVarNumber(ndn::tlv::nlsr::LsdbStatus);
-
-  return totalLength;
-}
-
-NDN_CXX_DEFINE_WIRE_ENCODE_INSTANTIATIONS(LsdbStatus);
-
-const ndn::Block&
-LsdbStatus::wireEncode() const
-{
-  if (m_wire.hasWire()) {
-    return m_wire;
-  }
-
-  ndn::EncodingEstimator estimator;
-  size_t estimatedSize = wireEncode(estimator);
-
-  ndn::EncodingBuffer buffer(estimatedSize, 0);
-  wireEncode(buffer);
-
-  m_wire = buffer.block();
-
-  return m_wire;
-}
-
-void
-LsdbStatus::wireDecode(const ndn::Block& wire)
-{
-  m_adjacencyLsas.clear();
-  m_coordinateLsas.clear();
-  m_nameLsas.clear();
-
-  m_hasAdjacencyLsas = false;
-  m_hasCoordinateLsas = false;
-  m_hasNameLsas = false;
-
-  m_wire = wire;
-
-  if (m_wire.type() != ndn::tlv::nlsr::LsdbStatus) {
-    std::stringstream error;
-    error << "Expected LsdbStatus Block, but Block is of a different type: #"
-          << m_wire.type();
-    BOOST_THROW_EXCEPTION(Error(error.str()));
-  }
-
-  m_wire.parse();
-
-  ndn::Block::element_const_iterator val = m_wire.elements_begin();
-
-  for (; val != m_wire.elements_end() && val->type() == ndn::tlv::nlsr::AdjacencyLsa; ++val) {
-    m_adjacencyLsas.push_back(AdjacencyLsa(*val));
-    m_hasAdjacencyLsas = true;
-  }
-
-  for (; val != m_wire.elements_end() && val->type() == ndn::tlv::nlsr::CoordinateLsa; ++val) {
-    m_coordinateLsas.push_back(CoordinateLsa(*val));
-    m_hasCoordinateLsas = true;
-  }
-
-  for (; val != m_wire.elements_end() && val->type() == ndn::tlv::nlsr::NameLsa; ++val) {
-    m_nameLsas.push_back(NameLsa(*val));
-    m_hasNameLsas = true;
-  }
-
-  if (val != m_wire.elements_end()) {
-    std::stringstream error;
-    error << "Expected the end of elements, but Block is of a different type: #"
-          << val->type();
-    BOOST_THROW_EXCEPTION(Error(error.str()));
-  }
-}
-
-std::ostream&
-operator<<(std::ostream& os, const LsdbStatus& lsdbStatus)
-{
-  os << "LsdbStatus(";
-
-  bool isFirst = true;
-
-  for (const auto& adjacencyLsa : lsdbStatus.getAdjacencyLsas()) {
-    if (isFirst) {
-      isFirst = false;
-    }
-    else {
-      os << ", ";
-    }
-
-    os << adjacencyLsa;
-  }
-
-  for (const auto& coordinateLsa : lsdbStatus.getCoordinateLsas()) {
-    if (isFirst) {
-      isFirst = false;
-    }
-    else {
-      os << ", ";
-    }
-
-    os << coordinateLsa;
-  }
-
-  for (const auto& nameLsa : lsdbStatus.getNameLsas()) {
-    if (isFirst) {
-      isFirst = false;
-    }
-    else {
-      os << ", ";
-    }
-
-    os << nameLsa;
-  }
-
-  os << ")";
-
-  return os;
-}
-
-} // namespace tlv
-} // namespace nlsr
diff --git a/src/tlv/lsdb-status.hpp b/src/tlv/lsdb-status.hpp
deleted file mode 100644
index 7d93859..0000000
--- a/src/tlv/lsdb-status.hpp
+++ /dev/null
@@ -1,176 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2014-2018,  The University of Memphis,
- *                           Regents of the University of California,
- *                           Arizona Board of Regents.
- *
- * This file is part of NLSR (Named-data Link State Routing).
- * See AUTHORS.md for complete list of NLSR authors and contributors.
- *
- * NLSR is free software: you can redistribute it and/or modify it under the terms
- * of the GNU General Public License as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- *
- * NLSR is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
- * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE.  See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * NLSR, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef NLSR_TLV_LSDB_STATUS_HPP
-#define NLSR_TLV_LSDB_STATUS_HPP
-
-#include "adjacency-lsa.hpp"
-#include "coordinate-lsa.hpp"
-#include "name-lsa.hpp"
-
-#include <ndn-cxx/util/time.hpp>
-#include <ndn-cxx/encoding/block.hpp>
-#include <ndn-cxx/encoding/encoding-buffer.hpp>
-#include <ndn-cxx/encoding/tlv.hpp>
-#include <ndn-cxx/name.hpp>
-
-#include <list>
-
-namespace nlsr {
-namespace tlv {
-
-/*! \brief Data abstraction for LsdbStatus
- *
- *  LsdbStatus := LSDB-STATUS-TYPE TLV-LENGTH
- *                  AdjacencyLsa*
- *                  CoordinateLsa*
- *                  NameLsa*
- *
- * \sa https://redmine.named-data.net/projects/nlsr/wiki/LSDB_DataSet
- */
-class LsdbStatus
-{
-public:
-  class Error : public ndn::tlv::Error
-  {
-  public:
-    explicit
-    Error(const std::string& what)
-      : ndn::tlv::Error(what)
-    {
-    }
-  };
-
-  typedef std::list<AdjacencyLsa> AdjacencyLsaList;
-  typedef std::list<CoordinateLsa> CoordinateLsaList;
-  typedef std::list<NameLsa> NameLsaList;
-
-  LsdbStatus();
-
-  explicit
-  LsdbStatus(const ndn::Block& block);
-
-  const std::list<AdjacencyLsa>&
-  getAdjacencyLsas() const
-  {
-    return m_adjacencyLsas;
-  }
-
-  LsdbStatus&
-  addAdjacencyLsa(const AdjacencyLsa& adjacencyLsa);
-
-  LsdbStatus&
-  clearAdjacencyLsas();
-
-  bool
-  hasAdjacencyLsas()
-  {
-    return m_hasAdjacencyLsas;
-  }
-
-  const std::list<CoordinateLsa>&
-  getCoordinateLsas() const
-  {
-    return m_coordinateLsas;
-  }
-
-  LsdbStatus&
-  addCoordinateLsa(const CoordinateLsa& coordinateLsa);
-
-  LsdbStatus&
-  clearCoordinateLsas();
-
-  bool
-  hasCoordinateLsas()
-  {
-    return m_hasCoordinateLsas;
-  }
-
-  const std::list<NameLsa>&
-  getNameLsas() const
-  {
-    return m_nameLsas;
-  }
-
-  LsdbStatus&
-  addNameLsa(const NameLsa& nameLsa);
-
-  LsdbStatus&
-  clearNameLsas();
-
-  bool
-  hasNameLsas()
-  {
-    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);
-
-private:
-  AdjacencyLsaList m_adjacencyLsas;
-  CoordinateLsaList m_coordinateLsas;
-  NameLsaList m_nameLsas;
-
-  bool m_hasAdjacencyLsas;
-  bool m_hasCoordinateLsas;
-  bool m_hasNameLsas;
-
-  mutable ndn::Block m_wire;
-};
-
-NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS(LsdbStatus);
-
-std::ostream&
-operator<<(std::ostream& os, const LsdbStatus& lsdbStatus);
-
-} // namespace tlv
-} // namespace nlsr
-
-#endif // NLSR_TLV_LSDB_STATUS_HPP