#include #include #include namespace icl{ typedef ICLApplication::callback callback; ICLApplication *ICLApplication::s_app(0); std::vector ICLApplication::s_threads; std::vector ICLApplication::s_inits; std::vector ICLApplication::s_callbacks; ICLApplication::ICLApplication(int n, char **ppc, const std::string &paInitString, callback init, callback run, callback run2, callback run3, callback run4, callback run5) throw (SecondSingeltonException){ if(s_app) throw SecondSingeltonException("only one instance is allowed!"); if(paInitString != ""){ pa_init(n,ppc,paInitString); } app = new QApplication(n,ppc); s_app = this; if(init) addInit(init); if(run) s_callbacks.push_back(run); if(run2) s_callbacks.push_back(run2); if(run3) s_callbacks.push_back(run3); if(run4) s_callbacks.push_back(run4); if(run5) s_callbacks.push_back(run5); } ICLApplication::~ICLApplication(){ for(unsigned int i=0;irun(); } return app->exec(); } }