void removeRuleFromExtIndex(char *ruleName, int i) { if(isComponentInitialized(ruleEngineConfig.extFuncDescIndexStatus)) { FunctionDesc *fd = (FunctionDesc *)lookupFromHashTable(ruleEngineConfig.extFuncDescIndex->current, ruleName); RuleIndexList *rd = FD_RULE_INDEX_LIST(fd); removeNodeFromRuleIndexList2(rd, i); if(rd->head == NULL) { deleteFromHashTable(ruleEngineConfig.extFuncDescIndex->current, ruleName); } } }
int generateFunctionDescriptionTables() { createFuncDescIndex(SYS, sys); createFuncDescIndex(CORE, core); createFuncDescIndex(APP, app); if(!isComponentInitialized(ruleEngineConfig.extFuncDescIndexStatus)) { createFuncDescIndex(EXT, ext); ruleEngineConfig.extFuncDescIndex->previous = ruleEngineConfig.appFuncDescIndex; } else { Env *extEnv = ruleEngineConfig.extFuncDescIndex; while(extEnv->previous!= NULL) { extEnv = extEnv->previous; } extEnv->previous = ruleEngineConfig.appFuncDescIndex; } ruleEngineConfig.appFuncDescIndex->previous = ruleEngineConfig.coreFuncDescIndex; ruleEngineConfig.coreFuncDescIndex->previous = ruleEngineConfig.sysFuncDescIndex; return 0; }
int availableRules() { return ( isComponentInitialized( ruleEngineConfig.appRuleSetStatus ) ? ruleEngineConfig.coreRuleSet->len : 0 ) + ( isComponentInitialized( ruleEngineConfig.appRuleSetStatus ) == INITIALIZED ? ruleEngineConfig.appRuleSet->len : 0 ); }