• Main Page
  • Classes
  • Files
  • File List
  • File Members

src/startup.cpp

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     // Initialize the core application
00026     QCoreApplication* app = application();
00027     app->setApplicationName(APPNAME);
00028     app->setOrganizationName(ORGANISATION);
00029     QString configFileName=Static::getConfigDir()+"/"+QCoreApplication::applicationName()+".ini";
00030 
00031     // Configure logging into files
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     // Configure template loader and cache
00040     QSettings* templateSettings=new QSettings(configFileName,QSettings::IniFormat,app);
00041     templateSettings->beginGroup("templates");
00042     Static::templateLoader=new TemplateCache(templateSettings,app);
00043 
00044     // Configure session store
00045     QSettings* sessionSettings=new QSettings(configFileName,QSettings::IniFormat,app);
00046     sessionSettings->beginGroup("sessions");
00047     Static::sessionStore=new HttpSessionStore(sessionSettings,app);
00048 
00049     // Configure static file controller
00050     QSettings* fileSettings=new QSettings(configFileName,QSettings::IniFormat,app);
00051     fileSettings->beginGroup("docroot");
00052     Static::staticFileController=new StaticFileController(fileSettings,app);
00053 
00054     // Configure and start the TCP listener
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     // QCoreApplication destroys all objects that have been created in start().
00067 }
00068 
00069 
00070 Startup::Startup(int argc, char *argv[])
00071     : QtService<QCoreApplication>(argc, argv, APPNAME)
00072 {
00073     setServiceDescription(DESCRIPTION);
00074     //setStartupType(AutoStartup);
00075 }
00076 
00077 
00078 

Generated on Mon Dec 26 2011 12:09:22 for QtWebApp by  doxygen 1.7.1