void ServerKernel::startUp(){ //Alle Systeme initialisieren //Request-System starten KernelRequest::initRequestSystem(); this->_timer = new QTimer(); this->_timer->setInterval(200); connect(this->_timer,SIGNAL(timeout()),this,SLOT(checkForRequests())); this->_timer->start(); /* * Parameter für die Konfigurationsdatei beachten */ QString configFileName = QString(); for(int i = 0; i < qApp->arguments().length();++i){ if(qApp->arguments().at(i).startsWith("--configFile=")){ configFileName = qApp->arguments().at(i).right(qApp->arguments().at(i).length()-13); } } //Nicht angegeben? if(configFileName.isEmpty()) configFileName = "/var/sdb/config/main.conf"; //Konfiguration laden Config::current()->readConfigFile(configFileName); Config::current()->readObjectTypeInstructions("/var/sdb/config/objecttypes.decl"); //Authentifikationsdatenbank laden Auth::instance()->initAuthDB(); //Synonyme laden SDBSynonyms::instance()->load(); //Datenbanken laden SearchStorageThread *storageThread = new SearchStorageThread(new QBuffer()); storageThread->start(); //Netzwerkschnittstelle (Administration) starten NetworkManagerThread *thread = new NetworkManagerThread(); thread->start(); //Lernmodul starten LearningThread *learningThread = new LearningThread(); learningThread->start(); if(Config::current()->subServers().isEmpty()){ //Netzwerkschnittstelle (Anfragen) starten NetworkServiceProvider *provider = new NetworkServiceProvider(); provider->start(); }else{ //Proxy-Dienst starten ProxyService *service = new ProxyService(); service->start(); } //Scheduler starten SchedulerServiceThread *scheduler = new SchedulerServiceThread(); scheduler->start(); Parser::QFunctionLibrary::initLibraries(); Parser::QFunctionLibrary::addLibrary(new Parser::LibString()); Parser::QFunctionLibrary::addLibrary(new Parser::LibMath()); Parser::QFunctionLibrary::addLibrary(new Parser::LibIO()); Parser::QFunctionLibrary::addLibrary(new Parser::LibSDB()); }
int main (int argc, char *argv[]) { int retVal,pri; /* Log stuff */ char *progName=basename(argv[0]); retVal=sortOutPidFile(progName); if(retVal<0) return -1; /* Setup log */ setlogmask(LOG_UPTO(LOG_INFO)); openlog (progName, LOG_PID, ANITA_LOG_FACILITY) ; /* Set signal handlers */ signal(SIGUSR1, sigUsr1Handler); signal(SIGUSR2, sigUsr2Handler); signal(SIGINT,handleBadSigs); signal(SIGTERM,handleBadSigs); signal(SIGSEGV,handleBadSigs); //Dont' wait for children signal(SIGCLD, SIG_IGN); retVal=0; for(pri=0;pri<NUM_PRIORITIES;pri++) { sprintf(eventTelemLinkDirs[pri],"%s/%s%d/link",BASE_EVENT_TELEM_DIR, EVENT_PRI_PREFIX,pri); sprintf(eventTelemDirs[pri],"%s/%s%d",BASE_EVENT_TELEM_DIR, EVENT_PRI_PREFIX,pri); makeDirectories(eventTelemLinkDirs[pri]); sprintf(priorityPurgeDirs[pri],"%s/pri%d",BASE_PRIORITY_PURGE_DIR, pri); makeDirectories(priorityPurgeDirs[pri]); } retVal=readConfigFile(); if(retVal<0) { syslog(LOG_ERR,"Problem reading Playbackd.config"); printf("Problem reading Playbackd.config\n"); exit(1); } //Main Loop do { printf("Initalizing Playbackd\n"); retVal=readConfigFile(); if(retVal<0) { syslog(LOG_ERR,"Problem reading Playbackd.config"); printf("Problem reading Playbackd.config\n"); exit(1); } currentState=PROG_STATE_RUN; while(currentState==PROG_STATE_RUN) { if(sendData) startPlayback(); retVal=checkForRequests(); if(!retVal) printf("sleep\n");sleep(10); } } while(currentState==PROG_STATE_INIT); unlink(PLAYBACKD_PID_FILE); return 0; }