From fd920609819a5b10d3d7c8d34fe4fa4214c7da22 Mon Sep 17 00:00:00 2001 From: Neale Ranns Date: Thu, 23 Nov 2017 12:15:00 -0800 Subject: VOM: Additions to allow uses to UT applications that use VOM - find object by key - compare objects Change-Id: I36ec8612be9482bcef7ceced2a59f7403f77b3e8 Signed-off-by: Neale Ranns --- src/vpp-api/vom/l3_binding.cpp | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) (limited to 'src/vpp-api/vom/l3_binding.cpp') diff --git a/src/vpp-api/vom/l3_binding.cpp b/src/vpp-api/vom/l3_binding.cpp index 065504cd190..be7c9d1e24b 100644 --- a/src/vpp-api/vom/l3_binding.cpp +++ b/src/vpp-api/vom/l3_binding.cpp @@ -17,7 +17,7 @@ #include "vom/l3_binding_cmds.hpp" namespace VOM { -singular_db l3_binding::m_db; +singular_db l3_binding::m_db; l3_binding::event_handler l3_binding::m_evh; @@ -43,7 +43,19 @@ l3_binding::~l3_binding() sweep(); // not in the DB anymore. - m_db.release(make_pair(m_itf->key(), m_pfx), this); + m_db.release(key(), this); +} + +bool +l3_binding::operator==(const l3_binding& l) const +{ + return ((m_pfx == l.m_pfx) && (*m_itf == *l.m_itf)); +} + +const l3_binding::key_t +l3_binding::key() const +{ + return (make_pair(m_itf->key(), m_pfx)); } void @@ -93,7 +105,7 @@ std::string l3_binding::to_string() const { std::ostringstream s; - s << "L3-config:[" << m_itf->to_string() << " prefix:" << m_pfx.to_string() + s << "L3-binding:[" << m_itf->to_string() << " prefix:" << m_pfx.to_string() << " " << m_binding.to_string() << "]"; return (s.str()); @@ -116,7 +128,13 @@ l3_binding::update(const l3_binding& desired) std::shared_ptr l3_binding::find_or_add(const l3_binding& temp) { - return (m_db.find_or_add(make_pair(temp.m_itf->key(), temp.m_pfx), temp)); + return (m_db.find_or_add(temp.key(), temp)); +} + +std::shared_ptr +l3_binding::find(const key_t& k) +{ + return (m_db.find(k)); } std::shared_ptr @@ -132,7 +150,7 @@ l3_binding::dump(std::ostream& os) } std::ostream& -operator<<(std::ostream& os, const l3_binding::key_type_t& key) +operator<<(std::ostream& os, const l3_binding::key_t& key) { os << "[" << key.first << ", " << key.second << "]"; -- cgit 1.2.3-korg