version 0.3.0
[fms.git] / src / main.cpp
index c2c499f..be5ff2f 100644 (file)
@@ -1,140 +1,4 @@
-#include "../include/global.h"\r
-#include "../include/commandthread.h"\r
-#include "../include/threadcontroller.h"\r
+#include "../include/fmsapp.h"\r
+#include <Poco/Util/ServerApplication.h>\r
 \r
-#include <ctime>\r
-#include <csignal>\r
-#include <iostream>\r
-#include <cstring>\r
-#include <cstdlib>\r
-\r
-#ifdef _WIN32\r
-       #include "../include/fmsservice.h"\r
-#else\r
-       #include "../include/fmsdaemon.h"\r
-#endif\r
-\r
-#ifdef XMEM\r
-       #include <xmem.h>\r
-#endif\r
-\r
-int main(int argc, char *argv[])\r
-{\r
-\r
-       bool daemon=false;\r
-\r
-       #ifdef XMEM\r
-               xmem_disable_print();\r
-       #endif\r
-\r
-       // check arguments\r
-       if(argc>1)\r
-       {\r
-               #ifndef _WIN32\r
-               if(argv[1] && strncmp(argv[1],"-d",2)==0)\r
-               {\r
-                       Daemonize();\r
-                       daemon=true;\r
-               }\r
-               #else\r
-               if(argv[1] && strncmp(argv[1],"-i",2)==0)\r
-               {\r
-                       if(ServiceIsInstalled())\r
-                       {\r
-                               std::cout << "FMS Service is already installed" << std::endl;\r
-                       }\r
-                       else\r
-                       {\r
-                               if(ServiceInstall())\r
-                               {\r
-                                       std::cout << "FMS Service Installed" << std::endl;\r
-                               }\r
-                               else\r
-                               {\r
-                                       std::cout << "Error installing FMS Service" << std::endl;\r
-                               }\r
-                       }\r
-                       return 0;\r
-               }\r
-               else if(argv[1] && strncmp(argv[1],"-u",2)==0)\r
-               {\r
-                       if(ServiceIsInstalled())\r
-                       {\r
-                               if(ServiceUninstall())\r
-                               {\r
-                                       std::cout << "FMS Service uninstalled" << std::endl;\r
-                               }\r
-                               else\r
-                               {\r
-                                       std::cout << "There was a problem uninstalling the service" << std::endl;\r
-                               }\r
-                       }\r
-                       else\r
-                       {\r
-                               std::cout << "FMS Service is not currently installed" << std::endl;\r
-                       }\r
-                       return 0;\r
-               }\r
-               else if(argv[1] && strncmp(argv[1],"-s",2)==0)\r
-               {\r
-                       if(ServiceStart())\r
-                       {\r
-                       }\r
-                       else\r
-                       {\r
-                               std::cout << "FMS Service could not be started at this time" << std::endl;\r
-                       }\r
-                       return 0;\r
-               }\r
-               #endif\r
-       }\r
-\r
-       signal(SIGINT,SigHandler);\r
-       signal(SIGTERM,SigHandler);\r
-       signal(SIGABRT,SigHandler);\r
-#ifdef _WIN32\r
-       signal(SIGBREAK,SigHandler);\r
-#endif\r
-\r
-       if(daemon==false)\r
-       {\r
-               std::cout << "FMS Running in console mode." << std::endl;\r
-               std::cout << "Use the administration pages, or CTRL+C to exit" << std::endl << std::endl;\r
-               std::cout << "Available command line arguments:" << std::endl;\r
-       #ifdef _WIN32\r
-               std::cout << "-i\tinstall service" << std::endl;\r
-               std::cout << "-u\tuninstall service" << std::endl;\r
-       #else\r
-               std::cout << "-d\trun as daemon" << std::endl;\r
-       #endif\r
-       }\r
-\r
-       MainFunction();\r
-\r
-       return 0;\r
-}\r
-\r
-void MainFunction()\r
-{\r
-       srand(time(NULL));\r
-\r
-       SetupDB();\r
-       SetupDefaultOptions();\r
-\r
-       SetupLogFile();\r
-\r
-       SetupNetwork();\r
-\r
-       LogFile::Instance()->WriteLog(LogFile::LOGLEVEL_INFO,"FMS startup v"FMS_VERSION);\r
-\r
-       ThreadController::Instance()->StartThreads();\r
-\r
-       do\r
-       {\r
-               PThread::Sleep(1000);\r
-       }while(!wantshutdown);\r
-\r
-       LogFile::Instance()->WriteLog(LogFile::LOGLEVEL_DEBUG,"FMS wants to shutdown");\r
-\r
-       Shutdown();\r
-}\r
+POCO_SERVER_MAIN(FMSApp);\r