meta/PortRelatedSet.h (28 lines of code) (raw):

#pragma once extern "C" { #include "sai.h" } #include <map> #include <set> #include <vector> namespace saimeta { class PortRelatedSet { public: PortRelatedSet() = default; virtual ~PortRelatedSet() = default; public: void insert( _In_ sai_object_id_t portId, _In_ sai_object_id_t relatedObjectId); const std::set<sai_object_id_t> getPortRelatedObjects( _In_ sai_object_id_t portId) const; void clear(); void removePort( _In_ sai_object_id_t portId); std::vector<sai_object_id_t> getAllPorts() const; private: std::map<sai_object_id_t, std::set<sai_object_id_t>> m_mapset; }; }