00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifdef IDLLIB
00010 #ifdef DEBUG_MEM
00011 #include "xmem.h"
00012 #endif
00013 #include "jsoc_main.h"
00014 #include "inthandles.h"
00015 #include "drms_env.h"
00016
00017 typedef const char *IDLHandleDRMS;
00018 typedef IDLHandleDRMS *pIDLHandleDRMS;
00019
00020 CmdParams_t cmdparams;
00021
00022
00023 static HContainer_t *idlHandlesDRMS = NULL;
00024
00025 const const char modulename[] = "idlinterface";
00026 ModuleArgs_t module_args[] =
00027 {
00028 {ARG_END}
00029 };
00030
00031
00032
00033
00034 static void InitializeIDLInterface()
00035 {
00036 InthandlesInit();
00037 if (!idlHandlesDRMS)
00038 {
00039 idlHandlesDRMS = hcon_create(sizeof(void *),
00040 kMaxIDLHandleKey,
00041 NULL,
00042
00043 NULL,
00044 NULL,
00045 NULL,
00046 0);
00047 XASSERT(idlHandlesDRMS);
00048 }
00049 }
00050
00051
00052
00053
00054 static void TerminateIDLInterface()
00055 {
00056 InthandlesTerm();
00057 if (idlHandlesDRMS)
00058 {
00059 hcon_destroy(&idlHandlesDRMS);
00060 }
00061 }
00062
00063 IDLError_t StartUp(int argc,
00064 char **argv,
00065 int *dolog,
00066 int *verbose,
00067 pid_t *drms_server_pid,
00068 pid_t *tee_pid)
00069 {
00070 IDLError_t ret = kIDLRet_Success;
00071 int jsocmainRet = 0;
00072 int cont;
00073
00074 XASSERT(dolog && verbose && drms_server_pid && tee_pid);
00075 *dolog = 0;
00076 *verbose = 0;
00077 *drms_server_pid = 0;
00078 *tee_pid = 0;
00079
00080 InitializeIDLInterface();
00081
00082 jsocmainRet = JSOCMAIN_Init(argc,
00083 argv,
00084 modulename,
00085 dolog,
00086 verbose,
00087 drms_server_pid,
00088 tee_pid,
00089 &cont);
00090
00091 if (!cont)
00092 {
00093
00094 ret = kIDLRet_CantContinue;
00095 }
00096
00097 return ret;
00098 }
00099
00100 IDLError_t ShutDown(int abort, int dolog, int verbose, pid_t drms_server_pid, pid_t tee_pid)
00101 {
00102 IDLError_t ret = kIDLRet_Success;
00103 int status;
00104
00105 status = JSOCMAIN_Term(dolog, verbose, drms_server_pid, tee_pid, abort);
00106 printf(" shutdown status %d\n", status);
00107 if (status != 256)
00108 {
00109
00110 ret = kIDLRet_ShutdownFailed;
00111 }
00112
00113 TerminateIDLInterface();
00114
00115 return ret;
00116 }
00117
00118 #endif