lsdb: emit signals when modified
RoutingTable and NamePrefixTable consume the signal
and behave accordingly.
refs: #4127
Change-Id: I6540f30f0222f804b01dc7d9640831c84e5264cc
diff --git a/src/lsa/coordinate-lsa.cpp b/src/lsa/coordinate-lsa.cpp
index 32172e6..f61fb29 100644
--- a/src/lsa/coordinate-lsa.cpp
+++ b/src/lsa/coordinate-lsa.cpp
@@ -144,7 +144,7 @@
CoordinateLsa::toString() const
{
std::ostringstream os;
- os << Lsa::toString();
+ os << getString();
os << " Hyperbolic Radius : " << m_hyperbolicRadius << "\n";
int i = 0;
for (const auto& value : m_hyperbolicAngles) {
@@ -154,6 +154,21 @@
return os.str();
}
+std::tuple<bool, std::list<ndn::Name>, std::list<ndn::Name>>
+CoordinateLsa::update(const std::shared_ptr<Lsa>& lsa)
+{
+ auto clsa = std::static_pointer_cast<CoordinateLsa>(lsa);
+ if (!isEqualContent(*clsa)) {
+ m_hyperbolicRadius = clsa->getCorRadius();
+ m_hyperbolicAngles.clear();
+ for (const auto& angle : clsa->getCorTheta()) {
+ m_hyperbolicAngles.push_back(angle);
+ }
+ return std::make_tuple(true, std::list<ndn::Name>{}, std::list<ndn::Name>{});
+ }
+ return std::make_tuple(false, std::list<ndn::Name>{}, std::list<ndn::Name>{});
+}
+
std::ostream&
operator<<(std::ostream& os, const CoordinateLsa& lsa)
{