FieldDefaultValueMappingPtr DefaultValueHelper::GetDefaultValueInfo()

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;
}