common/ipaddresses.h (43 lines of code) (raw):

#ifndef __IPADDRESSES__ #define __IPADDRESSES__ #include <set> #include "ipaddress.h" namespace swss { class IpAddresses { public: IpAddresses() = default; /* A list of IpAddresses separated by ',' */ IpAddresses(const std::string &ips); inline const std::set<IpAddress> &getIpAddresses() const { return m_ips; } inline size_t getSize() const { return m_ips.size(); } inline bool operator<(const IpAddresses &o) const { return m_ips < o.m_ips; } inline bool operator==(const IpAddresses &o) const { return m_ips == o.m_ips; } inline bool operator!=(const IpAddresses &o) const { return !(*this == o); } void add(const std::string &ip); void add(const IpAddress &ip); bool contains(const std::string &ip) const; bool contains(const IpAddress &ip) const; bool contains(const IpAddresses &ips) const; void remove(const std::string &ip); void remove(const IpAddress &ip); const std::string to_string() const; private: std::set<IpAddress> m_ips; }; } #endif