in common/defaultvalueprovider.cpp [223:261]
FieldDefaultValueMappingPtr DefaultValueHelper::GetDefaultValueInfo(struct lys_node* tableChildNode)
{
SWSS_LOG_DEBUG("DefaultValueHelper::GetDefaultValueInfo %s\n",tableChildNode->name);
auto field = tableChildNode->child;
auto fieldMapping = make_shared<FieldDefaultValueMapping>();
while (field)
{
if (field->nodetype == LYS_LEAF)
{
WARNINGS_NO_CAST_ALIGN
struct lys_node_leaf *leafNode = reinterpret_cast<struct lys_node_leaf*>(field);
WARNINGS_RESET
SWSS_LOG_DEBUG("leaf field: %s\n",leafNode->name);
GetDefaultValueInfoForLeaf(leafNode, fieldMapping);
}
else if (field->nodetype == LYS_CHOICE)
{
struct lys_node_choice *choiceNode = reinterpret_cast<struct lys_node_choice*>(field);
SWSS_LOG_DEBUG("choice field: %s\n",choiceNode->name);
GetDefaultValueInfoForChoice(choiceNode, fieldMapping);
}
else if (field->nodetype == LYS_LEAFLIST)
{
WARNINGS_NO_CAST_ALIGN
struct lys_node_leaflist *listNode = reinterpret_cast<struct lys_node_leaflist*>(field);
WARNINGS_RESET
SWSS_LOG_DEBUG("list field: %s\n",listNode->name);
GetDefaultValueInfoForLeaflist(listNode, fieldMapping);
}
field = field->next;
}
return fieldMapping;
}