Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Fixes for 'make UNATTENDED=yes CC=clang CXX=clang verify'
[vpp.git]
/
src
/
vpp-api
/
vom
/
acl_list.hpp
diff --git
a/src/vpp-api/vom/acl_list.hpp
b/src/vpp-api/vom/acl_list.hpp
index
ff3eeeb
..
eff5e1c
100644
(file)
--- a/
src/vpp-api/vom/acl_list.hpp
+++ b/
src/vpp-api/vom/acl_list.hpp
@@
-53,7
+53,8
@@
public:
* Construct a new object matching the desried state
*/
list(const key_t& key)
* Construct a new object matching the desried state
*/
list(const key_t& key)
- : m_key(key)
+ : m_hdl(handle_t::INVALID)
+ , m_key(key)
{
}
{
}
@@
-64,10
+65,10
@@
public:
}
list(const key_t& key, const rules_t& rules)
}
list(const key_t& key, const rules_t& rules)
- : m_key(key)
+ : m_hdl(handle_t::INVALID)
+ , m_key(key)
, m_rules(rules)
{
, m_rules(rules)
{
- m_evh.order();
}
/**
}
/**
@@
-129,7
+130,7
@@
public:
/**
* Return the VPP assign handle
*/
/**
* Return the VPP assign handle
*/
- const handle_t& handle() const { return
m_hdl.data(
); }
+ const handle_t& handle() const { return
(singular()->handle_i()
); }
static std::shared_ptr<list> find(const handle_t& handle)
{
static std::shared_ptr<list> find(const handle_t& handle)
{
@@
-141,12
+142,19
@@
public:
return (m_db.find(key));
}
return (m_db.find(key));
}
- static void add(const
handle_t& handle, std::shared_ptr<list> sp
)
+ static void add(const
key_t& key, const HW::item<handle_t>& item
)
{
{
- m_hdl_db[handle] = sp;
+ std::shared_ptr<list> sp = find(key);
+
+ if (sp && item) {
+ m_hdl_db[item.data()] = sp;
+ }
}
}
- static void remove(const handle_t& handle) { m_hdl_db.erase(handle); }
+ static void remove(const HW::item<handle_t>& item)
+ {
+ m_hdl_db.erase(item.data());
+ }
const key_t& key() const { return m_key; }
const key_t& key() const { return m_key; }
@@
-167,11
+175,8
@@
private:
class event_handler : public OM::listener, public inspect::command_handler
{
public:
class event_handler : public OM::listener, public inspect::command_handler
{
public:
- event_handler()
- {
- OM::register_listener(this);
- inspect::register_handler({ "acl" }, "ACL lists", this);
- }
+ event_handler();
+
virtual ~event_handler() = default;
/**
virtual ~event_handler() = default;
/**
@@
-187,7
+192,7
@@
private:
/**
* Show the object in the Singular DB
*/
/**
* Show the object in the Singular DB
*/
- void show(std::ostream& os)
{ m_db.dump(os); }
+ void show(std::ostream& os)
;
/**
* Get the sortable Id of the listener
/**
* Get the sortable Id of the listener
@@
-215,9
+220,14
@@
private:
*/
static std::shared_ptr<list> find_or_add(const list& temp)
{
*/
static std::shared_ptr<list> find_or_add(const list& temp)
{
- return (m_db.find_or_add(temp.
m_key
, temp));
+ return (m_db.find_or_add(temp.
key()
, temp));
}
}
+ /**
+ * return the acl-list's handle in the singular instance
+ */
+ const handle_t& handle_i() const { return (m_hdl.data()); }
+
/*
* It's the VOM::OM class that updates call update
*/
/*
* It's the VOM::OM class that updates call update
*/
@@
-246,7
+256,7
@@
private:
/**
* A map of all ACLs keyed against VPP's handle
*/
/**
* A map of all ACLs keyed against VPP's handle
*/
- static std::map<
const
handle_t, std::weak_ptr<list>> m_hdl_db;
+ static std::map<handle_t, std::weak_ptr<list>> m_hdl_db;
/**
* The Key is a user defined identifer for this ACL
/**
* The Key is a user defined identifer for this ACL
@@
-279,7
+289,7
@@
singular_db<typename ACL::list<RULE>::key_t, ACL::list<RULE>> list<RULE>::m_db;
* Definition of the static per-handle DB for ACL Lists
*/
template <typename RULE>
* Definition of the static per-handle DB for ACL Lists
*/
template <typename RULE>
-std::map<
const
handle_t, std::weak_ptr<ACL::list<RULE>>> list<RULE>::m_hdl_db;
+std::map<handle_t, std::weak_ptr<ACL::list<RULE>>> list<RULE>::m_hdl_db;
template <typename RULE>
typename ACL::list<RULE>::event_handler list<RULE>::m_evh;
template <typename RULE>
typename ACL::list<RULE>::event_handler list<RULE>::m_evh;