/**
* A DB of all igmp bindings configs
*/
-singular_db<interface::key_t, igmp_binding> igmp_binding::m_db;
+singular_db<igmp_binding::key_t, igmp_binding> igmp_binding::m_db;
igmp_binding::event_handler igmp_binding::m_evh;
igmp_binding::~igmp_binding()
{
sweep();
- m_db.release(m_itf->key(), this);
+ m_db.release(key(), this);
}
bool
return (*m_itf == *l.m_itf);
}
+const igmp_binding::key_t
+igmp_binding::key() const
+{
+ return (m_itf->key());
+}
+
void
igmp_binding::sweep()
{
std::shared_ptr<igmp_binding>
igmp_binding::find_or_add(const igmp_binding& temp)
{
- return (m_db.find_or_add(temp.m_itf->key(), temp));
+ return (m_db.find_or_add(temp.key(), temp));
+}
+
+std::shared_ptr<igmp_binding>
+igmp_binding::find(const key_t& k)
+{
+ return (m_db.find(k));
}
std::shared_ptr<igmp_binding>