?? agenda.h
字號:
/*******************************************************/ /* "C" Language Integrated Production System */ /* */ /* CLIPS Version 6.30 10/19/06 */ /* */ /* AGENDA HEADER FILE */ /*******************************************************//*************************************************************//* Purpose: *//* Provides functionality for examining, manipulating, *//* adding, and removing activations from the agenda. *//* *//* Principal Programmer(s): *//* Gary D. Riley *//* *//* Contributing Programmer(s): *//* *//* Revision History: *//* 6.23: Corrected compilation errors for files *//* generated by constructs-to-c. DR0861 *//* *//* 6.24: Removed CONFLICT_RESOLUTION_STRATEGIES and *//* DYNAMIC_SALIENCE compilation flags. *//* *//* Renamed BOOLEAN macro type to intBool. *//* *//* Added EnvGetActivationBasisPPForm function. *//* *//* 6.30: Added salience groups to improve performance *//* with large numbers of activations of different *//* saliences. *//* *//*************************************************************/#ifndef _H_agenda#define _H_agenda#ifndef _H_ruledef#include "ruledef.h"#endif#ifndef _H_symbol#include "symbol.h"#endif#ifndef _H_match#include "match.h"#endif#define WHEN_DEFINED 0#define WHEN_ACTIVATED 1#define EVERY_CYCLE 2#define MAX_DEFRULE_SALIENCE 10000#define MIN_DEFRULE_SALIENCE -10000 /*******************//* DATA STRUCTURES *//*******************/struct activation { struct defrule *theRule; struct partialMatch *basis; int salience; unsigned long long timetag; int randomID; struct activation *prev; struct activation *next; };struct salienceGroup { int salience; struct activation *first; struct activation *last; struct salienceGroup *next; struct salienceGroup *prev; };typedef struct activation ACTIVATION;#define AGENDA_DATA 17struct agendaData { #if DEBUGGING_FUNCTIONS unsigned WatchActivations;#endif unsigned long NumberOfActivations; unsigned long long CurrentTimetag; int AgendaChanged; intBool SalienceEvaluation; int Strategy; };#define EnvGetActivationSalience(theEnv,actPtr) (((struct activation *) actPtr)->salience)#define GetActivationRule(actPtr) (((struct activation *) actPtr)->theRule)#define GetActivationBasis(actPtr) (((struct activation *) actPtr)->basis)#define AgendaData(theEnv) ((struct agendaData *) GetEnvironmentData(theEnv,AGENDA_DATA))#ifdef LOCALE#undef LOCALE#endif#ifdef _AGENDA_SOURCE_#define LOCALE#else#define LOCALE extern#endif/****************************************//* GLOBAL EXTERNAL FUNCTION DEFINITIONS *//****************************************/#if ENVIRONMENT_API_ONLY#define Agenda(theEnv,a,b) EnvAgenda(theEnv,a,b)#define DeleteActivation(theEnv,a) EnvDeleteActivation(theEnv,a)#define GetActivationName(theEnv,a) EnvGetActivationName(theEnv,a)#define GetActivationPPForm(theEnv,a,b,c) EnvGetActivationPPForm(theEnv,a,b,c)#define GetActivationSalience(theEnv,actPtr) (((struct activation *) actPtr)->salience)#define GetAgendaChanged(theEnv) EnvGetAgendaChanged(theEnv)#define GetNextActivation(theEnv,a) EnvGetNextActivation(theEnv,a)#define GetSalienceEvaluation(theEnv) EnvGetSalienceEvaluation(theEnv)#define Refresh(theEnv,a) EnvRefresh(theEnv,a)#define RefreshAgenda(theEnv,a) EnvRefreshAgenda(theEnv,a)#define ReorderAgenda(theEnv,a) EnvReorderAgenda(theEnv,a)#define SetActivationSalience(theEnv,a,b) EnvSetActivationSalience(theEnv,a,b)#define SetAgendaChanged(theEnv,a) EnvSetAgendaChanged(theEnv,a)#define SetSalienceEvaluation(theEnv,a) EnvSetSalienceEvaluation(theEnv,a)#else#define Agenda(a,b) EnvAgenda(GetCurrentEnvironment(),a,b)#define DeleteActivation(a) EnvDeleteActivation(GetCurrentEnvironment(),a)#define GetActivationName(a) EnvGetActivationName(GetCurrentEnvironment(),a)#define GetActivationPPForm(a,b,c) EnvGetActivationPPForm(GetCurrentEnvironment(),a,b,c)#define GetActivationSalience(actPtr) (((struct activation *) actPtr)->salience)#define GetAgendaChanged() EnvGetAgendaChanged(GetCurrentEnvironment())#define GetNextActivation(a) EnvGetNextActivation(GetCurrentEnvironment(),a)#define GetSalienceEvaluation() EnvGetSalienceEvaluation(GetCurrentEnvironment())#define Refresh(a) EnvRefresh(GetCurrentEnvironment(),a)#define RefreshAgenda(a) EnvRefreshAgenda(GetCurrentEnvironment(),a)#define ReorderAgenda(a) EnvReorderAgenda(GetCurrentEnvironment(),a)#define SetActivationSalience(a,b) EnvSetActivationSalience(GetCurrentEnvironment(),a,b)#define SetAgendaChanged(a) EnvSetAgendaChanged(GetCurrentEnvironment(),a)#define SetSalienceEvaluation(a) EnvSetSalienceEvaluation(GetCurrentEnvironment(),a)#endif LOCALE void AddActivation(void *,void *,void *); LOCALE void ClearRuleFromAgenda(void *,void *); LOCALE void *EnvGetNextActivation(void *,void *); LOCALE char *EnvGetActivationName(void *,void *); LOCALE int EnvSetActivationSalience(void *,void *,int); LOCALE void EnvGetActivationPPForm(void *,char *,unsigned,void *); LOCALE void EnvGetActivationBasisPPForm(void *,char *,unsigned,void *); LOCALE intBool MoveActivationToTop(void *,void *); LOCALE intBool EnvDeleteActivation(void *,void *); LOCALE intBool DetachActivation(void *,void *); LOCALE void EnvAgenda(void *,char *,void *); LOCALE void RemoveActivation(void *,void *,int,int); LOCALE void RemoveAllActivations(void *); LOCALE int EnvGetAgendaChanged(void *); LOCALE void EnvSetAgendaChanged(void *,int); LOCALE unsigned long GetNumberOfActivations(void *); LOCALE intBool EnvGetSalienceEvaluation(void *); LOCALE intBool EnvSetSalienceEvaluation(void *,intBool); LOCALE void EnvRefreshAgenda(void *,void *); LOCALE void EnvReorderAgenda(void *,void *); LOCALE void InitializeAgenda(void *); LOCALE void *SetSalienceEvaluationCommand(void *); LOCALE void *GetSalienceEvaluationCommand(void *); LOCALE void RefreshAgendaCommand(void *); LOCALE void RefreshCommand(void *); LOCALE intBool EnvRefresh(void *,void *);#if DEBUGGING_FUNCTIONS LOCALE void AgendaCommand(void *);#endif#endif
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -