Beispiel #1
0
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());
}
Beispiel #2
0
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;
}