meta/Globals.h (30 lines of code) (raw):

#pragma once extern "C" { #include "saimetadata.h" } #include "swss/logger.h" #include "swss/table.h" #include <string> namespace saimeta { class Globals { private: Globals() = delete; ~Globals() = delete; public: static std::string getAttrInfo( _In_ const sai_attr_metadata_t& md); /** * @brief Get hardware info. * * Get hardware info from attribute list, typically passed to * create_switch api and convert it from s8list to std::string. * Object type is assumed to be SAI_OBJECT_TYPE_SWITCH. * * @return Hardware info converted to string. */ static std::string getHardwareInfo( _In_ uint32_t attrCount, _In_ const sai_attribute_t *attrList); static std::string joinFieldValues( _In_ const std::vector<swss::FieldValueTuple>& values); }; } #define META_LOG_WARN( md, format, ...) SWSS_LOG_WARN ("%s " format, saimeta::Globals::getAttrInfo(md).c_str(), ##__VA_ARGS__) #define META_LOG_ERROR( md, format, ...) SWSS_LOG_ERROR ("%s " format, saimeta::Globals::getAttrInfo(md).c_str(), ##__VA_ARGS__) #define META_LOG_DEBUG( md, format, ...) SWSS_LOG_DEBUG ("%s " format, saimeta::Globals::getAttrInfo(md).c_str(), ##__VA_ARGS__) #define META_LOG_NOTICE( md, format, ...) SWSS_LOG_NOTICE ("%s " format, saimeta::Globals::getAttrInfo(md).c_str(), ##__VA_ARGS__) #define META_LOG_INFO( md, format, ...) SWSS_LOG_INFO ("%s " format, saimeta::Globals::getAttrInfo(md).c_str(), ##__VA_ARGS__) #define META_LOG_THROW( md, format, ...) SWSS_LOG_THROW ("%s " format, saimeta::Globals::getAttrInfo(md).c_str(), ##__VA_ARGS__)