00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _H_msgcom
00022 #define _H_msgcom
00023
00024 #ifndef _H_object
00025 #include "object.h"
00026 #endif
00027
00028 #ifndef _H_msgpass
00029 #include "msgpass.h"
00030 #endif
00031
00032 #define MESSAGE_HANDLER_DATA 32
00033
00034 struct messageHandlerData
00035 {
00036 ENTITY_RECORD HandlerGetInfo;
00037 ENTITY_RECORD HandlerPutInfo;
00038 SYMBOL_HN *INIT_SYMBOL;
00039 SYMBOL_HN *DELETE_SYMBOL;
00040 SYMBOL_HN *CREATE_SYMBOL;
00041 #if DEBUGGING_FUNCTIONS
00042 unsigned WatchHandlers;
00043 unsigned WatchMessages;
00044 #endif
00045 char *hndquals[4];
00046 SYMBOL_HN *SELF_SYMBOL;
00047 SYMBOL_HN *CurrentMessageName;
00048 HANDLER_LINK *CurrentCore;
00049 HANDLER_LINK *TopOfCore;
00050 HANDLER_LINK *NextInCore;
00051 HANDLER_LINK *OldCore;
00052 };
00053
00054 #define MessageHandlerData(theEnv) ((struct messageHandlerData *) GetEnvironmentData(theEnv,MESSAGE_HANDLER_DATA))
00055
00056
00057 #ifdef LOCALE
00058 #undef LOCALE
00059 #endif
00060
00061 #ifdef _MSGCOM_SOURCE_
00062 #define LOCALE
00063 #else
00064 #define LOCALE extern
00065 #endif
00066
00067 #define INIT_STRING "init"
00068 #define DELETE_STRING "delete"
00069 #define PRINT_STRING "print"
00070 #define CREATE_STRING "create"
00071
00072 #define FindDefmessageHandler(a,b,c) EnvFindDefmessageHandler(GetCurrentEnvironment(),a,b,c)
00073 #define GetDefmessageHandlerName(a,b) EnvGetDefmessageHandlerName(GetCurrentEnvironment(),a,b)
00074 #define GetDefmessageHandlerPPForm(a,b) EnvGetDefmessageHandlerPPForm(GetCurrentEnvironment(),a,b)
00075 #define GetDefmessageHandlerType(a,b) EnvGetDefmessageHandlerType(GetCurrentEnvironment(),a,b)
00076 #define GetDefmessageHandlerWatch(a,b) EnvGetDefmessageHandlerWatch(GetCurrentEnvironment(),a,b)
00077 #define GetNextDefmessageHandler(a,b) EnvGetNextDefmessageHandler(GetCurrentEnvironment(),a,b)
00078 #define IsDefmessageHandlerDeletable(a,b) EnvIsDefmessageHandlerDeletable(GetCurrentEnvironment(),a,b)
00079 #define ListDefmessageHandlers(a,b,c) EnvListDefmessageHandlers(GetCurrentEnvironment(),a,b,c)
00080 #define PreviewSend(a,b,c) EnvPreviewSend(GetCurrentEnvironment(),a,b,c)
00081 #define SetDefmessageHandlerWatch(a,b,c) EnvSetDefmessageHandlerWatch(GetCurrentEnvironment(),a,b,c)
00082 #define UndefmessageHandler(a,b) EnvUndefmessageHandler(GetCurrentEnvironment(),a,b)
00083
00084 LOCALE void SetupMessageHandlers(void *);
00085 LOCALE char *EnvGetDefmessageHandlerName(void *,void *,int);
00086 LOCALE char *EnvGetDefmessageHandlerType(void *,void *,int);
00087 LOCALE int EnvGetNextDefmessageHandler(void *,void *,int);
00088 LOCALE HANDLER *GetDefmessageHandlerPointer(void *,int);
00089 #if DEBUGGING_FUNCTIONS
00090 LOCALE unsigned EnvGetDefmessageHandlerWatch(void *,void *,int);
00091 LOCALE void EnvSetDefmessageHandlerWatch(void *,int,void *,int);
00092 #endif
00093 LOCALE unsigned EnvFindDefmessageHandler(void *,void *,char *,char *);
00094 LOCALE int EnvIsDefmessageHandlerDeletable(void *,void *,int);
00095 LOCALE void UndefmessageHandlerCommand(void *);
00096 LOCALE int EnvUndefmessageHandler(void *,void *,int);
00097
00098 #if DEBUGGING_FUNCTIONS
00099 LOCALE void PPDefmessageHandlerCommand(void *);
00100 LOCALE void ListDefmessageHandlersCommand(void *);
00101 LOCALE void PreviewSendCommand(void *);
00102 LOCALE char *EnvGetDefmessageHandlerPPForm(void *,void *,int);
00103 LOCALE void EnvListDefmessageHandlers(void *,char *,void *,int);
00104 LOCALE void EnvPreviewSend(void *,char *,void *,char *);
00105 LOCALE long DisplayHandlersInLinks(void *,char *,PACKED_CLASS_LINKS *,int);
00106 #endif
00107
00108 #endif
00109
00110
00111
00112
00113