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_router
00028 #define _H_router
00029
00030 #ifndef _H_prntutil
00031 #include "prntutil.h"
00032 #endif
00033
00034 #ifndef _STDIO_INCLUDED_
00035 #define _STDIO_INCLUDED_
00036 #include <stdio.h>
00037 #endif
00038
00039 #define WWARNING "wwarning"
00040 #define WERROR "werror"
00041 #define WTRACE "wtrace"
00042 #define WDIALOG "wdialog"
00043 #define WPROMPT WPROMPT_STRING
00044 #define WDISPLAY "wdisplay"
00045
00046 #define ROUTER_DATA 46
00047
00048 struct router
00049 {
00050 char *name;
00051 int active;
00052 int priority;
00053 short int environmentAware;
00054 void *context;
00055 int (*query)(void *,char *);
00056 int (*printer)(void *,char *,char *);
00057 int (*exiter)(void *,int);
00058 int (*charget)(void *,char *);
00059 int (*charunget)(void *,int,char *);
00060 struct router *next;
00061 };
00062
00063 struct routerData
00064 {
00065 size_t CommandBufferInputCount;
00066 int AwaitingInput;
00067 char *LineCountRouter;
00068 char *FastCharGetRouter;
00069 char *FastCharGetString;
00070 long FastCharGetIndex;
00071 struct router *ListOfRouters;
00072 FILE *FastLoadFilePtr;
00073 FILE *FastSaveFilePtr;
00074 int Abort;
00075 };
00076
00077 #define RouterData(theEnv) ((struct routerData *) GetEnvironmentData(theEnv,ROUTER_DATA))
00078
00079 #ifdef LOCALE
00080 #undef LOCALE
00081 #endif
00082
00083 #ifdef _ROUTER_SOURCE_
00084 #define LOCALE
00085 #else
00086 #define LOCALE extern
00087 #endif
00088
00089 #define ExitRouter(a) EnvExitRouter(GetCurrentEnvironment(),a)
00090 #define GetcRouter(a) EnvGetcRouter(GetCurrentEnvironment(),a)
00091 #define PrintRouter(a,b) EnvPrintRouter(GetCurrentEnvironment(),a,b)
00092 #define UngetcRouter(a,b) EnvUngetcRouter(GetCurrentEnvironment(),a,b)
00093 #define ActivateRouter(a) EnvActivateRouter(GetCurrentEnvironment(),a)
00094 #define DeactivateRouter(a) EnvDeactivateRouter(GetCurrentEnvironment(),a)
00095 #define DeleteRouter(a) EnvDeleteRouter(GetCurrentEnvironment(),a)
00096
00097 LOCALE void InitializeDefaultRouters(void *);
00098 LOCALE int EnvPrintRouter(void *,char *,char *);
00099 LOCALE int EnvGetcRouter(void *,char *);
00100 LOCALE int EnvUngetcRouter(void *,int,char *);
00101 LOCALE void EnvExitRouter(void *,int);
00102 LOCALE void AbortExit(void *);
00103 LOCALE intBool EnvAddRouterWithContext(void *,
00104 char *,int,
00105 int (*)(void *,char *),
00106 int (*)(void *,char *,char *),
00107 int (*)(void *,char *),
00108 int (*)(void *,int,char *),
00109 int (*)(void *,int),
00110 void *);
00111 LOCALE intBool EnvAddRouter(void *,
00112 char *,int,
00113 int (*)(void *,char *),
00114 int (*)(void *,char *,char *),
00115 int (*)(void *,char *),
00116 int (*)(void *,int,char *),
00117 int (*)(void *,int));
00118 LOCALE intBool AddRouter(char *,int,
00119 int (*)(char *),
00120 int (*)(char *,char *),
00121 int (*)(char *),
00122 int (*)(int,char *),
00123 int (*)(int));
00124 LOCALE int EnvDeleteRouter(void *,char *);
00125 LOCALE int QueryRouters(void *,char *);
00126 LOCALE int EnvDeactivateRouter(void *,char *);
00127 LOCALE int EnvActivateRouter(void *,char *);
00128 LOCALE void SetFastLoad(void *,FILE *);
00129 LOCALE void SetFastSave(void *,FILE *);
00130 LOCALE FILE *GetFastLoad(void *);
00131 LOCALE FILE *GetFastSave(void *);
00132 LOCALE void UnrecognizedRouterMessage(void *,char *);
00133 LOCALE void ExitCommand(void *);
00134 LOCALE int PrintNRouter(void *,char *,char *,unsigned long);
00135
00136 #endif
00137
00138