syncd/VidManager.cpp (80 lines of code) (raw):
#include "VidManager.h"
#include "lib/VirtualObjectIdManager.h"
#include "meta/sai_serialize.h"
#include "swss/logger.h"
using namespace syncd;
sai_object_id_t VidManager::switchIdQuery(
_In_ sai_object_id_t objectId)
{
SWSS_LOG_ENTER();
if (objectId == SAI_NULL_OBJECT_ID)
{
return objectId;
}
auto swid = sairedis::VirtualObjectIdManager::switchIdQuery(objectId);
if (swid == SAI_NULL_OBJECT_ID)
{
SWSS_LOG_THROW("invalid object id %s",
sai_serialize_object_id(objectId).c_str());
}
return swid;
}
sai_object_type_t VidManager::objectTypeQuery(
_In_ sai_object_id_t objectId)
{
SWSS_LOG_ENTER();
if (objectId == SAI_NULL_OBJECT_ID)
{
return SAI_OBJECT_TYPE_NULL;
}
sai_object_type_t ot = sairedis::VirtualObjectIdManager::objectTypeQuery(objectId);
if (ot == SAI_OBJECT_TYPE_NULL)
{
SWSS_LOG_THROW("invalid object id %s",
sai_serialize_object_id(objectId).c_str());
}
return ot;
}
uint32_t VidManager::getSwitchIndex(
_In_ sai_object_id_t objectId)
{
SWSS_LOG_ENTER();
sai_object_id_t swid = VidManager::switchIdQuery(objectId);
if (swid != SAI_NULL_OBJECT_ID)
{
return sairedis::VirtualObjectIdManager::getSwitchIndex(swid);
}
SWSS_LOG_THROW("invalid obejct id: %s, should be SWITCH",
sai_serialize_object_id(objectId).c_str());
}
uint32_t VidManager::getGlobalContext(
_In_ sai_object_id_t objectId)
{
SWSS_LOG_ENTER();
auto swid = sairedis::VirtualObjectIdManager::switchIdQuery(objectId);
if (swid == SAI_NULL_OBJECT_ID)
{
SWSS_LOG_THROW("invalid object id %s",
sai_serialize_object_id(objectId).c_str());
}
return sairedis::VirtualObjectIdManager::getGlobalContext(objectId);
}
uint64_t VidManager::getObjectIndex(
_In_ sai_object_id_t objectId)
{
SWSS_LOG_ENTER();
auto swid = sairedis::VirtualObjectIdManager::switchIdQuery(objectId);
if (swid == SAI_NULL_OBJECT_ID)
{
SWSS_LOG_THROW("invalid object id %s",
sai_serialize_object_id(objectId).c_str());
}
return sairedis::VirtualObjectIdManager::getObjectIndex(objectId);
}
sai_object_id_t VidManager::updateObjectIndex(
_In_ sai_object_id_t objectId,
_In_ uint64_t objectIndex)
{
SWSS_LOG_ENTER();
return sairedis::VirtualObjectIdManager::updateObjectIndex(objectId, objectIndex);
}