meta/SaiAttributeList.h (37 lines of code) (raw):

#pragma once extern "C" { #include "saimetadata.h" } #include "swss/table.h" #include <string> #include <vector> #include <unordered_map> namespace saimeta { class SaiAttributeList { public: SaiAttributeList( _In_ const sai_object_type_t object_type, _In_ const std::vector<swss::FieldValueTuple> &values, _In_ bool countOnly); SaiAttributeList( _In_ const sai_object_type_t object_type, _In_ const std::unordered_map<std::string, std::string>& hash, _In_ bool countOnly); virtual ~SaiAttributeList(); public: sai_attribute_t* get_attr_list(); uint32_t get_attr_count(); static std::vector<swss::FieldValueTuple> serialize_attr_list( _In_ sai_object_type_t object_type, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list, _In_ bool countOnly); private: SaiAttributeList(const SaiAttributeList&); SaiAttributeList& operator=(const SaiAttributeList&); std::vector<sai_attribute_t> m_attr_list; std::vector<sai_attr_value_type_t> m_attr_value_type_list; }; }