static c_bool idl_isCatsDefFor( c_metaObject scope, c_char *typeName, c_char *key) { idl_catsDef catsDef = idl_catsDefDefGet(); idl_catsMap catsMap; c_long catsMapIdx; c_iter catsList; os_uint32 catsListSize; os_uint32 catsIdx; if (catsDef != NULL) { /* check all cats definition list elements */ for (catsMapIdx = 0; catsMapIdx < c_iterLength(catsDef->catsList); catsMapIdx++) { catsMap = c_iterObject(catsDef->catsList, catsMapIdx); if (c_metaCompare(scope, catsMap->scope) == E_EQUAL && strcmp(typeName, catsMap->typeName) == 0) { /* for each cats in catsList, check if it's equal to key */ catsList = c_splitString(catsMap->catsList, ","); catsListSize = c_iterLength(catsList); for(catsIdx = 0; catsIdx < catsListSize; catsIdx++) { if (strcmp(c_iterTakeFirst(catsList), key) == 0) { return OS_TRUE; } } } } } return OS_FALSE; }
/* Check if there is a stac applied to the given key. */ c_bool idl_isStacDefFor( c_metaObject scope, c_char *typeName, c_char *key) { idl_stacDef stacDef = idl_stacDefDefGet(); idl_stacMap stacMap; c_ulong stacMapIdx; c_iter stacList; os_uint32 stacListSize; os_uint32 stacIdx; os_boolean stacDefFor = OS_FALSE; if (stacDef != NULL) { /* check all stac definition list elements */ for (stacMapIdx = 0; stacMapIdx < c_iterLength(stacDef->stacList) && !stacDefFor; stacMapIdx++) { stacMap = c_iterObject(stacDef->stacList, stacMapIdx); if (c_metaCompare(scope, stacMap->scope) == E_EQUAL && strcmp(typeName, stacMap->typeName) == 0) { /* for each stac in stacList, check if it's equal to key */ stacList = c_splitString(stacMap->stacList, ","); stacListSize = c_iterLength(stacList); if (stacListSize == 0) { stacDefFor = OS_TRUE; } else if(idl_stacDefOnlyExclusionsDefined(stacMap->stacList)) { if(!idl_stacDefIsFieldExcluded(stacMap->stacList, key)) { stacDefFor = OS_TRUE; } } else { for(stacIdx = 0; stacIdx < stacListSize; stacIdx++) { if (strcmp(c_iterTakeFirst(stacList), key) == 0) { stacDefFor = OS_TRUE; } } } } } } return stacDefFor; }