syncd/PortMap.cpp (33 lines of code) (raw):
#include "PortMap.h"
#include "swss/logger.h"
using namespace syncd;
/**
* @brief Port map global map.
*
* WARNING: This object must have global declaration and this exact name since
* external RPC server is linking against this object when in use.
*/
std::map<std::set<int>, std::string> gPortMap;
void PortMap::insert(
_In_ const std::set<int>& laneSet,
_In_ const std::string& name)
{
SWSS_LOG_ENTER();
m_portMap.insert(std::make_pair(laneSet, name));
}
void PortMap::clear()
{
SWSS_LOG_ENTER();
m_portMap.clear();
}
size_t PortMap::size() const
{
SWSS_LOG_ENTER();
return m_portMap.size();
}
const std::map<std::set<int>, std::string>& PortMap::getRawPortMap() const
{
SWSS_LOG_ENTER();
return m_portMap;
};
void PortMap::setGlobalPortMap(
_In_ std::shared_ptr<PortMap> portMap)
{
SWSS_LOG_ENTER();
SWSS_LOG_NOTICE("setting global gPortMap for rpc server");
gPortMap = portMap->getRawPortMap();
}