Fixes for 'make UNATTENDED=yes CC=clang CXX=clang verify'
[vpp.git] / src / vpp-api / vom / route_domain.cpp
index 8ae5785..b97faf6 100644 (file)
 
 #include "vom/route_domain.hpp"
 #include "vom/cmd.hpp"
+#include "vom/route_domain_cmds.hpp"
+#include "vom/singular_db_funcs.hpp"
 
 namespace VOM {
+
+route_domain::event_handler route_domain::m_evh;
+
 /**
  * A DB of al the interfaces, key on the name
  */
@@ -39,6 +44,12 @@ route_domain::route_domain(const route_domain& o)
 {
 }
 
+bool
+route_domain::operator==(const route_domain& r) const
+{
+  return (m_table_id == r.m_table_id);
+}
+
 route::table_id_t
 route_domain::table_id() const
 {
@@ -55,10 +66,12 @@ void
 route_domain::sweep()
 {
   if (m_hw_v4) {
-    HW::enqueue(new delete_cmd(m_hw_v4, l3_proto_t::IPV4, m_table_id));
+    HW::enqueue(
+      new route_domain_cmds::delete_cmd(m_hw_v4, l3_proto_t::IPV4, m_table_id));
   }
   if (m_hw_v6) {
-    HW::enqueue(new delete_cmd(m_hw_v6, l3_proto_t::IPV6, m_table_id));
+    HW::enqueue(
+      new route_domain_cmds::delete_cmd(m_hw_v6, l3_proto_t::IPV6, m_table_id));
   }
   HW::write();
 }
@@ -67,10 +80,12 @@ void
 route_domain::replay()
 {
   if (m_hw_v4) {
-    HW::enqueue(new create_cmd(m_hw_v4, l3_proto_t::IPV4, m_table_id));
+    HW::enqueue(
+      new route_domain_cmds::create_cmd(m_hw_v4, l3_proto_t::IPV4, m_table_id));
   }
   if (m_hw_v6) {
-    HW::enqueue(new create_cmd(m_hw_v6, l3_proto_t::IPV6, m_table_id));
+    HW::enqueue(
+      new route_domain_cmds::create_cmd(m_hw_v6, l3_proto_t::IPV6, m_table_id));
   }
 }
 
@@ -87,35 +102,16 @@ route_domain::to_string() const
 {
   std::ostringstream s;
   s << "route-domain:["
-    << "table-id:" << m_table_id << " v4:" << m_hw_v4 << " v6:" << m_hw_v6
-    << "]";
+    << "table-id:" << m_table_id << " v4:" << m_hw_v4.to_string()
+    << " v6:" << m_hw_v6.to_string() << "]";
 
   return (s.str());
 }
 
 std::shared_ptr<route_domain>
-route_domain::find(const route_domain& temp)
+route_domain::find(const key_t& k)
 {
-  std::shared_ptr<route_domain> rd;
-
-  auto it = m_db.cbegin();
-
-  while (it != m_db.cend()) {
-    /*
- * The key in the DB is a pair of the interface's name and prefix.
- * If the keys match, save the L3-config
- */
-    auto key = it->first;
-
-    if (temp.table_id() == key) {
-      rd = it->second.lock();
-      break;
-    }
-
-    ++it;
-  }
-
-  return (rd);
+  return (m_db.find(k));
 }
 
 void
@@ -125,10 +121,12 @@ route_domain::update(const route_domain& desired)
  * create the table if it is not yet created
  */
   if (rc_t::OK != m_hw_v4.rc()) {
-    HW::enqueue(new create_cmd(m_hw_v4, l3_proto_t::IPV4, m_table_id));
+    HW::enqueue(
+      new route_domain_cmds::create_cmd(m_hw_v4, l3_proto_t::IPV4, m_table_id));
   }
   if (rc_t::OK != m_hw_v6.rc()) {
-    HW::enqueue(new create_cmd(m_hw_v6, l3_proto_t::IPV6, m_table_id));
+    HW::enqueue(
+      new route_domain_cmds::create_cmd(m_hw_v6, l3_proto_t::IPV6, m_table_id));
   }
 }
 
@@ -155,9 +153,40 @@ route_domain::singular() const
 void
 route_domain::dump(std::ostream& os)
 {
-  m_db.dump(os);
+  db_dump(m_db, os);
 }
+
+void
+route_domain::event_handler::handle_populate(const client_db::key_t& key)
+{
 }
+
+route_domain::event_handler::event_handler()
+{
+  OM::register_listener(this);
+  inspect::register_handler({ "rd", "route-domain" }, "Route Domains", this);
+}
+
+void
+route_domain::event_handler::handle_replay()
+{
+  m_db.replay();
+}
+
+dependency_t
+route_domain::event_handler::order() const
+{
+  return (dependency_t::TABLE);
+}
+
+void
+route_domain::event_handler::show(std::ostream& os)
+{
+  db_dump(m_db, os);
+}
+
+}; // namespace VOPM
+
 /*
  * fd.io coding-style-patch-verification: ON
  *