/*-------------------------------------------------------------------------- THE SICS SERVER This file contains the main entry point into the world of SICS. Mark Koennecke, October 1996 Copyright: see copyright.h Labor fuer Neutronenstreuung Paul Scherrer Institut CH-5423 Villigen-PSI ----------------------------------------------------------------------------*/ #include #include #include #include #include "nserver.h" /***************************** Necessary Globals ****************************/ IPair *pSICSOptions = NULL; pServer pServ = NULL; /* ========================= Less dreadful file statics =================== */ #define DEFAULTINIFILE "servo.tcl" /*--------------------------------------------------------------------------- The Servers Main program. May take one argument: the name of an initialisation file */ int main(int argc, char *argv[]) { int iRet; int debug = 0; const char* filename = NULL; /* initialise, will die on you if problems */ if(argc >= 2) { if (strcasecmp(argv[1], "-d") == 0) { debug = 1; if (argc > 2) filename = argv[2]; } else { filename = argv[1]; } } iRet = InitServer(filename, &pServ); if(!iRet) { printf("Unrecoverable error on server startup, exiting.........\n"); exit(1); } if (debug == 0) daemon(1,1); RunServer(pServ); StopServer(pServ); pServ = NULL; exit(0); } /*--------------------------------------------------------------------------*/ SicsInterp *GetInterpreter(void) { return pServ->pSics; } /*--------------------------------------------------------------------------*/ pExeList GetExecutor(void) { return pServ->pExecutor; } /*------------------------------------------------------------------------*/ void StopExit(void) { if(pServ) { StopServer(pServ); } } /*-------------------------------------------------------------------------*/ pTaskMan GetTasker(void) { return pServ->pTasker; }