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
00038 #ifndef ASC_CASE_H
00039 #define ASC_CASE_H
00040
00046 struct Case {
00047 struct Set *ValueList;
00049 struct gl_list_t *ref;
00051 unsigned active;
00052 };
00053
00054 extern struct Case *CreateCase(struct Set *v1, struct gl_list_t *refinst);
00062 #ifdef NDEBUG
00063 #define GetCaseValues(c) ((c)->ValueList)
00064 #else
00065 #define GetCaseValues(c) GetCaseValuesF(c)
00066 #endif
00067
00068 extern struct Set *GetCaseValuesF(struct Case *cs);
00075 #ifdef NDEBUG
00076 #define GetCaseReferences(c) ((c)->ref)
00077 #else
00078 #define GetCaseReferences(c) GetCaseReferencesF(c)
00079 #endif
00080
00081 extern struct gl_list_t *GetCaseReferencesF(struct Case *cs);
00088 #ifdef NDEBUG
00089 #define GetCaseStatus(c) ((c)->active)
00090 #else
00091 #define GetCaseStatus(c) GetCaseStatusF(c)
00092 #endif
00093
00094 extern int GetCaseStatusF(struct Case *cs);
00101 extern struct Case *SetCaseValues(struct Case *cs, struct Set *set);
00109 extern struct Case *SetCaseReferences(struct Case *cs, struct gl_list_t *refinst);
00117 extern struct Case *SetCaseStatus(struct Case *cs, int status);
00125 extern unsigned long NumberCaseRefs(struct Case *cs);
00133 extern struct Instance *CaseRef(struct Case *cs, unsigned long casenum);
00141 extern void DestroyCase(struct Case *cs);
00148 extern struct Case *CopyCase(struct Case *cs);
00155
00156
00157 #endif
00158