00001
00002
00003
00004
00005
00006
00007 #include "rsGlobalExtern.h"
00008 #include "reGlobalsExtern.h"
00009 #include "reconstants.h"
00010 #include "configuration.h"
00011
00012 static char ruleSetInitialized[NAME_LEN]="";
00013
00014
00015 #ifdef RULE_ENGINE_N
00016 int
00017 initRuleEngine(int processType, rsComm_t *svrComm, char *ruleSet, char *dvmSet, char* fnmSet) {
00018 int status;
00019 if (strcmp(ruleSet, ruleSetInitialized)==0) {
00020 return(0);
00021 }
00022 status = initRuleStruct(processType, svrComm, ruleSet, dvmSet, fnmSet);
00023 if (status == 0) {
00024 rstrcpy(ruleSetInitialized, ruleSet, NAME_LEN);
00025 }
00026 return(status);
00027 }
00028
00029
00030
00031
00032 int
00033 clearCoreRule ()
00034 {
00035 int i;
00036
00037 i = unlinkFuncDescIndex();
00038 if (i < 0)
00039 return i;
00040 i = clearResources(RESC_CORE_RULE_SET | RESC_CORE_FUNC_DESC_INDEX);
00041 if (i < 0)
00042 return i;
00043 i = generateFunctionDescriptionTables();
00044 if (i < 0)
00045 return(i);
00046 i = clearDVarStruct(&coreRuleVarDef);
00047 if (i < 0)
00048 return(i);
00049 i = clearFuncMapStruct(&coreRuleFuncMapDef);
00050 bzero (ruleSetInitialized, sizeof (ruleSetInitialized));
00051 return(i);
00052
00053 }
00054 #else
00055
00056 int
00057 initRuleEngine(rsComm_t *svrComm, char *ruleSet, char *dvmSet, char* fnmSet) {
00058 int status;
00059 if (strcmp(ruleSet, ruleSetInitialized)==0) {
00060 return(0);
00061 }
00062 status = initRuleStruct(svrComm, ruleSet, dvmSet, fnmSet);
00063 if (status == 0) {
00064 rstrcpy(ruleSetInitialized, ruleSet, NAME_LEN);
00065 }
00066 return(status);
00067 }
00068
00069
00070
00071
00072 int
00073 clearCoreRule ()
00074 {
00075 int i;
00076
00077 i = clearRuleStruct(&coreRuleStrct);
00078 if (i < 0)
00079 return(i);
00080 i = clearDVarStruct(&coreRuleVarDef);
00081 if (i < 0)
00082 return(i);
00083 i = clearFuncMapStruct(&coreRuleFuncMapDef);
00084 bzero (ruleSetInitialized, sizeof (ruleSetInitialized));
00085 return(i);
00086
00087 }
00088
00089 #endif