Go to the documentation of this file.00001
00006 #include "static.h"
00007 #include "startup.h"
00008 #include "dualfilelogger.h"
00009 #include "httplistener.h"
00010 #include "requestmapper.h"
00011 #include "staticfilecontroller.h"
00012 #include <QDir>
00013
00015 #define APPNAME "QtWebApp"
00016
00018 #define ORGANISATION "Butterfly"
00019
00021 #define DESCRIPTION "Web service based on Qt"
00022
00023
00024 void Startup::start() {
00025
00026 QCoreApplication* app = application();
00027 app->setApplicationName(APPNAME);
00028 app->setOrganizationName(ORGANISATION);
00029 QString configFileName=Static::getConfigDir()+"/"+QCoreApplication::applicationName()+".ini";
00030
00031
00032 QSettings* mainLogSettings=new QSettings(configFileName,QSettings::IniFormat,app);
00033 mainLogSettings->beginGroup("mainLogFile");
00034 QSettings* debugLogSettings=new QSettings(configFileName,QSettings::IniFormat,app);
00035 debugLogSettings->beginGroup("debugLogFile");
00036 Logger* logger=new DualFileLogger(mainLogSettings,debugLogSettings,10000,app);
00037 logger->installMsgHandler();
00038
00039
00040 QSettings* templateSettings=new QSettings(configFileName,QSettings::IniFormat,app);
00041 templateSettings->beginGroup("templates");
00042 Static::templateLoader=new TemplateCache(templateSettings,app);
00043
00044
00045 QSettings* sessionSettings=new QSettings(configFileName,QSettings::IniFormat,app);
00046 sessionSettings->beginGroup("sessions");
00047 Static::sessionStore=new HttpSessionStore(sessionSettings,app);
00048
00049
00050 QSettings* fileSettings=new QSettings(configFileName,QSettings::IniFormat,app);
00051 fileSettings->beginGroup("docroot");
00052 Static::staticFileController=new StaticFileController(fileSettings,app);
00053
00054
00055 qDebug("ServiceHelper: Starting service");
00056 QSettings* listenerSettings=new QSettings(configFileName,QSettings::IniFormat,app);
00057 listenerSettings->beginGroup("listener");
00058 new HttpListener(listenerSettings,new RequestMapper(app),app);
00059
00060 qDebug("ServiceHelper: Service has started");
00061 }
00062
00063
00064 void Startup::stop() {
00065 qDebug("ServiceHelper: Service has been stopped");
00066
00067 }
00068
00069
00070 Startup::Startup(int argc, char *argv[])
00071 : QtService<QCoreApplication>(argc, argv, APPNAME)
00072 {
00073 setServiceDescription(DESCRIPTION);
00074
00075 }
00076
00077
00078