00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef _H_reteutil
00028 #define _H_reteutil
00029
00030 #ifndef _H_evaluatn
00031 #include "evaluatn.h"
00032 #endif
00033 #ifndef _H_match
00034 #include "match.h"
00035 #endif
00036 #ifndef _H_network
00037 #include "network.h"
00038 #endif
00039
00040 #ifdef LOCALE
00041 #undef LOCALE
00042 #endif
00043
00044 #ifdef _RETEUTIL_SOURCE_
00045 #define LOCALE
00046 #else
00047 #define LOCALE extern
00048 #endif
00049
00050 LOCALE void PrintPartialMatch(void *,char *,struct partialMatch *);
00051 LOCALE struct partialMatch *CopyPartialMatch(void *,struct partialMatch *);
00052 LOCALE struct partialMatch *MergePartialMatches(void *,struct partialMatch *,struct partialMatch *);
00053 LOCALE long int IncrementPseudoFactIndex(void);
00054 LOCALE struct partialMatch *GetAlphaMemory(void *,struct patternNodeHeader *,unsigned long);
00055 LOCALE struct partialMatch *GetLeftBetaMemory(struct joinNode *,unsigned long);
00056 LOCALE struct partialMatch *GetRightBetaMemory(struct joinNode *,unsigned long);
00057 LOCALE void ReturnLeftMemory(void *,struct joinNode *);
00058 LOCALE void ReturnRightMemory(void *,struct joinNode *);
00059 LOCALE void DestroyBetaMemory(void *,struct joinNode *,int);
00060 LOCALE void FlushBetaMemory(void *,struct joinNode *,int);
00061 LOCALE intBool BetaMemoryNotEmpty(struct joinNode *);
00062 LOCALE void RemoveAlphaMemoryMatches(void *,struct patternNodeHeader *,struct partialMatch *,
00063 struct alphaMatch *);
00064 LOCALE void DestroyAlphaMemory(void *,struct patternNodeHeader *,int);
00065 LOCALE void FlushAlphaMemory(void *,struct patternNodeHeader *);
00066 LOCALE void FlushAlphaBetaMemory(void *,struct partialMatch *);
00067 LOCALE void DestroyAlphaBetaMemory(void *,struct partialMatch *);
00068 LOCALE int GetPatternNumberFromJoin(struct joinNode *);
00069 LOCALE struct multifieldMarker *CopyMultifieldMarkers(void *,struct multifieldMarker *);
00070 LOCALE struct partialMatch *CreateAlphaMatch(void *,void *,struct multifieldMarker *,
00071 struct patternNodeHeader *,unsigned long);
00072 LOCALE void TraceErrorToRule(void *,struct joinNode *,char *);
00073 LOCALE void InitializePatternHeader(void *,struct patternNodeHeader *);
00074 LOCALE void MarkRuleNetwork(void *,int);
00075 LOCALE void TagRuleNetwork(void *,long *,long *,long *,long *);
00076 LOCALE int FindEntityInPartialMatch(struct patternEntity *,struct partialMatch *);
00077 LOCALE unsigned long ComputeRightHashValue(void *,struct patternNodeHeader *);
00078 LOCALE void UpdateBetaPMLinks(void *,struct partialMatch *,struct partialMatch *,struct partialMatch *,
00079 struct joinNode *,unsigned long,int);
00080 LOCALE void UnlinkBetaPMFromNodeAndLineage(void *,struct joinNode *,struct partialMatch *,int);
00081 LOCALE void UnlinkNonLeftLineage(void *,struct joinNode *,struct partialMatch *,int);
00082 LOCALE struct partialMatch *CreateEmptyPartialMatch(void *);
00083 LOCALE void MarkRuleJoins(struct joinNode *,int);
00084 LOCALE void AddBlockedLink(struct partialMatch *,struct partialMatch *);
00085 LOCALE void RemoveBlockedLink(struct partialMatch *);
00086 #endif
00087
00088
00089