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 #ifndef _H_inscom
00026 #define _H_inscom
00027
00028 #ifndef _H_object
00029 #include "object.h"
00030 #endif
00031
00032 #ifndef _H_insfun
00033 #include "insfun.h"
00034 #endif
00035
00036 #define INSTANCE_DATA 29
00037
00038 struct instanceData
00039 {
00040 INSTANCE_TYPE DummyInstance;
00041 INSTANCE_TYPE **InstanceTable;
00042 int MaintainGarbageInstances;
00043 int MkInsMsgPass;
00044 int ChangesToInstances;
00045 IGARBAGE *InstanceGarbageList;
00046 struct patternEntityRecord InstanceInfo;
00047 INSTANCE_TYPE *InstanceList;
00048 unsigned long GlobalNumberOfInstances;
00049 INSTANCE_TYPE *CurrentInstance;
00050 INSTANCE_TYPE *InstanceListBottom;
00051 intBool ObjectModDupMsgValid;
00052 };
00053
00054 #define InstanceData(theEnv) ((struct instanceData *) GetEnvironmentData(theEnv,INSTANCE_DATA))
00055
00056 #ifdef LOCALE
00057 #undef LOCALE
00058 #endif
00059
00060 #ifdef _INSCOM_SOURCE_
00061 #define LOCALE
00062 #else
00063 #define LOCALE extern
00064 #endif
00065
00066 #define CreateRawInstance(a,b) EnvCreateRawInstance(GetCurrentEnvironment(),a,b)
00067 #define DeleteInstance(a) EnvDeleteInstance(GetCurrentEnvironment(),a)
00068 #define DirectGetSlot(a,b,c) EnvDirectGetSlot(GetCurrentEnvironment(),a,b,c)
00069 #define DirectPutSlot(a,b,c) EnvDirectPutSlot(GetCurrentEnvironment(),a,b,c)
00070 #define FindInstance(a,b,c) EnvFindInstance(GetCurrentEnvironment(),a,b,c)
00071 #define GetInstanceClass(a) EnvGetInstanceClass(GetCurrentEnvironment(),a)
00072 #define GetInstancePPForm(a,b,c) EnvGetInstancePPForm(GetCurrentEnvironment(),a,b,c)
00073 #define GetNextInstance(a) EnvGetNextInstance(GetCurrentEnvironment(),a)
00074 #define GetNextInstanceInClass(a,b) EnvGetNextInstanceInClass(GetCurrentEnvironment(),a,b)
00075 #define GetNextInstanceInClassAndSubclasses(a,b,c) EnvGetNextInstanceInClassAndSubclasses(GetCurrentEnvironment(),a,b,c)
00076 #define Instances(a,b,c,d) EnvInstances(GetCurrentEnvironment(),a,b,c,d)
00077 #define MakeInstance(a) EnvMakeInstance(GetCurrentEnvironment(),a)
00078 #define UnmakeInstance(a) EnvUnmakeInstance(GetCurrentEnvironment(),a)
00079 #define ValidInstanceAddress(a) EnvValidInstanceAddress(GetCurrentEnvironment(),a)
00080
00081 #if ALLOW_ENVIRONMENT_GLOBALS
00082 LOCALE char *GetInstanceName(void *);
00083 #endif
00084
00085 LOCALE void SetupInstances(void *);
00086 LOCALE intBool EnvDeleteInstance(void *,void *);
00087 LOCALE intBool EnvUnmakeInstance(void *,void *);
00088 #if DEBUGGING_FUNCTIONS
00089 LOCALE void InstancesCommand(void *);
00090 LOCALE void PPInstanceCommand(void *);
00091 LOCALE void EnvInstances(void *,char *,void *,char *,int);
00092 #endif
00093 LOCALE void *EnvMakeInstance(void *,char *);
00094 LOCALE void *EnvCreateRawInstance(void *,void *,char *);
00095 LOCALE void *EnvFindInstance(void *,void *,char *,unsigned);
00096 LOCALE int EnvValidInstanceAddress(void *,void *);
00097 LOCALE void EnvDirectGetSlot(void *,void *,char *,DATA_OBJECT *);
00098 LOCALE int EnvDirectPutSlot(void *,void *,char *,DATA_OBJECT *);
00099 LOCALE char *EnvGetInstanceName(void *,void *);
00100 LOCALE void *EnvGetInstanceClass(void *,void *);
00101 LOCALE unsigned long GetGlobalNumberOfInstances(void *);
00102 LOCALE void *EnvGetNextInstance(void *,void *);
00103 LOCALE void *GetNextInstanceInScope(void *,void *);
00104 LOCALE void *EnvGetNextInstanceInClass(void *,void *,void *);
00105 LOCALE void *EnvGetNextInstanceInClassAndSubclasses(void *,void **,void *,DATA_OBJECT *);
00106 LOCALE void EnvGetInstancePPForm(void *,char *,unsigned,void *);
00107 LOCALE void ClassCommand(void *,DATA_OBJECT *);
00108 LOCALE intBool DeleteInstanceCommand(void *);
00109 LOCALE intBool UnmakeInstanceCommand(void *);
00110 LOCALE void SymbolToInstanceName(void *,DATA_OBJECT *);
00111 LOCALE void *InstanceNameToSymbol(void *);
00112 LOCALE void InstanceAddressCommand(void *,DATA_OBJECT *);
00113 LOCALE void InstanceNameCommand(void *,DATA_OBJECT *);
00114 LOCALE intBool InstanceAddressPCommand(void *);
00115 LOCALE intBool InstanceNamePCommand(void *);
00116 LOCALE intBool InstancePCommand(void *);
00117 LOCALE intBool InstanceExistPCommand(void *);
00118 LOCALE intBool CreateInstanceHandler(void *);
00119
00120 #endif
00121
00122
00123
00124
00125