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;
}
Beispiel #3
0
int availableRules() {
    return ( isComponentInitialized( ruleEngineConfig.appRuleSetStatus ) ? ruleEngineConfig.coreRuleSet->len : 0 ) + ( isComponentInitialized( ruleEngineConfig.appRuleSetStatus ) == INITIALIZED ? ruleEngineConfig.appRuleSet->len : 0 );
}