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