16 #ifndef __VOM_IGMP_LISTEN_H__ 17 #define __VOM_IGMP_LISTEN_H__ 39 typedef std::pair<interface::key_t, boost::asio::ip::address>
key_t;
45 const boost::asio::ip::address_v4&
gaddr,
46 const src_addrs_t&
saddrs);
48 const boost::asio::ip::address_v4&
gaddr);
68 const key_t
key()
const;
74 std::shared_ptr<igmp_listen>
singular()
const;
84 static void dump(std::ostream& os);
89 static std::shared_ptr<igmp_listen>
find(
const key_t& k);
109 void handle_replay();
114 void show(std::ostream& os);
135 static std::shared_ptr<igmp_listen> find_or_add(
const igmp_listen& temp);
162 const std::shared_ptr<igmp_binding> m_igmp_bind;
167 const boost::asio::ip::address_v4 m_gaddr;
172 const src_addrs_t m_saddrs;
A representation of igmp configuration on an interface.
const std::string key_t
In the opflex world each entity is known by a URI which can be converted into a string.
const key_t key() const
Get the object's key.
A representation of IGMP binding on an interface.
igmp_listen(const igmp_binding &igmp_bind, const boost::asio::ip::address_v4 &gaddr, const src_addrs_t &saddrs)
Construct a new object matching the desried state.
static void dump(std::ostream &os)
Dump all igmp_listens into the stream provided.
vl_api_ip4_address_t saddrs[n_srcs]
A Database to store the unique 'singular' instances of a single object type.
std::shared_ptr< igmp_listen > singular() const
Return the 'singular instance' of the IGMP that matches this object.
vl_api_ip4_address_t gaddr
std::set< boost::asio::ip::address_v4 > src_addrs_t
Class definition for listeners to OM events.
inspect command handler Handler
void event_handler(void *tls_async)
std::string to_string() const
convert to string format for debug purposes
dependency_t
There needs to be a strict order in which object types are read from VPP (at boot time) and replayed ...
The interface to writing objects into VPP OM.
A base class for all object_base in the VPP object_base-Model.
std::ostream & operator<<(std::ostream &os, const std::pair< direction_t, interface::key_t > &key)
The VPP Object Model (VOM) library.
static std::shared_ptr< igmp_listen > find(const key_t &k)
Find a listen from its key.
bool operator==(const igmp_listen &l) const
Comparison operator.
~igmp_listen()
Destructor.
std::pair< interface::key_t, boost::asio::ip::address > key_t
The key type for igmp_listens.